wangtao 2 gadi atpakaļ
vecāks
revīzija
17c7cdb118

+ 1 - 1
.env.development

@@ -5,7 +5,7 @@ VUE_APP_TITLE = 东信充值管理系统
 ENV = 'development'
 
 # 东信充值管理系统/开发环境
-VUE_APP_BASE_API = '/dxapi'
+VUE_APP_BASE_API = '/dev-api'
 
 # 路由懒加载
 VUE_CLI_BABEL_TRANSPILE_MODULES = true

+ 3 - 0
src/App.vue

@@ -115,5 +115,8 @@ background: transparent !important;
 .el-input-number.is-controls-right[class*=medium] [class*=increase], .el-input-number.is-controls-right[class*=medium] [class*=decrease] {
     line-height: 13px;
 }
+.el-scrollbar__wrap{
+  margin-bottom:-17px !important;
+}
 </style>
 

+ 37 - 37
src/api/login.js

@@ -2,60 +2,60 @@ import request from '@/utils/request'
 
 // 登录方法
 export function login(username, password, code, uuid) {
-  const data = {
-    username,
-    password,
-    code,
-    uuid
-  }
-  return request({
-    url: '/login',
-    method: 'post',
-    data: data
-  })
+    const data = {
+        username,
+        password,
+        code,
+        uuid
+    }
+    return request({
+        url: '/login',
+        method: 'post',
+        data: data
+    })
 }
 
 // 登录方法(ERP)
 export function loginERP(data) {
-  return request({
-    url: '/loginByCenter',
-    method: 'post',
-    data
-  })
+    return request({
+        url: '/loginByCenter',
+        method: 'post',
+        data
+    })
 }
 
 // 注册方法
 export function register(data) {
-  return request({
-    url: '/register',
-    headers: {
-      isToken: false
-    },
-    method: 'post',
-    data: data
-  })
+    return request({
+        url: '/register',
+        headers: {
+            isToken: false
+        },
+        method: 'post',
+        data: data
+    })
 }
 
 // 获取用户详细信息
 export function getInfo() {
-  return request({
-    url: '/getInfo',
-    method: 'get'
-  })
+    return request({
+        url: '/getInfo',
+        method: 'get'
+    })
 }
 
 // 退出方法
 export function logout() {
-  return request({
-    url: '/logout',
-    method: 'post'
-  })
+    return request({
+        url: '/logout',
+        method: 'post'
+    })
 }
 
 // 获取验证码
 export function getCodeImg() {
-  return request({
-    url: '/captchaImage',
-    method: 'get'
-  })
-}
+    return request({
+        url: '/captchaImage',
+        method: 'get'
+    })
+}

+ 37 - 0
src/api/recharge/cateringManagement.js

@@ -0,0 +1,37 @@
+import request from '@/utils/request'
+
+// 配餐记录
+
+// 修改
+export function updata(data) {
+    return request({
+        url: '/dreOrder/',
+        method: 'put',
+        data: data
+    })
+}
+
+// 查询
+export function get(data) {
+    return request({
+        url: '/dreOrder/page',
+        method: 'post',
+        data
+    })
+}
+// 导出
+export function exportDetail(data) {
+    return request({
+        url: '/dreOrder/exportDetail',
+        method: 'post',
+        data: data,
+    })
+}
+//订单详情
+export function orderDetails(query) {
+    return request({
+        url: '/dreOrderDetail/listByOrder',
+        method: 'get',
+        params: query
+    })
+}

+ 33 - 3
src/assets/js/dataFormate.js

