فهرست منبع

修正创建优惠券bug

Joe 3 سال پیش
والد
کامیت
564e9f0eb3

+ 1 - 1
src/views/coupon/Coupon_CreateCoupon.vue

@@ -679,7 +679,7 @@ export default {
         }
       }
       if (this.createForm.availableControl == 3) {
-        if (this.createForm.cycleDaysList.length == 0) {
+        if (this.createForm.appointedDaysList.length == 0) {
           callback(new Error("请选择日期"));
           return;
         }

+ 592 - 0
src/views/coupon/Coupon_Statistics/index.vue

@@ -0,0 +1,592 @@
+<template>
+  <div v-if="pageStatus == 0">配置加载中...</div>
+  <div v-else-if="pageStatus == 1">此页面不对此账号开放</div>
+  <div v-else-if="pageStatus == 2">
+    没有此页内容的配置权限,请检查集团上的配置
+  </div>
+  <div v-else-if="pageStatus == 3">加载发生错误</div>
+  <div v-else-if="pageStatus == 4" class="app-container">
+    <el-tabs v-model="activeName">
+      <el-tab-pane label="实时发放" name="realTime" :key="'info'">
+        <child1></child1>
+        154
+      </el-tab-pane>
+      <el-tab-pane label="按发放方式" name="issue" :key="'pay'">
+        你好
+      </el-tab-pane>
+      <el-tab-pane label="按优惠券类" name="model" :key="'pay'">
+        哈哈
+      </el-tab-pane>
+    </el-tabs>
+  </div>
+</template>
+
+<script>
+import {
+  listManage,
+  getManage,
+  delManage,
+  addManage,
+  updateManage,
+  exportManage,
+  changeManageStatus,
+} from "@/api/station/manage";
+import { listPrice } from "@/api/station/price";
+
+import tabZujianChild1 from "./realTime.vue";
+import tabZujianChild2 from "./issue.vue";
+import tabZujianChild3 from "./model.vue";
+
+import Vue from "vue";
+import VueClipboard from "vue-clipboard2";
+
+import Qr from "@/components/QrCode";
+import Base64 from "@/utils/base64";
+
+Vue.use(VueClipboard);
+
+import {
+  addInfo,
+  listInfo,
+  updateInfo,
+  changeCouponStatus,
+  addIssue,
+  listIssue,
+  upIssueStatus,
+} from "@/api/coupon";
+import SelectDay from "@/components/SelectDay";
+import settings from "@/settings";
+
+export default {
+  name: "Coupon_CreateIssue",
+  data() {
+    let validateGunNo = (rule, value, callback) => {
+      callback();
+    };
+    let validateAvailableControl = (rule, value, callback) => {
+      if (
+        this.createForm.availableControl == 1 ||
+        this.createForm.availableControl == 2
+      ) {
+        if (this.createForm.cycleDaysList.length == 0) {
+          callback(new Error("请选择时间"));
+          return;
+        }
+      }
+      if (this.createForm.availableControl == 3) {
+        if (this.createForm.appointedDaysList.length == 0) {
+          callback(new Error("请选择日期"));
+          return;
+        }
+      }
+      callback();
+    };
+    let validateCouponIssueRelationList = (rule, value, callback) => {
+      if (this.createForm.couponIssueRelationList.length == 0) {
+        callback(new Error("请选择优惠券"));
+      }
+      callback();
+    };
+    return {
+      activeName:'realTime',
+      couponEnabledFlag: "1",
+      exportQrDialog: false,
+      pageStatus: 4,
+      createForm: {
+        issueRemark: "",
+        issueName: "",
+        showIdList: [],
+        availableControl: "0",
+        appointedDaysList: [],
+        cycleDaysList: [],
+        issueType: "",
+        discountThresholdAmt: "0",
+        couponIssueRelationList: [],
+        giveLimit: 9,
+        giveCount: 999999,
+      },
+      currentExport: {
+        text: "error",
+        type: "你好",
+        name: "二维码",
+      },
+      couponList: [],
+      oilNameList: [],
+      allVerificationList: [],
+      equipmentList: [],
+      // 油枪复选
+      allGunList: [],
+      // 已选的油枪
+      checkedGunList: [],
+      //设备状态
+      deviceStatusOptions: [],
+      //设备类型
+      deviceTypeOptions: [],
+      stationOptions: [],
+      // 弹出层标题
+      title: "",
+      // 是否显示弹出层
+      open: false,
+      // 总条数
+      total: 100,
+      leftQuery: {},
+      rightQuery: {},
+      leftData: [],
+      rightData: [],
+      moveRightData: [],
+      moveLeftData: [],
+      // 查询参数
+      queryForm: {
+        pageNum: 1,
+        pageSize: 10, // 初始值只能比10大
+      },
+      // 表单校验
+      rules: {
+        availableControl: [
+          {
+            required: true,
+            message: "请选择有效期内时间控制",
+            trigger: "change",
+          },
+          { validator: validateAvailableControl, trigger: "change" },
+        ],
+        couponIssueRelationList: [
+          {
+            required: true,
+            message: "请选择优惠券",
+            trigger: "change",
+          },
+          { validator: validateCouponIssueRelationList, trigger: "change" },
+        ],
+      },
+      day: [],
+      cycle: [],
+      issueList: [],
+      timeSelect: [
+        ,
+        ["周天", "周一", "周二", "周三", "周四", "周五", "周六"],
+        [
+          "1号",
+          "2号",
+          "3号",
+          "4号",
+          "5号",
+          "6号",
+          "7号",
+          "8号",
+          "9号",
+          "10号",
+          "11号",
+          "12号",
+          "13号",
+          "14号",
+          "15号",
+          "16号",
+          "17号",
+          "18号",
+          "19号",
+          "20号",
+          "21号",
+          "22号",
+          "23号",
+          "24号",
+          "25号",
+          "26号",
+          "27号",
+          "28号",
+          "29号",
+          "30号",
+          "31号",
+        ],
+      ],
+    };
+  },
+  components: {
+    SelectDay: SelectDay,
+    Qr: Qr,
+    VueClipboard: VueClipboard,
+    child1: tabZujianChild1,
+    child2: tabZujianChild2,
+    child2: tabZujianChild3,
+  },
+
+  created() {
+    console.log("哈哈");
+    console.log("settings", settings);
+    // this.init();
+    this.getCoupon();
+    // this.setPageStatus();
+    this.getIssueList();
+  },
+  computed: {
+    toggleable() {
+      if (this.moveRightData.length === 0 && this.moveLeftData.length === 0) {
+        return true;
+      }
+      return false;
+    },
+    selectedCouponList() {
+      return this.couponList.filter((ele) => {
+        if (this.createForm.couponIssueRelationList == null) {
+          this.createForm.couponIssueRelationList = [];
+        }
+        return this.createForm.couponIssueRelationList.includes(ele.id);
+      });
+    },
+    unselectedCouponList() {
+      return this.couponList.filter((ele) => {
+        if (this.createForm.couponIssueRelationList == null) {
+          this.createForm.couponIssueRelationList = [];
+        }
+        return !!!this.createForm.couponIssueRelationList.includes(ele.id);
+      });
+    },
+    getTodayDateString() {
+      const date = new Date();
+      let y = date.getFullYear();
+      let m = date.getMonth().toString();
+      let s = date.getDate().toString();
+      m = "" + (m.length == 1 ? "0" : "") + m;
+      s = "" + (s.length == 1 ? "0" : "") + s;
+      console.log("" + h + ":" + m + ":" + s);
+      return "" + y + ":" + m + ":" + s;
+    },
+  },
+  methods: {
+    onCopySuccess() {
+      this.msgSuccess("网址已经拷贝到剪切板");
+    },
+    onCopyError() {
+      this.msgError("网址拷贝失败,请手动复制");
+    },
+    // exportUrl(url){
+    //   this.currentExport.name = emp.personnelName;
+    //   this.currentExport.type = 1;
+
+    //   const encodeStr = "e" + emp.personnelId + "/l" + this.currentExport.labelId + "/";
+    //   const encodedStr = this.base.encode(encodeStr);
+    //   const trimEqualStr = encodedStr.replace(/={1,}$/g, "");
+    //   this.currentExport.text = "https://goto.huijy.net/" + this.deptId + "/" + trimEqualStr;
+    //   this.exportQrDialog = true;
+    // },
+    handleExport(row) {
+      this.currentExport.name = row.issueName;
+      const base64 = Base64.getInstance();
+      const encodeStr = "i" + row.id;
+      const encodedStr = base64.encode(encodeStr);
+      const trimEqualStr = encodedStr.replace(/={1,}$/g, "");
+      this.exportQrDialog = true;
+      this.currentExport.text =
+        settings.baseURL + this.deptId + "/" + trimEqualStr;
+    },
+    downloadImg() {
+      console.log('');
+    },
+    translateTime(row) {
+      let timeString = "";
+      const availableControleType = row.availableControl;
+      if (availableControleType == 0) {
+        return "用户一直都可以领取";
+      }
+      timeString = "用户只能在";
+      if (availableControleType == 1) {
+        timeString += "每周的";
+      }
+      if (availableControleType == 2) {
+        timeString += "每月的";
+      }
+      if (availableControleType == 3) {
+        timeString += "指定的日期 ";
+      }
+      if (availableControleType == 1 || availableControleType == 2) {
+        row.cycleDaysList.forEach((ele) => {
+          timeString += this.timeSelect[availableControleType][ele] + "、";
+        });
+      } else if (availableControleType == 3) {
+        timeString += row.appointedDaysList.toString();
+      }
+
+      timeString = timeString.replace(/(、)$/g, "") + "可以领取劵";
+      return timeString;
+    },
+    getIssueList() {
+      listIssue(this.queryForm)
+        .then((res) => {
+          if (res.code == 200) {
+            if (res.rows == null) {
+              this.total = 0;
+              this.issueList = [];
+            } else {
+              this.total = res.total;
+              this.issueList = res.rows;
+            }
+          } else {
+            throw new Error("");
+          }
+        })
+        .catch((err) => {
+          this.msgError("亲,拉取领取方式列表失败~");
+        });
+    },
+    getCoupon() {
+      listInfo({
+        pageNum: 1,
+        pageSize: 1000,
+        status: 1,
+      })
+        .then((res) => {
+          if (res.code == 200) {
+            if (res.rows == null) {
+              this.couponList = [];
+            } else {
+              this.couponList = res.rows;
+            }
+          } else {
+            throw new Error("");
+          }
+        })
+        .catch((err) => {
+          this.msgError("亲,拉取优惠券列表失败~");
+        });
+    },
+    availableControlChange() {
+      this.createForm.appointedDaysList = [];
+      this.createForm.cycleDaysList = [];
+      this.createForm = { ...this.createForm };
+    },
+    handleMoveLabel(direction, row) {
+      console.log(row);
+      if (this.createForm.couponIssueRelationList == null) {
+        this.createForm.couponIssueRelationList = [];
+      }
+
+      if (direction == "right") {
+        this.createForm.couponIssueRelationList.push(row.id);
+      } else {
+        this.createForm.couponIssueRelationList =
+          this.createForm.couponIssueRelationList.filter((ele) => {
+            return ele != row.id;
+          });
+      }
+    },
+    handleFlagChange() {
+      const that = this;
+      let text = this.couponEnabledFlag === "1" ? "启用" : "停用";
+      this.$confirm('确认要"' + text + '"优惠券功能吗?', "警告", {
+        confirmButtonText: "确定",
+        cancelButtonText: "取消",
+        type: "warning",
+      })
+        .then(function () {
+          return changeCouponStatus({
+            deptId: that.deptId,
+            couponEnabledFlag: that.couponEnabledFlag,
+          });
+        })
+        .then(() => {
+          that.msgSuccess(text + "成功");
+        })
+        .catch(function () {
+          that.couponEnabledFlag = that.couponEnabledFlag === "0" ? "1" : "0";
+        });
+    },
+    handleStatusChange(row) {
+      let text = row.status === "1" ? "启用" : "停用";
+      this.$confirm(
+        '确认要"' + text + '""' + row.issueName + '"发放方式吗?',
+        "警告",
+        {
+          confirmButtonText: "确定",
+          cancelButtonText: "取消",
+          type: "warning",
+        }
+      )
+        .then(function () {
+          return upIssueStatus({
+            id: row.id,
+            status: row.status,
+          });
+        })
+        .then(() => {
+          this.msgSuccess(text + "成功");
+        })
+        .catch(function () {
+          row.status = row.status === "0" ? "1" : "0";
+        });
+    },
+    toggleLabel() {
+      if (this.moveLeftData.length !== 0) {
+        this.createForm.couponIssueRelationList =
+          this.createForm.couponIssueRelationList.filter((ele) => {
+            return ele != this.moveLeftData;
+          });
+        this.createForm = { ...this.createForm };
+        return;
+      }
+      if (this.moveRightData.length !== 0) {
+        this.createForm.couponIssueRelationList = [
+          ...new Set(
+            this.createForm.couponIssueRelationList.concat(this.moveRightData)
+          ),
+        ].filter((ele) => {
+          return !!ele;
+        });
+        this.createForm = { ...this.createForm };
+        return;
+      }
+      return;
+    },
+    handleLeftChange(val) {
+      let changeArr = [];
+      val.map((ele) => {
+        changeArr.push(ele.id);
+      });
+      console.log(changeArr);
+      this.moveLeftData = [];
+      this.moveRightData = changeArr;
+      // console.log(this.moveRightData);
+      this.$refs.rightTable.clearSelection();
+    },
+    handleRightChange(val) {
+      let changeArr = [];
+      val.map((ele) => {
+        changeArr.push(ele.id);
+      });
+      this.moveLeftData = changeArr;
+      this.moveRightData = [];
+      this.$refs.leftTable.clearSelection();
+    },
+    init() {
+      this.getOilList();
+      this.getCoupon();
+      this.getVerificationList();
+    },
+    setPageStatus() {
+      this.queryPageStatus([2]).then((res) => {
+        this.pageStatus = res;
+      });
+    },
+    // 取消按钮
+    cancel() {
+      this.open = false;
+    },
+    /** 搜索按钮操作 */
+    handleQuery() {
+      this.createForm.pageNum = 1;
+      this.getList();
+    },
+    deviceNoInput(value) {
+      this.dialogForm.posQueue = value;
+    },
+    /** 重置按钮操作 */
+    resetQuery() {
+      this.resetForm("createForm");
+      this.handleQuery();
+    },
+    /** 新增按钮操作 */
+    handleAdd() {
+      this.createForm = {
+        issueRemark: "",
+        issueName: "",
+        showIdList: [],
+        availableControl: "0",
+        appointedDaysList: [],
+        cycleDaysList: [],
+        issueType: "",
+        discountThresholdAmt: "0",
+        couponIssueRelationList: [],
+        giveLimit: 9,
+        giveCount: 999999,
+      }
+      
+      ;
+      this.title = "添加优惠券";
+      // this.createForm = {
+      //   couponName: "",
+      //   couponDetails: "",
+      //   couponThresholdAmt: 0,
+      //   couponType: "1",
+      //   couponAmt: 0,
+      //   oilNameList: [],
+      //   effectiveTimeType: "",
+      //   effectiveTime: [],
+      //   effectiveDayNum: 30,
+      //   couponHoldNum: 1,
+      //   couponReceiveNum: 100,
+      //   couponNum: 100,
+      //   status: "1",
+      //   couponIssueRelationList: [],
+      //   isCardFlag: "1",
+      //   isGradeFlag: "1",
+      //   isMarketFlag: "1",
+      // };
+      this.open = true;
+    },
+    /** 修改按钮操作 */
+    handleUpdate(row) {
+      // // 查找自己已经选中的枪号
+      this.createForm = JSON.parse(JSON.stringify(row));
+      this.title = "修改油站设备管理";
+      this.open = true;
+    },
+
+    /** 提交按钮 */
+    submitForm() {
+      console.log(123);
+      this.$refs["dialogForm"].validate((valid) => {
+        if (valid) {
+          if (!!this.createForm.id) {
+            updateIssue(this.createForm)
+              .then((res) => {
+                if (res.code == 200) {
+                  this.msgSuccess("亲,修改成功了~");
+                  this.getIssueList();
+                  this.open = false;
+                } else {
+                  throw new Error("");
+                }
+              })
+              .catch((err) => {
+                this.msgError("修改失败了呀~");
+              });
+          } else {
+            addIssue(this.createForm)
+              .then((res) => {
+                if (res.code == 200) {
+                  this.msgSuccess("亲,新增成功了~");
+                  this.getIssueList();
+                  this.open = false;
+                } else {
+                  throw new Error("");
+                }
+              })
+              .catch((err) => {
+                this.msgError("创建失败了~");
+              });
+          }
+        }
+      });
+    },
+    /** 删除按钮操作 */
+    handleDelete(row) {
+      const deviceIds = row.deviceId;
+      this.$confirm("是否确认删除油站设备管理", "警告", {
+        confirmButtonText: "确定",
+        cancelButtonText: "取消",
+        type: "warning",
+      })
+        .then(function () {
+          return delManage(deviceIds);
+        })
+        .then(() => {
+          this.getList();
+          this.msgSuccess("删除成功");
+        });
+    },
+  },
+};
+</script>
+<style lang="scss">
+.el-transfer__buttons {
+}
+</style>

+ 259 - 0
src/views/coupon/Coupon_Statistics/issue.vue

@@ -0,0 +1,259 @@
+<template>
+  <div class="app-container">
+    <el-row>
+      <el-col :span="24">
+        <el-card :body-style="{ padding: '20px', margin: '0 auto' }">
+          <div class="imgbox">
+            <el-upload
+              class="uploader"
+              :action="addressUrl"
+              :show-file-list="false"
+              :headers="headers"
+              :on-success="handleAvatarSuccess"
+              :before-upload="beforeAvatarUpload"
+              :disabled="editable"
+            >
+              <img
+                v-if="form.stationPic"
+                :src="form.stationPic"
+                class="avatar"
+              />
+              <i v-else class="el-icon-plus avatar-uploader-icon"></i>
+              <div class="el-upload__tip" slot="tip" v-show="!editable">
+                点击图片可以重新上传
+              </div>
+            </el-upload>
+          </div>
+          <div class="station">
+            <el-form ref="form" :model="form" :rules="rules" label-width="auto">
+              <el-form-item label="油站名称" prop="deptName">
+                <el-input
+                  v-model="form.deptName"
+                  placeholder="请输入油站名称"
+                  :disabled="editable"
+                />
+              </el-form-item>
+              <el-form-item label="油站地址" prop="deptAddress">
+                <el-input
+                  v-model="form.deptAddress"
+                  placeholder="请输入油站地址"
+                  :disabled="editable"
+                />
+              </el-form-item>
+              <el-form-item label="联系人" prop="leader">
+                <el-input
+                  v-model="form.leader"
+                  placeholder="请输入联系人"
+                  :disabled="editable"
+                />
+              </el-form-item>
+              <el-form-item label="电话" prop="phone">
+                <el-input
+                  v-model="form.phone"
+                  placeholder="请输入电话"
+                  :disabled="editable"
+                />
+              </el-form-item>
+            </el-form>
+            <el-button
+              type="primary"
+              size="small"
+              @click="
+                () => {
+                  this.editable = !editable;
+                }
+              "
+            >
+              {{ editable ? "修改资料" : "取消保存" }}
+            </el-button>
+            <el-button
+              type="primary"
+              size="small"
+              v-show="!editable"
+              @click="submitForm"
+            >
+              保存资料
+            </el-button>
+          </div>
+        </el-card>
+      </el-col>
+    </el-row>
+
+    <!-- 添加或修改油站信息对话框 -->
+  </div>
+</template>
+
+<script>
+import {
+  listInfo,
+  updateInfo,
+  exportInfo,
+} from "@/api/station/info";
+import { getToken } from "@/utils/auth";
+import Treeselect from "@riophae/vue-treeselect";
+import "@riophae/vue-treeselect/dist/vue-treeselect.css";
+export default {
+  name: "Info",
+  components: { Treeselect },
+  data() {
+    const validatorPhone = (rule, value, callback) => {
+      if (!value) {
+        return callback(new Error("手机号不能为空"));
+      } else {
+        const reg = /^1[3|4|5|7|8][0-9]\d{8}$/;
+        if (reg.test(value)) {
+          callback();
+        } else {
+          return callback(new Error("请输入正确的手机号"));
+        }
+      }
+    };
+    return {
+      editable: true,
+      // 总条数
+      total: 0,
+      // 部门树选项
+      deptOptions: undefined,
+      // 弹出层标题
+      title: "",
+      // 是否显示弹出层
+      open: false,
+      // 查询参数
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        stationName: null,
+        deptAddress: null,
+        oilGunNum: null,
+        contacts: null,
+        phone: null,
+        stationGroupName: null,
+        stationPic: null,
+        stationLongitude: null,
+        stationLatitude: null,
+        mno: null,
+        deptId: this.deptId,
+      },
+      // 表单参数
+      form: {},
+      // 表单校验
+      rules: {
+        deptName:[
+          { required: true, message: '请填写油站名', trigger: 'blur' }
+        ],
+        deptAddress:[
+          { required: true, message: '请填写活动形式', trigger: 'blur' }
+        ],
+        leader:[
+          { required: true, message: '请填写联系人', trigger: 'blur' }
+        ],
+        phone:[
+          { validator: validatorPhone, required: true, trigger: 'blur' }
+        ]
+      },
+      imageUrl: "",
+      headers: { Authorization: "Bearer " + getToken() },
+      addressUrl:process.env.VUE_APP_BASE_API + "/common/upload",
+      // addressUrl:  location.protocol +"//" +location.host +process.env.VUE_APP_BASE_API + "/common/upload",
+    };
+  },
+  created() {
+    this.getList();
+  },
+
+  methods: {
+    /** 查询油站信息列表 */
+    getList() {
+      listInfo(this.queryParams).then((response) => {
+        this.form = response.rows[0];
+      });
+    },
+    /** 提交按钮 */
+    submitForm() {
+      this.$refs["form"].validate((valid) => {
+        if (valid) {
+          this.$confirm("确认更新油站信息", "警告", {
+            confirmButtonText: "确定",
+            cancelButtonText: "取消",
+            type: "warning",
+          }).then(() => {
+            updateInfo(this.form).then((response) => {
+              this.msgSuccess("修改成功");
+              this.open = false;
+              this.editable=true
+              this.getList();
+            });
+          });
+        }
+      });
+    },
+    /** 导出按钮操作 */
+    handleExport() {
+      const queryParams = this.queryParams;
+      this.$confirm("是否确认导出所有油站信息数据项?", "警告", {
+        confirmButtonText: "确定",
+        cancelButtonText: "取消",
+        type: "warning",
+      })
+        .then(function () {
+          return exportInfo(queryParams);
+        })
+        .then((response) => {
+          this.download(response.msg);
+        });
+    },
+    handleAvatarSuccess(res, file) {
+      this.form.stationPic = res.url;
+      this.form = {...this.form} ;
+    },
+    beforeAvatarUpload(file) {
+      const isJPG = file.type === "image/jpeg";
+      const isLt2M = file.size / 1024 / 1024 < 4;
+      // if (!isJPG) {
+      //   this.$message.error("上传头像图片只能是 JPG 格式!");
+      // }
+      if (!isLt2M) {
+        this.$message.error("上传头像图片大小不能超过 4MB!");
+      }
+      return isJPG && isLt2M;
+    },
+  },
+};
+</script>
+<style lang="scss" scoped>
+.imgbox {
+  margin: 0 auto;
+  padding: 20px;
+  width: 200px;
+  height: 240px;
+  img {
+    width: 100%;
+    height: 100%;
+  }
+  .uploader {
+    width: 100%;
+    height: 100%;
+    .el-upload {
+      width: 100%;
+      height: 100%;
+    }
+    .avatar {
+      width: 100%;
+      height: 100%;
+      margin: 0 auto;
+    }
+    .el-upload__tip {
+      text-align: center;
+      color: red;
+    }
+    .el-upload {
+      color: red;
+    }
+  }
+}
+.station {
+  width: 40%;
+  min-width: 300px;
+  margin: 0 auto;
+}
+</style>

+ 0 - 0
src/views/coupon/Coupon_Statistics/model.vue


+ 327 - 0
src/views/coupon/Coupon_Statistics/realTime.vue

@@ -0,0 +1,327 @@
+<template>
+  <div class="app-container">
+    <el-form
+      :model="queryParams"
+      ref="queryForm"
+      :inline="true"
+      label-width="68px"
+    >
+      <el-form-item label="订单号" prop="orderNo">
+        <el-input
+          v-model="queryParams.orderNo"
+          placeholder="请输入订单号"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="客户姓名" prop="likeConsumer">
+        <el-input
+          v-model="queryParams.likeConsumer"
+          placeholder="请输入客户姓名"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="油品名称" prop="oilName">
+        <el-select
+          v-model="queryParams.oilName"
+          placeholder="油品名称"
+          clearable
+          size="small"
+        >
+          <el-option
+            v-for="dict in oilNameOptions"
+            :key="dict.dictLabel"
+            :label="dict.dictLabel"
+            :value="dict.dictLabel"
+          />
+        </el-select>
+      </el-form-item>
+      <el-form-item label="加油员" prop="oilPersonnel">
+        <el-input
+          v-model="queryParams.oilPersonnel"
+          placeholder="请输入加油员"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="油枪" prop="oilGun">
+        <el-input
+          v-model="queryParams.oilGun"
+          placeholder="请输入油枪"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+
+      <el-form-item label="创建时间" prop="createdDate">
+        <el-date-picker
+          style="width: 350px"
+          v-model="dateRangeCreatedDate"
+          size="mini"
+          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="cyan"
+          icon="el-icon-search"
+          size="mini"
+          @click="handleQuery"
+          >搜索</el-button
+        >
+        <el-button
+          type="info"
+          icon="el-icon-refresh"
+          size="mini"
+          @click="resetQuery"
+          >重置</el-button
+        >
+        <el-button
+          type="warning"
+          icon="el-icon-download"
+          size="mini"
+          @click="handleExport"
+          >导出</el-button
+        >
+      </el-form-item>
+    </el-form>
+    <el-table :data="orderList">
+      <af-table-column label="油站名" align="center" prop="stationName" v-if="jiBie==0||jiBie==1"/>
+      <af-table-column
+        v-if="false"
+        label="订单id"
+        align="center"
+        prop="orderId"
+      />
+      <af-table-column label="订单号" align="center" prop="orderNo" />
+      <af-table-column label="油品名称" align="center" prop="oilName" />
+      <af-table-column label="油品价格" align="center" prop="oilPirce" />
+      <af-table-column label="加油升数" align="center" prop="orderLiters" />
+      <af-table-column label="应付金额" align="center" prop="receivableAmt" />
+      <af-table-column label="实付金额" align="center" prop="amt" />
+      <af-table-column label="优惠金额" align="center" prop="discountAmt" />
+      <af-table-column label="客户姓名" align="center" prop="consumer" />
+      <af-table-column label="加油员" align="center" prop="oilPersonnel" />
+      <af-table-column label="加油枪号" align="center" prop="oilGun" />
+      <af-table-column
+        label="支付类型"
+        align="center"
+        prop="payType"
+        width="150px"
+        :formatter="payTypeFotmat"
+      />
+      <af-table-column
+        label="油站名称"
+        align="center"
+        v-if="false"
+        prop="stationName"
+      />
+      <af-table-column
+        v-if="false"
+        label="用户id(消费者)"
+        align="center"
+        prop="consumerId"
+      />
+      <af-table-column
+        v-if="false"
+        label="油站id"
+        align="center"
+        prop="stationId"
+      />
+      <af-table-column
+        label="状态"
+        width="130px"
+        align="center"
+        prop="status"
+        :formatter="statusFotmat"
+      />
+      <af-table-column label="支付时间" align="center" prop="payDate">
+        <template slot-scope="scope">
+          <span>{{
+            parseTime(scope.row.payDate, "{y}-{m}-{d} {h}:{i}:{s}")
+          }}</span>
+        </template>
+      </af-table-column>
+      <af-table-column label="创建时间" align="center" prop="createdDate">
+        <template slot-scope="scope">
+          <span>{{
+            parseTime(scope.row.createdDate, "{y}-{m}-{d} {h}:{i}:{s}")
+          }}</span>
+        </template>
+      </af-table-column>
+       <af-table-column
+        label="操作"
+        align="center"
+        class-name="small-padding fixed-width"
+        width="120px"
+        v-if="reprint"
+      >
+        <template slot-scope="scope">
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-plus"
+            @click="printOrderInfo(scope.row)"
+            >补打小票</el-button>
+        </template>
+      </af-table-column>
+    </el-table>
+    <pagination
+      v-show="total > 0"
+      :total="total"
+      :page.sync="queryParams.pageNum"
+      :limit.sync="queryParams.pageSize"
+      @pagination="getList"
+    />
+  </div>
+</template>
+<script>
+import { listOrder, exportOrder,printOrderInfo } from "@/api/station/order";
+import { stationinfo } from "@/api/station/gun";
+import { listPrice, getPrice } from "@/api/station/price";
+import {
+  listManage
+} from "@/api/station/manage";
+
+export default {
+  name: "Order_Oil",
+  data() {
+    return {
+      //创建订单时间间隔
+      dateRangeCreatedDate: [],
+      // 总条数
+      total: 0,
+      // 订单支付表格数据
+      orderList: [],
+      oilNameOptions: [],
+      // 字典
+      payTypeOptions: [],
+      // 下拉油站
+      stationOptions: [],
+      // 弹出层标题
+      title: "",
+      // 是否显示弹出层
+      open: false,
+      // 查询参数
+      queryParams: {
+        levelId:this.levelId,
+        pageNum: 1,
+        pageSize: 10,
+        oilGun: null,
+        oilName: null,
+        stationId: null,
+        orderType: 1,
+        oilPersonnel: null,
+        createdDate: null,
+        likeConsumer: null,
+        orderNo:null
+      },
+      // 表单校验
+      rules: {},
+      reprint:false,
+    };
+  },
+  created() {
+    this.getList();
+    listManage({
+      pageNum: 1,
+      pageSize: 1,
+    }).then((response) => {
+      const equipmentList = response.rows;
+      if(!!equipmentList){
+        if((equipmentList[0]||{}).deviceType=='1'){
+          this.reprint = true;
+        }
+      }
+    });
+    //字典
+    this.getDicts("pay_type").then((response) => {
+      this.payTypeOptions = response.data;
+    });
+    stationinfo().then((response) => {
+      this.stationOptions = response.rows;
+    });
+    this.getDicts("oil_name").then((response) => {
+      this.oilNameOptions = response.data;
+    });
+  },
+  methods: {
+    payTypeFotmat(row, column) {
+      if (row.payType === "wx") {
+        return "微信支付";
+      } else if (row.payType === "zfb") {
+        return "支付宝支付";
+      } else if (row.payType === "xj") {
+        return "现金支付";
+      } else if (row.payType === "dzk") {
+        return "电子卡支付";
+      } else if (row.payType === "POS") {
+        return "POS机支付";
+      } else if (row.payType === "yzf") {
+        return "预支付";
+      } else if (row.payType === "kbzf") {
+        return "卡包支付";
+      }
+    },
+    statusFotmat(row, column) {
+      if (row.status === "0") {
+        return "未支付";
+      } else if (row.status === "1") {
+        return "已支付";
+      }
+    },
+    /** 查询订单支付列表 */
+    getList() {
+      this.queryParams.levelId = this.levelId
+      listOrder(
+        this.addDateRange(this.queryParams, this.dateRangeCreatedDate)
+      ).then((response) => {
+        this.orderList = response.rows;
+        this.total = response.total;
+      });
+    },
+    /** 搜索按钮操作 */
+    handleQuery() {
+      this.queryParams.pageNum = 1;
+      this.getList();
+    },
+    /** 重置按钮操作 */
+    resetQuery() {
+      this.dateRangeCreatedDate = [];
+      this.resetForm("queryForm");
+      this.handleQuery();
+    },
+    //打印订单小票
+    printOrderInfo(row){
+      printOrderInfo({orderId:row.orderId}).then((response) => {
+         this.msgSuccess("小票打印成功");
+      });
+    },
+    /** 导出按钮操作 */
+    handleExport() {
+      const queryParams = this.queryParams;
+      this.$confirm("是否确认导出所有订单支付数据项?", "警告", {
+        confirmButtonText: "确定",
+        cancelButtonText: "取消",
+        type: "warning",
+      })
+        .then(function () {
+          return exportOrder(queryParams);
+        })
+        .then((response) => {
+          this.download(response.msg);
+        });
+    },
+  },
+};
+</script>

+ 13 - 0
src/views/coupon/Coupon_Statistics.vue → src/views/coupon/Coupon_Statistics1.vue

@@ -6,6 +6,18 @@
   </div>
   <div v-else-if="pageStatus == 3">加载发生错误</div>
   <div v-else-if="pageStatus == 4" class="app-container">
+    <el-tabs v-model="activeName">
+      <el-tab-pane label="实时发放" name="realTime" :key="'info'">
+        啊
+      </el-tab-pane>
+      <el-tab-pane label="按发放方式" name="issue" :key="'pay'">
+        你好
+      </el-tab-pane>
+      <el-tab-pane label="按优惠券类" name="model" :key="'pay'">
+        哈哈
+      </el-tab-pane>
+    </el-tabs>
+
     <div>
       <el-form
         :model="createForm"
@@ -708,6 +720,7 @@ export default {
       callback();
     };
     return {
+      activeName:'realTime',
       couponEnabledFlag: "1",
       exportQrDialog: false,
       pageStatus: 4,