@@ -266,7 +266,7 @@ function YearMonthDate() {
 /**
  * 获得当前年月日SFM
  * ***/
- function YearMonthDateSFN() {
+function YearMonthDateSFN() {
     var date = new Date();
     var mon = date.getMonth() + 1;
     var day = date.getDate();
@@ -285,11 +285,40 @@ function YearMonthDate() {
  * 年月日时分秒转时间戳()
  * getTimeFormat('2022-02-02 02:22:22');
  * ***/
-function getTimeFormat(timeS){
+function getTimeFormat(timeS) {
     let time = (new Date(timeS).getTime()) / 1000; //除1000 是变成秒级的时间戳 不除就是毫秒级
     return time;
 }
 
+//获取当前日期yy-mm-dd h:f:s
+function getNowTime() {
+    var now = new Date(); //当前日期
+    var nowDay = now.getDate(); //当前日
+    var nowMonth = now.getMonth() + 1; //当前月
+    var nowYear = now.getYear(); //当前年
+    nowYear += (nowYear < 2000) ? 1900 : 0; //
+    var nowHours = now.getHours() //当前小时数
+    var nowMinutes = now.getMinutes() //当前分钟数
+    var nowSeconds = now.getSeconds() //当前秒数
+    if (nowMonth < 10) {
+        nowMonth = "0" + nowMonth;
+    }
+    if (nowDay < 10) {
+        nowDay = "0" + nowDay;
+    }
+    if (nowHours < 10) {
+        nowHours = "0" + nowHours;
+    }
+    if (nowMinutes < 10) {
+        nowMinutes = "0" + nowMinutes;
+    }
+    if (nowSeconds < 10) {
+        nowSeconds = "0" + nowSeconds;
+    }
+    // console.log(nowYear + "-" + nowMonth + "-" + nowDay + " " + nowHours + ":" + nowMinutes + ":" + nowSeconds)
+    return nowYear + "-" + nowMonth + "-" + nowDay + " " + nowHours + ":" + nowMinutes + ":" + nowSeconds;
+}
+
 export {
     getWeekStartAndEnd,
     getMonthStartAndEnd,
@@ -313,5 +342,6 @@ export {
     YearMonthDate,
     YearMonthDateSFN,
     getTimeFormat,
-    getDateStr3
+    getDateStr3,
+    getNowTime
 }

+ 8 - 3
src/store/modules/user.js

@@ -8,7 +8,8 @@ const user = {
         avatar: '',
         nickName: '',
         roles: [],
-        permissions: []
+        permissions: [],
+        user: {}
     },
 
     mutations: {
@@ -29,7 +30,11 @@ const user = {
         },
         SET_PERMISSIONS: (state, permissions) => {
             state.permissions = permissions
+        },
+        SET_USER: (state, user) => {
+            state.user = user
         }
+
     },
 
     actions: {
@@ -70,7 +75,7 @@ const user = {
                     const user = res.data.user
                     const avatar = user.avatar == "" ? '' : process.env.VUE_APP_BASE_API + user.avatar;
                     if (res.data.roles && res.data.roles.length > 0) { // 验证返回的roles是否是一个非空数组
-
+                        commit('SET_USER', res.data.user)
                         commit('SET_ROLES', res.data.roles)
                         commit('SET_PERMISSIONS', res.data.permissions)
                     } else {
@@ -112,4 +117,4 @@ const user = {
     }
 }
 
-export default user
+export default user

+ 277 - 0
src/views/cateringManagement/personnel/index.vue

@@ -0,0 +1,277 @@
+<template>
+  <div class="app-container">
+    <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" >
+      <el-form-item label="姓名" prop="userName" label-width="40px">
+        <el-input
+          v-model.trim="queryParams.userName"
+          placeholder="请输入姓名"
+          clearable
+          size="small"
+          style="width: 140px"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="手机号" prop="userPhone">
+        <el-input
+          v-model.trim="queryParams.userPhone"
+          placeholder="请输入手机号"
+          clearable
+          size="small"
+          style="width: 140px"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="支付方式" prop="payType">
+         <el-select v-model="queryParams.payType" style="width: 160px" placeholder="请选择支付方式" clearable size="small">
+          <el-option label="现金支付" :value="1"/>
+          <el-option label="微信" :value="2"/>
+          <el-option label="支付宝" :value="3"/>
+        </el-select>
+      </el-form-item>
+      <el-form-item label="支付状态" prop="orderFlag">
+        <el-select v-model="queryParams.orderFlag" style="width: 160px" placeholder="请选择支付状态" clearable size="small">
+          <el-option label="未支付" :value="0"/>
+          <el-option label="支付等待中" :value="1"/>
+          <el-option label="支付失败" :value="2"/>
+          <el-option label="卡充值失败" :value="3"/>
+          <el-option label="支付成功" :value="4"/>
+          <el-option label="取消支付" :value="5"/>
+          <el-option label="已成功" :value="6"/>
+        </el-select>
+      </el-form-item>
+      <el-form-item label="支付金额" prop="Money">
+        <el-input-number
+          v-model="queryParams.startMoney"
+          clearable
+          size="small"
+          type="number"
+          style="width: 140px"
+          @keyup.enter.native="handleQuery"></el-input-number> ~
+        <el-input-number
+          v-model="queryParams.endMoney"
+          placeholder=""
+          clearable
+          size="small"
+          type="number"
+          style="width: 140px"
+          @keyup.enter.native="handleQuery"></el-input-number>
+      </el-form-item>
+      <el-form-item label="支付时间">
+         <el-date-picker
+         style="margin-top:5px;"
+          v-model="dateRange"
+          size="small"
+          value-format="yyyy-MM-dd HH:mm:ss"
+          type="datetimerange"
+          range-separator="-"
+          start-placeholder="开始日期"
+          end-placeholder="结束日期"
+        ></el-date-picker>
+      </el-form-item>
+      <el-form-item>
+        <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
+        <el-button type="primary" icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
+        <el-button
+          type="warning"
+          plain
+          icon="el-icon-download"
+          size="mini"
+          :loading="exportLoading"
+          @click="handleExport"
+          v-hasPermi="['system:admin:export']"
+        >导出</el-button>
+      </el-form-item>
+    </el-form>
+
+    <el-table v-loading="loading" :data="adminList" height="calc(100vh  - 10vh - 170px)">
+      <el-table-column label="序号" align="center" prop="" show-overflow-tooltip >
+        <template slot-scope="scope">
+         {{scope.$index + 1}}
+        </template>
+      </el-table-column>
+      <el-table-column label="姓名" align="center" prop="userName"  show-overflow-tooltip />
+      <el-table-column label="手机号" align="center" prop="userPhone" show-overflow-tooltip />
+      <el-table-column label="充值金额(元)" align="center" prop="money" show-overflow-tooltip />
+      <el-table-column label="到账金额(元)" align="center" prop="realMoney" show-overflow-tooltip />
+      <el-table-column label="到账比例" align="center" prop="topRadio" show-overflow-tooltip />
+      <el-table-column label="支付状态" align="center" prop="orderFlag" show-overflow-tooltip >
+        <template slot-scope="scope">
+          <span v-if="scope.row.orderFlag == 0" style="color:#909399">未支付</span>
+          <span v-if="scope.row.orderFlag == 1" style="color:#000000">支付等待中</span>
+          <span v-if="scope.row.orderFlag == 2" style="color:#E6A23C">支付失败</span>
+          <span v-if="scope.row.orderFlag == 3" style="color:#F56C6C">卡充值失败</span>
+          <span v-if="scope.row.orderFlag == 4" style="color:#409EFF">支付成功</span>
+          <span v-if="scope.row.orderFlag == 5" style="color:#303133">取消支付</span>
+          <span v-if="scope.row.orderFlag == 6" style="color:#67C23A">已成功</span>
+        </template>
+      </el-table-column>
+      <!-- <el-table-column label="到账金额" align="center" prop="realMoney" show-overflow-tooltip /> -->
+      <el-table-column label="支付方式" align="center" prop="payType" show-overflow-tooltip >
+        <template slot-scope="scope">
+          <span>{{ scope.row.payType == 1 ? '现金支付':scope.row.payType ==2 ? '微信':scope.row.payType ==3 ? '支付宝': '' }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="充值场景" align="center" prop="scene" show-overflow-tooltip >
+        <template slot-scope="scope">
+          <span v-if="scope.row.scene == 1" style="color:#dda8eb">后台充值</span>
+          <span v-if="scope.row.scene == 2" style="color:#E6A23C">游客充值</span>
+          <span v-if="scope.row.scene == 3" style="color:#67C23A">ERPapp充值</span>
+          <span v-if="scope.row.scene == 6" style="color:#00dd88e0">公众号充值</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="充值渠道" align="center" prop="channelName"  show-overflow-tooltip />
+      <el-table-column label="创建时间" align="center" prop="createTime"  show-overflow-tooltip >
+        <template slot-scope="scope">
+          <span>{{ parseTime(scope.row.createTime) }}</span>
+        </template>
+      </el-table-column>
+      <!-- <el-table-column label="操作" align="center" class-name="small-padding fixed-width" >
+        <template slot-scope="scope" >
+          <el-button v-if="scope.row.orderFlag ==3"
+            type="text"
+            icon="el-icon-edit"
+            size="small"
+            @click="handleUpdate(scope.row)"
+            v-hasPermi="['system:admin:edit']"
+          >支付状态变更</el-button>
+          <el-button v-else
+            type="text"
+            icon="el-icon-edit"
+            size="small"
+            @click="handleUpdate(scope.row)"
+            disabled
+            v-hasPermi="['system:admin:edit']"
+          >支付状态变更</el-button>
+        </template>
+      </el-table-column> -->
+    </el-table>
+    <pagination
+      v-show="total>0"
+      :total="total"
+      :page.sync="queryParams.current"
+      :limit.sync="queryParams.size"
+      @pagination="getList"
+    />
+  </div>
+</template>
+
+<script>
+import { listDetal, exportDetail, updataChannel } from "@/api/recharge/detailed";
+
+export default {
+  name: "admin",
+  data() {
+    return {
+      // 导出遮罩层
+      exportLoading: false,
+      // 显示搜索条件
+      showSearch: true,
+      // 总条数
+      total: 0,
+      // 参数表格数据
+      adminList: [],
+      // 弹出层标题
+      title: "",
+      // 是否显示弹出层
+      open: false,
+      // 日期范围
+      dateRange: [],
+      // 查询参数
+      queryParams: {
+        current: 1,
+        size: 10,
+        userName: undefined,
+        payType: undefined,
+        topChannelName: undefined,
+        startMoney: undefined,
+        endMoney: undefined,
+        startTime:undefined,
+        endTime:undefined,
+      },
+      // 表单参数
+      form: {},
+      // 表单校验
+      rules: {
+        name: [
+          { required: true, message: "渠道名称不能为空", trigger: "blur" }
+        ],
+        aliasName: [
+          { required: true, message: "渠道标识不能为空", trigger: "blur" }
+        ],
+      }
+    };
+  },
+  created() {
+    this.getList();
+  },
+  methods: {
+    //强制el-input刷新
+    onInput(){
+        this.$forceUpdate();
+    },
+    /** 查询参数列表 */
+    getList() {
+      this.loading = true;
+      listDetal(this.addDateRange(this.queryParams,this.dateRange,'section')).then(response => {
+          this.adminList = response.data.records;
+          this.total = response.data.total;
+          this.loading = false;
+        }
+      );
+    },
+    // 取消按钮
+    cancel() {
+      this.open = false;
+      this.reset();
+    },
+    // 表单重置
+    reset() {
+      this.form = {
+        ids: undefined,
+        name: undefined,
+        topChannelName: undefined,
+      };
+      this.resetForm("form");
+    },
+    /** 搜索按钮操作 */
+    handleQuery() {
+      this.queryParams.current = 1;
+      this.getList();
+    },
+    /** 修改按钮操作 */
+    handleUpdate(row) {
+      Object.assign(this.form, row.id ? this.adminList.find(val=>val.id === row.id) : this.adminList.find(val=>val.id === this.ids[0]))
+      updataChannel(this.form).then(response => {
+        this.msgSuccess("修改成功");
+        this.getList();
+      });
+    },
+    /** 重置按钮操作 */
+    resetQuery() {
+      this.dateRange = [];
+      this.queryParams.startMoney = undefined;
+      this.queryParams.endMoney = undefined;
+      this.queryParams.startTime = undefined;
+      this.queryParams.endTime = undefined;
+      this.queryParams.payType = undefined;
+      this.queryParams.userName = undefined;
+      this.queryParams.userPhone = undefined;
+      this.queryParams.orderFlag = undefined;
+      this.resetForm("queryForm");
+      this.handleQuery();
+    },
+    /** 导出按钮操作 */
+    handleExport() {
+      let queryParams = {...this.queryParams};
+      delete queryParams.current
+      delete queryParams.size
+      this.exportLoading = true;
+      exportDetail(queryParams).then(response =>{
+        this.exportLoading = false;
+        localStorage.setItem('fileExportId', response.data)
+        this.$router.push({path:'/recharge/fileExport'})
+      })
+    }
+  }
+};
+</script>

+ 230 - 0
src/views/cateringManagement/record/index.vue

@@ -0,0 +1,230 @@
+<template>
+  <div class="app-container">
+    <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" >
+      <el-form-item label="订餐时间">
+         <el-date-picker
+         style="margin-top:5px;"
+          v-model="dateRange"
+          size="small"
+          value-format="yyyy-MM-dd HH:mm:ss"
+          type="datetimerange"
+          range-separator="-"
+          start-placeholder="开始日期"
+          end-placeholder="结束日期"
+        ></el-date-picker>
+      </el-form-item>
+      <el-form-item label="餐别" >
+         <el-select v-model="queryParams.mType" style="width: 160px" placeholder="请选择餐别" clearable size="small">
+          <el-option :label="index.value"  :value="index.value" v-for="(item,index) in mTypeList" :key="index" />
+        </el-select>
+      </el-form-item>
+
+      <el-form-item>
+        <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
+        <el-button type="primary" icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
+        <el-button
+          type="warning"
+          plain
+          icon="el-icon-download"
+          size="mini"
+          :loading="exportLoading"
+          @click="handleExport"
+          v-hasPermi="['system:admin:export']"
+        >导出</el-button>
+      </el-form-item>
+    </el-form>
+
+    <el-table v-loading="loading" :data="adminList" height="calc(100vh  - 10vh - 170px)">
+      <el-table-column label="序号" align="center" prop="" show-overflow-tooltip >
+        <template slot-scope="scope">
+         {{scope.$index + 1}}
+        </template>
+      </el-table-column>
+      <el-table-column label="姓名" align="center" prop="userName"  show-overflow-tooltip />
+      <el-table-column label="手机号" align="center" prop="userPhone" show-overflow-tooltip />
+      <el-table-column label="充值金额(元)" align="center" prop="money" show-overflow-tooltip />
+      <el-table-column label="到账金额(元)" align="center" prop="realMoney" show-overflow-tooltip />
+      <el-table-column label="到账比例" align="center" prop="topRadio" show-overflow-tooltip />
+      <el-table-column label="支付状态" align="center" prop="orderFlag" show-overflow-tooltip >
+        <template slot-scope="scope">
+          <span v-if="scope.row.orderFlag == 0" style="color:#909399">未支付</span>
+          <span v-if="scope.row.orderFlag == 1" style="color:#000000">支付等待中</span>
+          <span v-if="scope.row.orderFlag == 2" style="color:#E6A23C">支付失败</span>
+          <span v-if="scope.row.orderFlag == 3" style="color:#F56C6C">卡充值失败</span>
+          <span v-if="scope.row.orderFlag == 4" style="color:#409EFF">支付成功</span>
+          <span v-if="scope.row.orderFlag == 5" style="color:#303133">取消支付</span>
+          <span v-if="scope.row.orderFlag == 6" style="color:#67C23A">已成功</span>
+        </template>
+      </el-table-column>
+      <!-- <el-table-column label="到账金额" align="center" prop="realMoney" show-overflow-tooltip /> -->
+      <el-table-column label="支付方式" align="center" prop="payType" show-overflow-tooltip >
+        <template slot-scope="scope">
+          <span>{{ scope.row.payType == 1 ? '现金支付':scope.row.payType ==2 ? '微信':scope.row.payType ==3 ? '支付宝': '' }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="充值场景" align="center" prop="scene" show-overflow-tooltip >
+        <template slot-scope="scope">
+          <span v-if="scope.row.scene == 1" style="color:#dda8eb">后台充值</span>
+          <span v-if="scope.row.scene == 2" style="color:#E6A23C">游客充值</span>
+          <span v-if="scope.row.scene == 3" style="color:#67C23A">ERPapp充值</span>
+          <span v-if="scope.row.scene == 6" style="color:#00dd88e0">公众号充值</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="充值渠道" align="center" prop="channelName"  show-overflow-tooltip />
+      <el-table-column label="创建时间" align="center" prop="createTime"  show-overflow-tooltip >
+        <template slot-scope="scope">
+          <span>{{ parseTime(scope.row.createTime) }}</span>
+        </template>
+      </el-table-column>
+      <!-- <el-table-column label="操作" align="center" class-name="small-padding fixed-width" >
+        <template slot-scope="scope" >
+          <el-button v-if="scope.row.orderFlag ==3"
+            type="text"
+            icon="el-icon-edit"
+            size="small"
+            @click="handleUpdate(scope.row)"
+            v-hasPermi="['system:admin:edit']"
+          >支付状态变更</el-button>
+          <el-button v-else
+            type="text"
+            icon="el-icon-edit"
+            size="small"
+            @click="handleUpdate(scope.row)"
+            disabled
+            v-hasPermi="['system:admin:edit']"
+          >支付状态变更</el-button>
+        </template>
+      </el-table-column> -->
+    </el-table>
+    <pagination
+      v-show="total>0"
+      :total="total"
+      :page.sync="queryParams.current"
+      :limit.sync="queryParams.size"
+      @pagination="getList"
+    />
+  </div>
+</template>
+
+<script>
+import { listDetal, exportDetail, updataChannel } from "@/api/recharge/detailed";
+
+export default {
+  name: "admin",
+  data() {
+    return {
+      // 导出遮罩层
+      exportLoading: false,
+      // 显示搜索条件
+      showSearch: true,
+      // 总条数
+      total: 0,
+      // 参数表格数据
+      adminList: [],
+      // 弹出层标题
+      title: "",
+      // 是否显示弹出层
+      open: false,
+      // 日期范围
+      dateRange: [],
+      // 查询参数
+      queryParams: {
+        current: 1,
+        size: 10,
+        mType: undefined,
+        startTime:undefined,
+        endTime:undefined,
+      },
+      // 表单参数
+      form: {},
+      // 表单校验
+      rules: {
+        name: [
+          { required: true, message: "渠道名称不能为空", trigger: "blur" }
+        ],
+        aliasName: [
+          { required: true, message: "渠道标识不能为空", trigger: "blur" }
+        ],
+      },
+      mTypeList:[
+        {value:"早餐"},
+        {value:"午餐"},
+        {value:"晚餐"},
+        {value:"宵夜"},
+      ]
+    };
+  },
+  created() {
+    this.getList();
+  },
+  methods: {
+    //强制el-input刷新
+    onInput(){
+        this.$forceUpdate();
+    },
+    /** 查询参数列表 */
+    getList() {
+      this.loading = true;
+      listDetal(this.addDateRange(this.queryParams,this.dateRange,'section')).then(response => {
+          this.adminList = response.data.records;
+          this.total = response.data.total;
+          this.loading = false;
+        }
+      );
+    },
+    // 取消按钮
+    cancel() {
+      this.open = false;
+      this.reset();
+    },
+    // 表单重置
+    reset() {
+      this.form = {
+        ids: undefined,
+        name: undefined,
+        topChannelName: undefined,
+      };
+      this.resetForm("form");
+    },
+    /** 搜索按钮操作 */
+    handleQuery() {
+      this.queryParams.current = 1;
+      this.getList();
+    },
+    /** 修改按钮操作 */
+    handleUpdate(row) {
+      Object.assign(this.form, row.id ? this.adminList.find(val=>val.id === row.id) : this.adminList.find(val=>val.id === this.ids[0]))
+      updataChannel(this.form).then(response => {
+        this.msgSuccess("修改成功");
+        this.getList();
+      });
+    },
+    /** 重置按钮操作 */
+    resetQuery() {
+      this.dateRange = [];
+      this.queryParams.startMoney = undefined;
+      this.queryParams.endMoney = undefined;
+      this.queryParams.startTime = undefined;
+      this.queryParams.endTime = undefined;
+      this.queryParams.payType = undefined;
+      this.queryParams.userName = undefined;
+      this.queryParams.userPhone = undefined;
+      this.queryParams.orderFlag = undefined;
+      this.resetForm("queryForm");
+      this.handleQuery();
+    },
+    /** 导出按钮操作 */
+    handleExport() {
+      let queryParams = {...this.queryParams};
+      delete queryParams.current
+      delete queryParams.size
+      this.exportLoading = true;
+      exportDetail(queryParams).then(response =>{
+        this.exportLoading = false;
+        localStorage.setItem('fileExportId', response.data)
+        this.$router.push({path:'/recharge/fileExport'})
+      })
+    }
+  }
+};
+</script>

+ 648 - 0
src/views/recharge/cateringManagement/personnel/index.vue

@@ -0,0 +1,648 @@
+<template>
+  <div class="app-container">
+    <el-row :gutter="20">
+      <!--部门数据-->
+      <el-col :span="4" :xs="24">
+        <div class="head-container">
+          <el-input
+            v-model="deptName"
+            placeholder="请输入部门名称"
+            clearable
+            size="small"
+            style="margin-bottom: 20px"
+          />
+        </div>
+        <div class="head-container head-container2" style="height:800px">
+          <el-tree
+            :data="deptOptions"
+            :props="defaultProps"
+            :expand-on-click-node="false"
+            :filter-node-method="filterNode"
+            ref="tree"
+            @node-click="handleNodeClick"
+          />
+        </div>
+      </el-col>
+      <!--用户数据-->
+      <el-col :span="20" :xs="24">
+        <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px">
+          <el-form-item label="用户名称" prop="userName">
+            <el-input
+              v-model="queryParams.userName"
+              placeholder="请输入用户名称"
+              clearable
+              size="small"
+              style="width: 140px"
+              @keyup.enter.native="handleQuery"
+            />
+          </el-form-item>
+          <el-form-item label="手机号码" prop="phonenumber">
+            <el-input
+              v-model="queryParams.phonenumber"
+              placeholder="请输入手机号码"
+              clearable
+              size="small"
+              style="width: 140px"
+              @keyup.enter.native="handleQuery"
+            />
+          </el-form-item>
+
+
+          <el-form-item>
+            <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
+            <el-button type="primary" icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
+            <el-button
+              type="primary"
+              plain
+              icon="el-icon-plus"
+              size="mini"
+              @click="handleAdd"
+              v-hasPermi="['system:user:add']"
+            >新增</el-button>
+            <el-button
+              type="danger"
+              plain
+              icon="el-icon-delete"
+              size="mini"
+              :disabled="multiple"
+              @click="handleDelete"
+              v-hasPermi="['system:user:remove']"
+            >删除</el-button>
+          </el-form-item>
+        </el-form>
+
+        <el-table v-loading="loading" :data="userList" @selection-change="handleSelectionChange" height="calc(100vh - 12vh - 120px)">
+          <el-table-column type="selection" width="50" align="center" />
+          <el-table-column label="用户编号" align="center" key="userId" prop="userId" v-if="columns[0].visible"  show-overflow-tooltip />
+          <el-table-column label="用户名称" align="center" key="userName" prop="userName" v-if="columns[1].visible"  show-overflow-tooltip  />
+          <el-table-column label="用户昵称" align="center" key="nickName" prop="nickName" v-if="columns[2].visible"  show-overflow-tooltip  />
+          <el-table-column label="部门" align="center" key="deptName" prop="dept.deptName" v-if="columns[3].visible"  show-overflow-tooltip  />
+          <el-table-column label="手机号码" align="center" key="phonenumber" prop="phonenumber" v-if="columns[4].visible"  show-overflow-tooltip />
+          <el-table-column label="配餐状态" align="center" key="status" v-if="columns[5].visible">
+            <template slot-scope="scope">
+              <el-switch
+                v-model="scope.row.status"
+                active-value="0"
+                inactive-value="1"
+                @change="handleStatusChange(scope.row)"
+              ></el-switch>
+            </template>
+          </el-table-column>
+        </el-table>
+
+        <pagination
+          v-show="total>0"
+          :total="total"
+          :page.sync="queryParams.pageNo"
+          :limit.sync="queryParams.pageSize"
+          @pagination="getList"
+        />
+      </el-col>
+    </el-row>
+
+    <!-- 添加或修改参数配置对话框 -->
+    <el-dialog :title="title" :visible.sync="open" width="600px" append-to-body :before-close="cancel" :close-on-click-modal="false">
+      <el-form ref="form" :model="form" :rules="rules" label-width="80px">
+        <el-row>
+          <el-col :span="12">
+            <el-form-item label="用户昵称" prop="nickName">
+              <el-input v-model.trim="form.nickName" placeholder="请输入用户昵称" maxlength="15" show-word-limit />
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="归属部门" prop="deptId">
+              <treeselect v-model="form.deptId" :options="deptOptions" :show-count="true" placeholder="请选择归属部门" />
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row>
+          <el-col :span="12">
+            <el-form-item label="手机号码" prop="phonenumber">
+              <el-input v-model.trim="form.phonenumber" placeholder="请输入手机号码" maxlength="11" show-word-limit/>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="邮箱" prop="email">
+              <el-input v-model.trim="form.email" placeholder="请输入邮箱" maxlength="40" show-word-limit />
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row>
+          <el-col :span="12">
+            <el-form-item v-if="form.userId == undefined" label="用户名称" prop="userName">
+              <el-input v-model.trim="form.userName" placeholder="请输入用户名称" maxlength="30" />
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item v-if="form.userId == undefined" label="用户密码" prop="password">
+              <el-input v-model.trim="form.password" placeholder="请输入用户密码" type="password" maxlength="20" show-password @input="onInput()" />
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row>
+          <el-col :span="12">
+            <el-form-item label="用户性别">
+              <el-select v-model="form.sex" placeholder="请选择">
+                <el-option
+                  v-for="dict in sexOptions"
+                  :key="dict.dictValue"
+                  :label="dict.dictLabel"
+                  :value="dict.dictValue"
+                ></el-option>
+              </el-select>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="状态">
+              <el-radio-group v-model="form.status">
+                <el-radio
+                  v-for="dict in statusOptions"
+                  :key="dict.dictValue"
+                  :label="dict.dictValue"
+                >{{dict.dictLabel}}</el-radio>
+              </el-radio-group>
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row>
+          <el-col :span="12">
+            <el-form-item label="岗位" prop="postId">
+              <el-select v-model.trim="form.postId"  placeholder="请选择" @change='changeUnit'>
+                <el-option
+                  v-for="item in postOptions"
+                  :key="item.postId"
+                  :label="item.postName"
+                  :value="item.postId"
+                  :disabled="item.status == 1"
+                ></el-option>
+              </el-select>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="角色" prop="roleId">
+              <!-- multiple -->
+              <el-select v-model="form.roleId"  placeholder="请选择" >
+                <el-option
+                  v-for="item in roleOptions"
+                  :key="item.roleId"
+                  :label="item.roleName"
+                  :value="item.roleId"
+                  :disabled="item.status == 1"
+                ></el-option>
+              </el-select>
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row>
+          <el-col :span="24">
+            <el-form-item label="备注">
+              <el-input v-model.trim="form.remark" type="textarea" placeholder="请输入内容" maxlength="30" show-word-limit></el-input>
+            </el-form-item>
+          </el-col>
+        </el-row>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="submitForm" v-if="!loading">确 定</el-button>
+        <el-button :loading="loading" type="primary"  v-else>提交中...</el-button>
+        <el-button @click="cancel">取 消</el-button>
+      </div>
+    </el-dialog>
+
+    <!-- 用户导入对话框 -->
+    <el-dialog :title="upload.title" :visible.sync="upload.open" width="400px" append-to-body :before-close="cancel" :close-on-click-modal="false">
+      <el-upload
+        ref="upload"
+        :limit="1"
+        accept=".xlsx, .xls"
+        :headers="upload.headers"
+        :action="upload.url + '?updateSupport=' + upload.updateSupport"
+        :disabled="upload.isUploading"
+        :on-progress="handleFileUploadProgress"
+        :on-success="handleFileSuccess"
+        :auto-upload="false"
+        drag
+      >
+        <i class="el-icon-upload"></i>
+        <div class="el-upload__text">将文件拖到此处,或<em>点击上传</em></div>
+        <div class="el-upload__tip text-center" slot="tip">
+          <div class="el-upload__tip" slot="tip">
+            <el-checkbox v-model="upload.updateSupport" /> 是否更新已经存在的用户数据
+          </div>
+          <span>仅允许导入xls、xlsx格式文件。</span>
+          <el-link type="primary" :underline="false" style="font-size:12px;vertical-align: baseline;" @click="importTemplate">下载模板</el-link>
+        </div>
+      </el-upload>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="submitFileForm" v-if="!loading">确 定</el-button>
+        <el-button :loading="loading" type="primary"  v-else>提交中...</el-button>
+        <el-button @click="upload.open = false">取 消</el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import { listUser, getUser, delUser, addUser, updateUser, exportUser, resetUserPwd, changeUserStatus, importTemplate } from "@/api/system/user";
+import { getToken } from "@/utils/auth";
+import { treeselect } from "@/api/system/dept";
+import Treeselect from "@riophae/vue-treeselect";
+import "@riophae/vue-treeselect/dist/vue-treeselect.css";
+
+export default {
+  name: "User",
+  components: { Treeselect },
+  data() {
+    return {
+      // 遮罩层
+      loading: true,
+      // 导出遮罩层
+      exportLoading: false,
+      // 选中数组
+      ids: [],
+      // 非单个禁用
+      single: true,
+      // 非多个禁用
+      multiple: true,
+      // 显示搜索条件
+      showSearch: true,
+      // 总条数
+      total: 0,
+      // 用户表格数据
+      userList: null,
+      // 弹出层标题
+      title: "",
+      // 部门树选项
+      deptOptions: undefined,
+      // 是否显示弹出层
+      open: false,
+      // 部门名称
+      deptName: undefined,
+      // 默认密码
+      initPassword: undefined,
+      // 日期范围
+      dateRange: [],
+      // 状态数据字典
+      statusOptions: [],
+      // 性别状态字典
+      sexOptions: [],
+      // 岗位选项
+      postOptions: [],
+      // 角色选项
+      roleOptions: [],
+      // 表单参数
+      form: {},
+      defaultProps: {
+        children: "children",
+        label: "label"
+      },
+      // 用户导入参数
+      upload: {
+        // 是否显示弹出层(用户导入)
+        open: false,
+        // 弹出层标题(用户导入)
+        title: "",
+        // 是否禁用上传
+        isUploading: false,
+        // 是否更新已经存在的用户数据
+        updateSupport: 0,
+        // 设置上传的请求头部
+        headers: { Authorization: "Bearer " + getToken() },
+        // 上传的地址
+        url: process.env.VUE_APP_BASE_API + "/system/user/importData"
+      },
+      // 查询参数
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        userName: undefined,
+        phonenumber: undefined,
+        status: undefined,
+        deptId: undefined
+      },
+      // 列信息
+      columns: [
+        { key: 0, label: `用户编号`, visible: true },
+        { key: 1, label: `用户名称`, visible: true },
+        { key: 2, label: `用户昵称`, visible: true },
+        { key: 3, label: `部门`, visible: true },
+        { key: 4, label: `手机号码`, visible: true },
+        { key: 5, label: `状态`, visible: true },
+        { key: 6, label: `创建时间`, visible: true }
+      ],
+      // 表单校验
+      rules: {
+        userName: [
+          { required: true, message: "用户名称不能为空", trigger: "blur" },
+          { min: 2, max: 20, message: '用户名称长度必须介于 2 和 20 之间', trigger: 'blur' }
+        ],
+        nickName: [
+          { required: true, message: "用户昵称不能为空", trigger: "blur" }
+        ],
+        password: [
+          { required: true, message: "用户密码不能为空", trigger: "blur" },
+          { min: 1, max: 20, message: '用户密码长度必须介于 5 和 20 之间', trigger: 'blur' }
+        ],
+        email: [
+          { required: true, message: "邮箱地址不能为空", trigger: "blur" },
+          {
+            type: "email",
+            message: "'请输入正确的邮箱地址",
+            trigger: ["blur", "change"]
+          }
+        ],
+        phonenumber: [
+          { required: true, message: "手机号码不能为空", trigger: "blur" },
+          {
+            pattern: /^1[2|3|4|5|6|7|8|9][0-9]\d{8}$/,
+            message: "请输入正确的手机号码",
+            trigger: "blur"
+          }
+        ],
+        roleId:[
+           { required: true, message: "用户角色不能为空", trigger: "change"},
+        ],
+
+      }
+    };
+  },
+  watch: {
+    // 根据名称筛选部门树
+    deptName(val) {
+      this.$refs.tree.filter(val);
+    }
+  },
+  created() {
+    this.getList();
+    this.getTreeselect();
+    //显示状态
+    this.getDicts("sys_show_hide").then(response => {
+      this.visibleOptions = response.data;
+    });
+    //菜单状态
+    this.getDicts("sys_normal_disable").then(response => {
+      this.statusOptions = response.data;
+    });
+    //性别状态
+    this.getDicts("sys_user_sex").then(response => {
+      this.sexOptions = response.data;
+    });
+    this.getConfigKey("sys.user.initPassword").then(response => {
+      this.initPassword = response.msg;
+    });
+  },
+  methods: {
+    //强制el-input刷新
+    onInput(){
+        this.$forceUpdate();
+    },
+    changeUnit() {
+      this.$forceUpdate();
+    },
+    /** 查询用户列表 */
+    getList() {
+      this.loading = true;
+      listUser(this.addDateRange(this.queryParams, this.dateRange)).then(response => {
+          this.userList = response.data.rows;
+          this.total = response.data.total;
+          this.loading = false;
+        }
+      );
+    },
+    /** 查询部门下拉树结构 */
+    getTreeselect() {
+      treeselect().then(response => {
+        this.deptOptions = response.data;
+        console.log(response.data)
+      });
+    },
+    // 筛选节点
+    filterNode(value, data) {
+      if (!value) return true;
+      return data.label.indexOf(value) !== -1;
+    },
+    // 节点单击事件
+    handleNodeClick(data) {
+      this.queryParams.deptId = data.id;
+      this.getList();
+    },
+    // 用户状态修改
+    handleStatusChange(row) {
+      let text = row.status === "0" ? "启用" : "停用";
+      this.$confirm('确认要"' + text + '""' + row.userName + '"用户吗?', "警告", {
+          confirmButtonText: "确定",
+          cancelButtonText: "取消",
+          type: "warning"
+        }).then(function() {
+          return changeUserStatus(row.userId, row.status);
+        }).then(() => {
+          this.msgSuccess(text + "成功");
+        }).catch(function() {
+          row.status = row.status === "0" ? "1" : "0";
+        });
+    },
+    // 取消按钮
+    cancel() {
+      this.open = false;
+      setTimeout(()=>{
+        this.reset();
+      })
+    },
+    // 表单重置
+    reset() {
+      this.form = {
+        userId: undefined,
+        deptId: undefined,
+        userName: undefined,
+        nickName: undefined,
+        password: undefined,
+        phonenumber: undefined,
+        email: undefined,
+        sex: undefined,
+        status: "0",
+        remark: undefined,
+        postIds: [],
+        roleIds: [],
+        postId: undefined,
+        roleId: undefined
+      };
+      this.resetForm("form");
+    },
+    /** 搜索按钮操作 */
+    handleQuery() {
+      this.queryParams.pageNum = 1;
+      this.getList();
+    },
+    /** 重置按钮操作 */
+    resetQuery() {
+      this.dateRange = [];
+      this.resetForm("queryForm");
+      this.handleQuery();
+    },
+    // 多选框选中数据
+    handleSelectionChange(selection) {
+      this.ids = selection.map(item => item.userId);
+      this.single = selection.length != 1;
+      this.multiple = !selection.length;
+    },
+    // 更多操作触发
+    handleCommand(command, row) {
+      switch (command) {
+        case "handleResetPwd":
+          this.handleResetPwd(row);
+          break;
+        case "handleAuthRole":
+          this.handleAuthRole(row);
+          break;
+        default:
+          break;
+      }
+    },
+    /** 新增按钮操作 */
+    handleAdd() {
+      this.getTreeselect();
+      getUser().then(response => {
+        this.postOptions = response.data.posts
+        this.roleOptions = response.data.roles;
+        this.open = true;
+        this.title = "添加用户";
+        this.form.password = this.initPassword;
+
+      });
+    },
+    /** 修改按钮操作 */
+    handleUpdate(row) {
+      this.getTreeselect();
+      const userId = row.userId || this.ids;
+      getUser(userId).then(response => {
+        this.form = response.data.data;
+        this.postOptions = response.data.posts
+
+        this.roleOptions = response.data.roles;
+
+
+        this.form.postId = response.data.postIds[0]
+        this.form.roleId = response.data.roleIds[0]
+          this.open = true;
+          this.title = "修改用户";
+          this.form.password = "";
+
+      });
+    },
+    /** 重置密码按钮操作 */
+    handleResetPwd(row) {
+      this.$prompt('请输入"' + row.userName + '"的新密码', "提示", {
+        confirmButtonText: "确定",
+        cancelButtonText: "取消",
+        closeOnClickModal: false,
+        inputPattern: /^.{5,20}$/,
+        inputErrorMessage: "用户密码长度必须介于 5 和 20 之间",
+      }).then(({ value }) => {
+          resetUserPwd(row.userId, value).then(response => {
+            this.msgSuccess("修改成功,新密码是:" + value);
+          });
+        }).catch(() => {});
+    },
+    /** 分配角色操作 */
+    handleAuthRole: function(row) {
+      const userId = row.userId;
+      this.$router.push("/system/role");
+    },
+    /** 提交按钮 */
+    submitForm: function() {
+      this.$refs["form"].validate(valid => {
+        if (valid) {
+          this.loading = true
+          let postIds = []
+          let roleIds = []
+          if(this.form.postId){
+            postIds.push(this.form.postId)
+          }
+          roleIds.push(this.form.roleId)
+          this.form.postIds = postIds
+          this.form.roleIds = roleIds
+          if (this.form.userId != undefined) {
+            updateUser(this.form).then(response => {
+              this.loading = false
+              this.msgSuccess("修改成功");
+              this.open = false;
+              this.getList();
+            }).catch(err=>{
+              this.loading = false
+            });
+          } else {
+            addUser(this.form).then(response => {
+              this.loading = false
+              this.msgSuccess("新增成功");
+              this.open = false;
+              this.getList();
+             }).catch(err=>{
+              this.loading = false
+            });
+          }
+        }
+      });
+    },
+    /** 删除按钮操作 */
+    handleDelete(row) {
+      const userIds = row.userId || this.ids;
+      this.$confirm('是否确认删除用户编号为"' + userIds + '"的数据项?', "警告", {
+          confirmButtonText: "确定",
+          cancelButtonText: "取消",
+          type: "warning"
+        }).then(function() {
+          return delUser(userIds);
+        }).then(() => {
+          this.getList();
+          this.msgSuccess("删除成功");
+        }).catch(() => {});
+    },
+    /** 导出按钮操作 */
+    handleExport() {
+      const queryParams = this.queryParams;
+      this.$confirm('是否确认导出所有用户数据项?', "警告", {
+          confirmButtonText: "确定",
+          cancelButtonText: "取消",
+          type: "warning"
+        }).then(() => {
+          this.exportLoading = true;
+          return exportUser(queryParams);
+        }).then(response => {
+          this.download(response.msg);
+          this.exportLoading = false;
+        }).catch(() => {});
+    },
+    /** 导入按钮操作 */
+    handleImport() {
+      this.upload.title = "用户导入";
+      this.upload.open = true;
+    },
+    /** 下载模板操作 */
+    importTemplate() {
+      importTemplate().then(response => {
+        this.download(response.msg);
+      });
+    },
+    // 文件上传中处理
+    handleFileUploadProgress(event, file, fileList) {
+      this.upload.isUploading = true;
+    },
+    // 文件上传成功处理
+    handleFileSuccess(response, file, fileList) {
+      this.upload.open = false;
+      this.upload.isUploading = false;
+      this.$refs.upload.clearFiles();
+      this.$alert(response.msg, "导入结果", { dangerouslyUseHTMLString: true });
+      this.getList();
+    },
+    // 提交上传文件
+    submitFileForm() {
+      this.$refs.upload.submit();
+    }
+  }
+};
+</script>
+<style scoped>
+.head-container2{
+  overflow-y: scroll;
+}
+</style>

+ 336 - 0
src/views/recharge/cateringManagement/record/index.vue

@@ -0,0 +1,336 @@
+<template>
+  <div class="app-container">
+    <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" >
+      <el-form-item label="订餐时间">
+         <el-date-picker
+         style="margin-top:5px;"
+          v-model="dateRange"
+          size="small"
+          value-format="yyyy-MM-dd HH:mm:ss"
+          type="datetimerange"
+          range-separator="-"
+          start-placeholder="开始日期"
+          end-placeholder="结束日期"
+        ></el-date-picker>
+      </el-form-item>
+      <el-form-item label="餐别" >
+         <el-select v-model="queryParams.mType" style="width: 160px" placeholder="请选择餐别" clearable size="small">
+          <el-option :label="item.value"  :value="item.value" v-for="(item,index) in mTypeList" :key="index" />
+        </el-select>
+      </el-form-item>
+
+      <el-form-item>
+        <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
+        <el-button type="primary" icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
+        <el-button
+          type="warning"
+          plain
+          icon="el-icon-download"
+          size="mini"
+          :loading="exportLoading"
+          @click="handleExport"
+          v-hasPermi="['system:admin:export']"
+        >导出</el-button>
+      </el-form-item>
+    </el-form>
+
+    <el-table v-loading="loading" :data="adminList" height="calc(100vh  - 10vh - 170px)">
+      <el-table-column label="序号" align="center" prop="" show-overflow-tooltip >
+        <template slot-scope="scope">
+         {{scope.$index + 1}}
+        </template>
+      </el-table-column>
+      <el-table-column label="订餐人" align="center" prop="orderUserName"  show-overflow-tooltip />
+      <el-table-column label="订餐时间" align="center" prop="orderTime" show-overflow-tooltip >
+        <template slot-scope="scope">
+          <span>{{scope.row.orderTime ? scope.row.orderTime.split(" ")[0] : ''}}</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="餐别" align="center" prop="mType" show-overflow-tooltip >
+        <template slot-scope="scope">
+          <span :style="scope.row.mType == '早餐' ? 'color:#E6A23C' : scope.row.mType == '午餐' ? 'color:#734567' : scope.row.mType == '晚餐' ? 'color:#409EFF' : scope.row.mType == '宵夜' ? 'color:#67C23A' :''" >{{scope.row.mType}}</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="价格(元)" align="center" prop="totalMoney" show-overflow-tooltip >
+        <template slot-scope="scope">
+          <span>{{scope.row.totalMoney ? scope.row.totalMoney.toFixed(2) : ''}}</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="接单时间" align="center" prop="receiveTime" show-overflow-tooltip >
+         <template slot-scope="scope">
+          <span>{{scope.row.receiveTime ? scope.row.receiveTime.split(" ")[1] : ''}}</span>
+        </template>
+      </el-table-column>
+       <el-table-column label="流程状态" align="center" prop="orderStatus" show-overflow-tooltip >
+         <template slot-scope="scope">
+          <span>{{scope.row.orderStatus == "0" ? "待接单" : scope.row.orderStatus == "1" ? "配餐中" : scope.row.orderStatus == "2" ? "餐中" :  "已完成"}}</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="完成时间" align="center" prop="sendEndTime" show-overflow-tooltip >
+        <template slot-scope="scope">
+          <span>{{scope.row.sendEndTime ? scope.row.sendEndTime.split(" ")[1] : ''}}</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="详情" align="center" prop="topRadio" show-overflow-tooltip >
+        <template slot-scope="scope" >
+          <el-button
+            type="primary"
+            icon="el-icon-view"
+            size="small"
+            @click="getOne(scope.row)"
+          >查看</el-button>
+        </template>
+      </el-table-column>
+      <el-table-column label="操作" align="center" class-name="small-padding fixed-width" >
+        <template slot-scope="scope" >
+          <el-button v-if="scope.row.orderStatus == 0"
+            type="primary"
+            size="small"
+            @click="handleUpdate(scope.row.id,1)"
+          >接单</el-button>
+           <el-button v-if="scope.row.orderStatus == 1"
+            type="primary"
+            size="small"
+            @click="handleUpdate(scope.row.id,2)"
+          >送餐</el-button>
+           <el-button v-if="scope.row.orderStatus == 2"
+            type="primary"
+            size="small"
+            @click="handleUpdate(scope.row.id,3)"
+          >完成</el-button>
+        </template>
+      </el-table-column>
+    </el-table>
+    <pagination
+      v-show="total>0"
+      :total="total"
+      :page.sync="queryParams.current"
+      :limit.sync="queryParams.size"
+      @pagination="getList"
+    />
+    <!-- 对话框 -->
+    <el-dialog   :title="title" :visible.sync="open" width="600px" append-to-body :before-close="cancel" :close-on-click-modal="false"  >
+      <el-row type="flex" class="row-bg" justify="space-between">
+        <el-col :span="12"><div class="grid-content bg-purple">订餐人: {{details.row.orderUserName}}</div></el-col>
+        <el-col :span="12"><div class="grid-content bg-purple-light">餐别: {{details.row.mType}}</div></el-col>
+      </el-row>
+      <el-row type="flex" class="row-bg" justify="space-between">
+        <el-col :span="12"><div class="grid-content bg-purple">送餐地址: {{details.row.address}}</div></el-col>
+        <el-col :span="12"><div class="grid-content bg-purple">下单时间: {{details.row.orderTime ? details.row.orderTime.split(" ")[1] : ''}}</div></el-col>
+      </el-row>
+      <el-row type="flex" class="row-bg" justify="space-between">
+        <el-col :span="12"><div class="grid-content title">菜品清单</div></el-col>
+      </el-row>
+
+      <el-table v-loading="loading" :data="details.dishes" height="30vh" stripe style="border:1px solid #dfe6ec;overflow-y:scroll">
+        <el-table-column label="序号" align="center" prop="" show-overflow-tooltip >
+          <template slot-scope="scope">
+          {{scope.$index + 1}}
+          </template>
+        </el-table-column>
+        <el-table-column label="餐品" align="center" prop="mName"  show-overflow-tooltip />
+        <el-table-column label="数量(份)" align="center" prop="mCount" show-overflow-tooltip />
+      </el-table>
+      <div slot="footer" class="dialog-footer">
+         <el-button v-if="details.row.orderStatus == 0"
+            type="primary"
+            size="small"
+            @click="handleUpdate(details.row.id,1)"
+          >接单</el-button>
+           <el-button v-if="details.row.orderStatus == 1"
+            type="primary"
+            size="small"
+            @click="handleUpdate(details.row.id,2)"
+          >送餐</el-button>
+           <el-button v-if="details.row.orderStatus == 2"
+            type="primary"
+            size="small"
+            @click="handleUpdate(details.row.id,3)"
+          >完成</el-button>
+      </div>
+    </el-dialog>
+
+
+  </div>
+</template>
+
+<script>
+import axios from 'axios'
+import { get, updata, exportDetail, orderDetails } from "@/api/recharge/cateringManagement";
+import { getNowTime } from "@/assets/js/dataFormate.js";
+import { Message } from 'element-ui'
+export default {
+  name: "admin",
+  data() {
+    return {
+      // 导出遮罩层
+      exportLoading: false,
+      // 显示搜索条件
+      showSearch: true,
+      // 总条数
+      total: 0,
+      // 参数表格数据
+      adminList: [],
+      // 弹出层标题
+      title: "订单详情",
+      // 是否显示弹出层
+      open: false,
+      // 日期范围
+      dateRange: [],
+      // 查询参数
+      queryParams: {
+        current: 1,
+        size: 10,
+        mType: undefined,
+        startTime:undefined,
+        endTime:undefined,
+      },
+      details:{
+        row:{},
+        dishes:[]
+      },
+      mTypeList:[
+        {value:"早餐"},
+        {value:"午餐"},
+        {value:"晚餐"},
+        {value:"宵夜"},
+      ]
+    };
+  },
+  created() {
+    this.getList();
+  },
+  methods: {
+    //强制el-input刷新
+    onInput(){
+        this.$forceUpdate();
+    },
+    /** 查询参数列表 */
+    getList() {
+      this.loading = true;
+      if(this.dateRange.length>0){
+        this.queryParams.startTime = this.dateRange[0]
+        this.queryParams.endTime = this.dateRange[1]
+      }
+      get(this.queryParams).then(response => {
+          this.adminList = response.data.records;
+          this.total = response.data.total;
+          this.loading = false;
+        }
+      );
+    },
+    // 取消按钮
+    cancel() {
+      this.open = false;
+      this.reset();
+    },
+    // 表单重置
+    reset() {
+      this.form = {
+        ids: undefined,
+        name: undefined,
+        topChannelName: undefined,
+      };
+      this.resetForm("form");
+    },
+    /** 搜索按钮操作 */
+    handleQuery() {
+      this.queryParams.current = 1;
+      this.getList();
+    },
+    /** 详情 */
+    getOne(row) {
+      this.details.row = row
+      orderDetails({orderId:row.id}).then(response => {
+        this.details.dishes = response.data
+        this.open = true
+        console.log(this.details.dishes)
+      });
+    },
+    /** 修改订单状态 */
+    handleUpdate(id,status){
+      if(JSON.stringify(this.$store.state.user.user) !="{}"){
+        let time = getNowTime()
+        let data = {
+            id:id,
+            orderStatus:status,
+            receiveUserName:undefined,
+            receiveUserId:undefined,
+            receiveTime:undefined,
+            sendUserName:undefined,
+            sendUserId:undefined,
+            sendTime:undefined,
+            sendEndTime:undefined,
+        }
+        let sid = undefined
+        axios.get("https://smartpark.caih.com/dxapi/dxtop/staff/one",{
+          params:{
+            id:this.$store.state.user.user.centerUserId
+          }
+        }).then(res=>{
+          sid = res.data.data.sid
+          if(status == "1"){
+              data.receiveUserName = this.$store.state.user.user.nickName
+              data.receiveUserId = sid
+              data.receiveTime = time
+          }
+          if(status == "2"){
+              data.sendUserName= this.$store.state.user.user.nickName
+              data.sendUserId = sid
+              data.sendTime = time
+          }
+          if(status == "3"){
+              data.sendEndTime = time
+          }
+          updata(data).then(response=>{
+            if(status == "1"){
+              this.msgSuccess("订单状态已变更为接单");
+            }
+            if(status == "2"){
+              this.msgSuccess("订单状态已变更为送餐中");
+            }
+            if(status == "3"){
+              this.msgSuccess("订单状态已变更为完成");
+            }
+            this.getList()
+          })
+        })
+
+      }else{
+        this.msgError("该账号不具备centerUserId参数,无法对配餐管理做修改,请改为人员账号登录");
+      }
+
+      //.centerUserId)
+
+    },
+    /** 重置按钮操作 */
+    resetQuery() {
+      this.dateRange = [];
+      this.queryParams.startTime = undefined;
+      this.queryParams.endTime = undefined;
+      this.queryParams.mType = undefined;
+      this.resetForm("queryForm");
+      this.handleQuery();
+    },
+    /** 导出按钮操作 */
+    handleExport() {
+      let queryParams = {...this.queryParams};
+      delete queryParams.current
+      delete queryParams.size
+      this.exportLoading = true;
+      exportDetail(queryParams).then(response =>{
+        this.exportLoading = false;
+      })
+    }
+  }
+};
+</script>
+<style scoped>
+.row-bg .grid-content{
+  margin:10px 0;
+}
+.grid-content.title{
+  font-size: 16px;
+  font-weight: 700;
+}
+</style>

+ 2 - 1
src/views/recharge/consumePlaces/commodityManagement/index.vue

@@ -258,7 +258,8 @@ export default {
   methods: {
     /*  日期多选 */
     handleCheckedDatesChange(value){
-      console.log(value)
+      console.log(value,this.checkList)
+
     },
     /** 执行开始时间 */
     zxtimeStart(){

+ 1 - 1
src/views/recharge/consumePlaces/commodityType/index.vue

@@ -87,7 +87,7 @@
             </el-form-item>
           </el-col>
           <el-col :span="24">
-            <el-form-item label="生效状态"  >
+            <el-form-item label="预约人"  >
               <el-select v-model="form.type"  placeholder="请选择生效状态" size="small"  style="width: 180px">
                 <el-option :label="index.label"  :value="index.value" v-for = "(index, item) in statusList" :key="item" />
               </el-select>

+ 2 - 2
vue.config.js

@@ -33,8 +33,8 @@ module.exports = {
         proxy: {
             // detail: https://cli.vuejs.org/config/#devserver-proxy
             [process.env.VUE_APP_BASE_API]: {
-                target: `http://172.16.120.213:8085`, //本地
-                //target: 'https://smartpark.caih.com/dxapi/', //东信
+                //target: `http://172.16.120.213:8085`, //本地
+                target: 'https://smartpark.caih.com/dxapi/', //东信
                 changeOrigin: true,
                 pathRewrite: {
                     ['^' + process.env.VUE_APP_BASE_API]: ''