Procházet zdrojové kódy

直播新增代码

chenguo před 4 dny
rodič
revize
6dc2fbcd63

+ 53 - 0
src/api/live/liveAfterSalesItem.js

@@ -0,0 +1,53 @@
+import request from '@/utils/request'
+
+// 查询售后子列表
+export function listLiveAfterSalesItem(query) {
+  return request({
+    url: '/live/liveAfterSalesItem/list',
+    method: 'get',
+    params: query
+  })
+}
+
+// 查询售后子详细
+export function getLiveAfterSalesItem(id) {
+  return request({
+    url: '/live/liveAfterSalesItem/' + id,
+    method: 'get'
+  })
+}
+
+// 新增售后子
+export function addLiveAfterSalesItem(data) {
+  return request({
+    url: '/live/liveAfterSalesItem',
+    method: 'post',
+    data: data
+  })
+}
+
+// 修改售后子
+export function updateLiveAfterSalesItem(data) {
+  return request({
+    url: '/live/liveAfterSalesItem',
+    method: 'put',
+    data: data
+  })
+}
+
+// 删除售后子
+export function delLiveAfterSalesItem(id) {
+  return request({
+    url: '/live/liveAfterSalesItem/' + id,
+    method: 'delete'
+  })
+}
+
+// 导出售后子
+export function exportLiveAfterSalesItem(query) {
+  return request({
+    url: '/live/liveAfterSalesItem/export',
+    method: 'get',
+    params: query
+  })
+}

+ 53 - 0
src/api/live/liveAfterSalesLogs.js

@@ -0,0 +1,53 @@
+import request from '@/utils/request'
+
+// 查询售后订单操作列表
+export function listLiveAfterSalesLogs(query) {
+  return request({
+    url: '/live/liveAfterSalesLogs/list',
+    method: 'get',
+    params: query
+  })
+}
+
+// 查询售后订单操作详细
+export function getLiveAfterSalesLogs(logsId) {
+  return request({
+    url: '/live/liveAfterSalesLogs/' + logsId,
+    method: 'get'
+  })
+}
+
+// 新增售后订单操作
+export function addLiveAfterSalesLogs(data) {
+  return request({
+    url: '/live/liveAfterSalesLogs',
+    method: 'post',
+    data: data
+  })
+}
+
+// 修改售后订单操作
+export function updateLiveAfterSalesLogs(data) {
+  return request({
+    url: '/live/liveAfterSalesLogs',
+    method: 'put',
+    data: data
+  })
+}
+
+// 删除售后订单操作
+export function delLiveAfterSalesLogs(logsId) {
+  return request({
+    url: '/live/liveAfterSalesLogs/' + logsId,
+    method: 'delete'
+  })
+}
+
+// 导出售后订单操作
+export function exportLiveAfterSalesLogs(query) {
+  return request({
+    url: '/live/liveAfterSalesLogs/export',
+    method: 'get',
+    params: query
+  })
+}

+ 53 - 0
src/api/live/liveAfteraSales.js

@@ -0,0 +1,53 @@
+import request from '@/utils/request'
+
+// 查询售后记录列表
+export function listLiveAfteraSales(query) {
+  return request({
+    url: '/live/liveAfteraSales/list',
+    method: 'get',
+    params: query
+  })
+}
+
+// 查询售后记录详细
+export function getLiveAfteraSales(id) {
+  return request({
+    url: '/live/liveAfteraSales/' + id,
+    method: 'get'
+  })
+}
+
+// 新增售后记录
+export function addLiveAfteraSales(data) {
+  return request({
+    url: '/live/liveAfteraSales',
+    method: 'post',
+    data: data
+  })
+}
+
+// 修改售后记录
+export function updateLiveAfteraSales(data) {
+  return request({
+    url: '/live/liveAfteraSales',
+    method: 'put',
+    data: data
+  })
+}
+
+// 删除售后记录
+export function delLiveAfteraSales(id) {
+  return request({
+    url: '/live/liveAfteraSales/' + id,
+    method: 'delete'
+  })
+}
+
+// 导出售后记录
+export function exportLiveAfteraSales(query) {
+  return request({
+    url: '/live/liveAfteraSales/export',
+    method: 'get',
+    params: query
+  })
+}

+ 53 - 0
src/api/live/liveCart.js

@@ -0,0 +1,53 @@
+import request from '@/utils/request'
+
+// 查询购物车列表
+export function listLiveCart(query) {
+  return request({
+    url: '/live/liveCart/list',
+    method: 'get',
+    params: query
+  })
+}
+
+// 查询购物车详细
+export function getLiveCart(cardId) {
+  return request({
+    url: '/live/liveCart/' + cardId,
+    method: 'get'
+  })
+}
+
+// 新增购物车
+export function addLiveCart(data) {
+  return request({
+    url: '/live/liveCart',
+    method: 'post',
+    data: data
+  })
+}
+
+// 修改购物车
+export function updateLiveCart(data) {
+  return request({
+    url: '/live/liveCart',
+    method: 'put',
+    data: data
+  })
+}
+
+// 删除购物车
+export function delLiveCart(cardId) {
+  return request({
+    url: '/live/liveCart/' + cardId,
+    method: 'delete'
+  })
+}
+
+// 导出购物车
+export function exportLiveCart(query) {
+  return request({
+    url: '/live/liveCart/export',
+    method: 'get',
+    params: query
+  })
+}

+ 53 - 0
src/api/live/liveOrderItem.js

@@ -0,0 +1,53 @@
+import request from '@/utils/request'
+
+// 查询订单详情列表
+export function listLiveOrderItem(query) {
+  return request({
+    url: '/live/liveOrderItem/list',
+    method: 'get',
+    params: query
+  })
+}
+
+// 查询订单详情详细
+export function getLiveOrderItem(itemId) {
+  return request({
+    url: '/live/liveOrderItem/' + itemId,
+    method: 'get'
+  })
+}
+
+// 新增订单详情
+export function addLiveOrderItem(data) {
+  return request({
+    url: '/live/liveOrderItem',
+    method: 'post',
+    data: data
+  })
+}
+
+// 修改订单详情
+export function updateLiveOrderItem(data) {
+  return request({
+    url: '/live/liveOrderItem',
+    method: 'put',
+    data: data
+  })
+}
+
+// 删除订单详情
+export function delLiveOrderItem(itemId) {
+  return request({
+    url: '/live/liveOrderItem/' + itemId,
+    method: 'delete'
+  })
+}
+
+// 导出订单详情
+export function exportLiveOrderItem(query) {
+  return request({
+    url: '/live/liveOrderItem/export',
+    method: 'get',
+    params: query
+  })
+}

+ 53 - 0
src/api/live/liveOrderLogs.js

@@ -0,0 +1,53 @@
+import request from '@/utils/request'
+
+// 查询订单操作记录列表
+export function listLiveOrderLogs(query) {
+  return request({
+    url: '/live/liveOrderLogs/list',
+    method: 'get',
+    params: query
+  })
+}
+
+// 查询订单操作记录详细
+export function getLiveOrderLogs(logsId) {
+  return request({
+    url: '/live/liveOrderLogs/' + logsId,
+    method: 'get'
+  })
+}
+
+// 新增订单操作记录
+export function addLiveOrderLogs(data) {
+  return request({
+    url: '/live/liveOrderLogs',
+    method: 'post',
+    data: data
+  })
+}
+
+// 修改订单操作记录
+export function updateLiveOrderLogs(data) {
+  return request({
+    url: '/live/liveOrderLogs',
+    method: 'put',
+    data: data
+  })
+}
+
+// 删除订单操作记录
+export function delLiveOrderLogs(logsId) {
+  return request({
+    url: '/live/liveOrderLogs/' + logsId,
+    method: 'delete'
+  })
+}
+
+// 导出订单操作记录
+export function exportLiveOrderLogs(query) {
+  return request({
+    url: '/live/liveOrderLogs/export',
+    method: 'get',
+    params: query
+  })
+}

+ 53 - 0
src/api/live/liveOrderStatus.js

@@ -0,0 +1,53 @@
+import request from '@/utils/request'
+
+// 查询订单操作记录列表
+export function listLiveOrderStatus(query) {
+  return request({
+    url: '/live/liveOrderStatus/list',
+    method: 'get',
+    params: query
+  })
+}
+
+// 查询订单操作记录详细
+export function getLiveOrderStatus(id) {
+  return request({
+    url: '/live/liveOrderStatus/' + id,
+    method: 'get'
+  })
+}
+
+// 新增订单操作记录
+export function addLiveOrderStatus(data) {
+  return request({
+    url: '/live/liveOrderStatus',
+    method: 'post',
+    data: data
+  })
+}
+
+// 修改订单操作记录
+export function updateLiveOrderStatus(data) {
+  return request({
+    url: '/live/liveOrderStatus',
+    method: 'put',
+    data: data
+  })
+}
+
+// 删除订单操作记录
+export function delLiveOrderStatus(id) {
+  return request({
+    url: '/live/liveOrderStatus/' + id,
+    method: 'delete'
+  })
+}
+
+// 导出订单操作记录
+export function exportLiveOrderStatus(query) {
+  return request({
+    url: '/live/liveOrderStatus/export',
+    method: 'get',
+    params: query
+  })
+}

+ 331 - 0
src/views/live/liveAfterSalesItem/index.vue

@@ -0,0 +1,331 @@
+<template>
+  <div class="app-container">
+    <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px">
+      <el-form-item label="售后id" prop="afterSalesId">
+        <el-input
+          v-model="queryParams.afterSalesId"
+          placeholder="请输入售后id"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="直播商品ID" prop="goodsId">
+        <el-input
+          v-model="queryParams.goodsId"
+          placeholder="请输入直播商品ID"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="商品id" prop="productId">
+        <el-input
+          v-model="queryParams.productId"
+          placeholder="请输入商品id"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="逻辑删除" prop="isDel">
+        <el-input
+          v-model="queryParams.isDel"
+          placeholder="请输入逻辑删除"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="逻辑删除" prop="productAttrValueId">
+        <el-input
+          v-model="queryParams.productAttrValueId"
+          placeholder="请输入逻辑删除"
+          clearable
+          size="small"
+          @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 icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
+      </el-form-item>
+    </el-form>
+
+    <el-row :gutter="10" class="mb8">
+      <el-col :span="1.5">
+        <el-button
+          type="primary"
+          plain
+          icon="el-icon-plus"
+          size="mini"
+          @click="handleAdd"
+          v-hasPermi="['live:liveAfterSalesItem:add']"
+        >新增</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="success"
+          plain
+          icon="el-icon-edit"
+          size="mini"
+          :disabled="single"
+          @click="handleUpdate"
+          v-hasPermi="['live:liveAfterSalesItem:edit']"
+        >修改</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="danger"
+          plain
+          icon="el-icon-delete"
+          size="mini"
+          :disabled="multiple"
+          @click="handleDelete"
+          v-hasPermi="['live:liveAfterSalesItem:remove']"
+        >删除</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="warning"
+          plain
+          icon="el-icon-download"
+          size="mini"
+          :loading="exportLoading"
+          @click="handleExport"
+          v-hasPermi="['live:liveAfterSalesItem:export']"
+        >导出</el-button>
+      </el-col>
+      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+    </el-row>
+
+    <el-table border v-loading="loading" :data="liveAfterSalesItemList" @selection-change="handleSelectionChange">
+      <el-table-column type="selection" width="55" align="center" />
+      <el-table-column label="主键id" align="center" prop="id" />
+      <el-table-column label="售后id" align="center" prop="afterSalesId" />
+      <el-table-column label="直播商品ID" align="center" prop="goodsId" />
+      <el-table-column label="商品id" align="center" prop="productId" />
+      <el-table-column label="退货东西的详情信息" align="center" prop="jsonInfo" />
+      <el-table-column label="逻辑删除" align="center" prop="isDel" />
+      <el-table-column label="逻辑删除" align="center" prop="productAttrValueId" />
+      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
+        <template slot-scope="scope">
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-edit"
+            @click="handleUpdate(scope.row)"
+            v-hasPermi="['live:liveAfterSalesItem:edit']"
+          >修改</el-button>
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-delete"
+            @click="handleDelete(scope.row)"
+            v-hasPermi="['live:liveAfterSalesItem:remove']"
+          >删除</el-button>
+        </template>
+      </el-table-column>
+    </el-table>
+
+    <pagination
+      v-show="total>0"
+      :total="total"
+      :page.sync="queryParams.pageNum"
+      :limit.sync="queryParams.pageSize"
+      @pagination="getList"
+    />
+
+    <!-- 添加或修改售后子对话框 -->
+    <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
+      <el-form ref="form" :model="form" :rules="rules" label-width="80px">
+        <el-form-item label="售后id" prop="afterSalesId">
+          <el-input v-model="form.afterSalesId" placeholder="请输入售后id" />
+        </el-form-item>
+        <el-form-item label="直播商品ID" prop="goodsId">
+          <el-input v-model="form.goodsId" placeholder="请输入直播商品ID" />
+        </el-form-item>
+        <el-form-item label="商品id" prop="productId">
+          <el-input v-model="form.productId" placeholder="请输入商品id" />
+        </el-form-item>
+        <el-form-item label="退货东西的详情信息" prop="jsonInfo">
+          <el-input v-model="form.jsonInfo" type="textarea" placeholder="请输入内容" />
+        </el-form-item>
+        <el-form-item label="逻辑删除" prop="isDel">
+          <el-input v-model="form.isDel" placeholder="请输入逻辑删除" />
+        </el-form-item>
+        <el-form-item label="逻辑删除" prop="productAttrValueId">
+          <el-input v-model="form.productAttrValueId" placeholder="请输入逻辑删除" />
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="submitForm">确 定</el-button>
+        <el-button @click="cancel">取 消</el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import { listLiveAfterSalesItem, getLiveAfterSalesItem, delLiveAfterSalesItem, addLiveAfterSalesItem, updateLiveAfterSalesItem, exportLiveAfterSalesItem } from "@/api/live/liveAfterSalesItem";
+
+export default {
+  name: "LiveAfterSalesItem",
+  data() {
+    return {
+      // 遮罩层
+      loading: true,
+      // 导出遮罩层
+      exportLoading: false,
+      // 选中数组
+      ids: [],
+      // 非单个禁用
+      single: true,
+      // 非多个禁用
+      multiple: true,
+      // 显示搜索条件
+      showSearch: true,
+      // 总条数
+      total: 0,
+      // 售后子表格数据
+      liveAfterSalesItemList: [],
+      // 弹出层标题
+      title: "",
+      // 是否显示弹出层
+      open: false,
+      // 查询参数
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        afterSalesId: null,
+        goodsId: null,
+        productId: null,
+        jsonInfo: null,
+        isDel: null,
+        productAttrValueId: null
+      },
+      // 表单参数
+      form: {},
+      // 表单校验
+      rules: {
+        jsonInfo: [
+          { required: true, message: "退货东西的详情信息不能为空", trigger: "blur" }
+        ],
+      }
+    };
+  },
+  created() {
+    this.getList();
+  },
+  methods: {
+    /** 查询售后子列表 */
+    getList() {
+      this.loading = true;
+      listLiveAfterSalesItem(this.queryParams).then(response => {
+        this.liveAfterSalesItemList = response.rows;
+        this.total = response.total;
+        this.loading = false;
+      });
+    },
+    // 取消按钮
+    cancel() {
+      this.open = false;
+      this.reset();
+    },
+    // 表单重置
+    reset() {
+      this.form = {
+        id: null,
+        afterSalesId: null,
+        goodsId: null,
+        productId: null,
+        jsonInfo: null,
+        isDel: null,
+        productAttrValueId: null
+      };
+      this.resetForm("form");
+    },
+    /** 搜索按钮操作 */
+    handleQuery() {
+      this.queryParams.pageNum = 1;
+      this.getList();
+    },
+    /** 重置按钮操作 */
+    resetQuery() {
+      this.resetForm("queryForm");
+      this.handleQuery();
+    },
+    // 多选框选中数据
+    handleSelectionChange(selection) {
+      this.ids = selection.map(item => item.id)
+      this.single = selection.length!==1
+      this.multiple = !selection.length
+    },
+    /** 新增按钮操作 */
+    handleAdd() {
+      this.reset();
+      this.open = true;
+      this.title = "添加售后子";
+    },
+    /** 修改按钮操作 */
+    handleUpdate(row) {
+      this.reset();
+      const id = row.id || this.ids
+      getLiveAfterSalesItem(id).then(response => {
+        this.form = response.data;
+        this.open = true;
+        this.title = "修改售后子";
+      });
+    },
+    /** 提交按钮 */
+    submitForm() {
+      this.$refs["form"].validate(valid => {
+        if (valid) {
+          if (this.form.id != null) {
+            updateLiveAfterSalesItem(this.form).then(response => {
+              this.msgSuccess("修改成功");
+              this.open = false;
+              this.getList();
+            });
+          } else {
+            addLiveAfterSalesItem(this.form).then(response => {
+              this.msgSuccess("新增成功");
+              this.open = false;
+              this.getList();
+            });
+          }
+        }
+      });
+    },
+    /** 删除按钮操作 */
+    handleDelete(row) {
+      const ids = row.id || this.ids;
+      this.$confirm('是否确认删除售后子编号为"' + ids + '"的数据项?', "警告", {
+          confirmButtonText: "确定",
+          cancelButtonText: "取消",
+          type: "warning"
+        }).then(function() {
+          return delLiveAfterSalesItem(ids);
+        }).then(() => {
+          this.getList();
+          this.msgSuccess("删除成功");
+        }).catch(() => {});
+    },
+    /** 导出按钮操作 */
+    handleExport() {
+      const queryParams = this.queryParams;
+      this.$confirm('是否确认导出所有售后子数据项?', "警告", {
+          confirmButtonText: "确定",
+          cancelButtonText: "取消",
+          type: "warning"
+        }).then(() => {
+          this.exportLoading = true;
+          return exportLiveAfterSalesItem(queryParams);
+        }).then(response => {
+          this.download(response.msg);
+          this.exportLoading = false;
+        }).catch(() => {});
+    }
+  }
+};
+</script>

+ 358 - 0
src/views/live/liveAfterSalesLogs/index.vue

@@ -0,0 +1,358 @@
+<template>
+  <div class="app-container">
+    <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px">
+      <el-form-item label="售后id" prop="storeAfterSalesId">
+        <el-input
+          v-model="queryParams.storeAfterSalesId"
+          placeholder="请输入售后id"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="操作类型" prop="changeType">
+        <el-select v-model="queryParams.changeType" placeholder="请选择操作类型" clearable size="small">
+          <el-option label="请选择字典生成" value="" />
+        </el-select>
+      </el-form-item>
+      <el-form-item label="操作备注" prop="changeMessage">
+        <el-input
+          v-model="queryParams.changeMessage"
+          placeholder="请输入操作备注"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="操作时间" prop="changeTime">
+        <el-date-picker clearable size="small"
+          v-model="queryParams.changeTime"
+          type="date"
+          value-format="yyyy-MM-dd"
+          placeholder="选择操作时间">
+        </el-date-picker>
+      </el-form-item>
+      <el-form-item label="操作人" prop="operator">
+        <el-input
+          v-model="queryParams.operator"
+          placeholder="请输入操作人"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="公司id" prop="companyId">
+        <el-input
+          v-model="queryParams.companyId"
+          placeholder="请输入公司id"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="店铺id" prop="storeId">
+        <el-input
+          v-model="queryParams.storeId"
+          placeholder="请输入店铺id"
+          clearable
+          size="small"
+          @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 icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
+      </el-form-item>
+    </el-form>
+
+    <el-row :gutter="10" class="mb8">
+      <el-col :span="1.5">
+        <el-button
+          type="primary"
+          plain
+          icon="el-icon-plus"
+          size="mini"
+          @click="handleAdd"
+          v-hasPermi="['live:liveAfterSalesLogs:add']"
+        >新增</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="success"
+          plain
+          icon="el-icon-edit"
+          size="mini"
+          :disabled="single"
+          @click="handleUpdate"
+          v-hasPermi="['live:liveAfterSalesLogs:edit']"
+        >修改</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="danger"
+          plain
+          icon="el-icon-delete"
+          size="mini"
+          :disabled="multiple"
+          @click="handleDelete"
+          v-hasPermi="['live:liveAfterSalesLogs:remove']"
+        >删除</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="warning"
+          plain
+          icon="el-icon-download"
+          size="mini"
+          :loading="exportLoading"
+          @click="handleExport"
+          v-hasPermi="['live:liveAfterSalesLogs:export']"
+        >导出</el-button>
+      </el-col>
+      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+    </el-row>
+
+    <el-table border v-loading="loading" :data="liveAfterSalesLogsList" @selection-change="handleSelectionChange">
+      <el-table-column type="selection" width="55" align="center" />
+      <el-table-column label="店铺id" align="center" prop="logsId" />
+      <el-table-column label="售后id" align="center" prop="storeAfterSalesId" />
+      <el-table-column label="操作类型" align="center" prop="changeType" />
+      <el-table-column label="操作备注" align="center" prop="changeMessage" />
+      <el-table-column label="操作时间" align="center" prop="changeTime" width="180">
+        <template slot-scope="scope">
+          <span>{{ parseTime(scope.row.changeTime, '{y}-{m}-{d}') }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="操作人" align="center" prop="operator" />
+      <el-table-column label="公司id" align="center" prop="companyId" />
+      <el-table-column label="店铺id" align="center" prop="storeId" />
+      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
+        <template slot-scope="scope">
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-edit"
+            @click="handleUpdate(scope.row)"
+            v-hasPermi="['live:liveAfterSalesLogs:edit']"
+          >修改</el-button>
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-delete"
+            @click="handleDelete(scope.row)"
+            v-hasPermi="['live:liveAfterSalesLogs:remove']"
+          >删除</el-button>
+        </template>
+      </el-table-column>
+    </el-table>
+
+    <pagination
+      v-show="total>0"
+      :total="total"
+      :page.sync="queryParams.pageNum"
+      :limit.sync="queryParams.pageSize"
+      @pagination="getList"
+    />
+
+    <!-- 添加或修改售后订单操作对话框 -->
+    <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
+      <el-form ref="form" :model="form" :rules="rules" label-width="80px">
+        <el-form-item label="售后id" prop="storeAfterSalesId">
+          <el-input v-model="form.storeAfterSalesId" placeholder="请输入售后id" />
+        </el-form-item>
+        <el-form-item label="操作类型" prop="changeType">
+          <el-select v-model="form.changeType" placeholder="请选择操作类型">
+            <el-option label="请选择字典生成" value="" />
+          </el-select>
+        </el-form-item>
+        <el-form-item label="操作备注" prop="changeMessage">
+          <el-input v-model="form.changeMessage" placeholder="请输入操作备注" />
+        </el-form-item>
+        <el-form-item label="操作时间" prop="changeTime">
+          <el-date-picker clearable size="small"
+            v-model="form.changeTime"
+            type="date"
+            value-format="yyyy-MM-dd"
+            placeholder="选择操作时间">
+          </el-date-picker>
+        </el-form-item>
+        <el-form-item label="操作人" prop="operator">
+          <el-input v-model="form.operator" placeholder="请输入操作人" />
+        </el-form-item>
+        <el-form-item label="公司id" prop="companyId">
+          <el-input v-model="form.companyId" placeholder="请输入公司id" />
+        </el-form-item>
+        <el-form-item label="店铺id" prop="storeId">
+          <el-input v-model="form.storeId" placeholder="请输入店铺id" />
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="submitForm">确 定</el-button>
+        <el-button @click="cancel">取 消</el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import { listLiveAfterSalesLogs, getLiveAfterSalesLogs, delLiveAfterSalesLogs, addLiveAfterSalesLogs, updateLiveAfterSalesLogs, exportLiveAfterSalesLogs } from "@/api/live/liveAfterSalesLogs";
+
+export default {
+  name: "LiveAfterSalesLogs",
+  data() {
+    return {
+      // 遮罩层
+      loading: true,
+      // 导出遮罩层
+      exportLoading: false,
+      // 选中数组
+      ids: [],
+      // 非单个禁用
+      single: true,
+      // 非多个禁用
+      multiple: true,
+      // 显示搜索条件
+      showSearch: true,
+      // 总条数
+      total: 0,
+      // 售后订单操作表格数据
+      liveAfterSalesLogsList: [],
+      // 弹出层标题
+      title: "",
+      // 是否显示弹出层
+      open: false,
+      // 查询参数
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        storeAfterSalesId: null,
+        changeType: null,
+        changeMessage: null,
+        changeTime: null,
+        operator: null,
+        companyId: null,
+        storeId: null
+      },
+      // 表单参数
+      form: {},
+      // 表单校验
+      rules: {
+      }
+    };
+  },
+  created() {
+    this.getList();
+  },
+  methods: {
+    /** 查询售后订单操作列表 */
+    getList() {
+      this.loading = true;
+      listLiveAfterSalesLogs(this.queryParams).then(response => {
+        this.liveAfterSalesLogsList = response.rows;
+        this.total = response.total;
+        this.loading = false;
+      });
+    },
+    // 取消按钮
+    cancel() {
+      this.open = false;
+      this.reset();
+    },
+    // 表单重置
+    reset() {
+      this.form = {
+        logsId: null,
+        storeAfterSalesId: null,
+        changeType: null,
+        changeMessage: null,
+        changeTime: null,
+        operator: null,
+        companyId: null,
+        storeId: null
+      };
+      this.resetForm("form");
+    },
+    /** 搜索按钮操作 */
+    handleQuery() {
+      this.queryParams.pageNum = 1;
+      this.getList();
+    },
+    /** 重置按钮操作 */
+    resetQuery() {
+      this.resetForm("queryForm");
+      this.handleQuery();
+    },
+    // 多选框选中数据
+    handleSelectionChange(selection) {
+      this.ids = selection.map(item => item.logsId)
+      this.single = selection.length!==1
+      this.multiple = !selection.length
+    },
+    /** 新增按钮操作 */
+    handleAdd() {
+      this.reset();
+      this.open = true;
+      this.title = "添加售后订单操作";
+    },
+    /** 修改按钮操作 */
+    handleUpdate(row) {
+      this.reset();
+      const logsId = row.logsId || this.ids
+      getLiveAfterSalesLogs(logsId).then(response => {
+        this.form = response.data;
+        this.open = true;
+        this.title = "修改售后订单操作";
+      });
+    },
+    /** 提交按钮 */
+    submitForm() {
+      this.$refs["form"].validate(valid => {
+        if (valid) {
+          if (this.form.logsId != null) {
+            updateLiveAfterSalesLogs(this.form).then(response => {
+              this.msgSuccess("修改成功");
+              this.open = false;
+              this.getList();
+            });
+          } else {
+            addLiveAfterSalesLogs(this.form).then(response => {
+              this.msgSuccess("新增成功");
+              this.open = false;
+              this.getList();
+            });
+          }
+        }
+      });
+    },
+    /** 删除按钮操作 */
+    handleDelete(row) {
+      const logsIds = row.logsId || this.ids;
+      this.$confirm('是否确认删除售后订单操作编号为"' + logsIds + '"的数据项?', "警告", {
+          confirmButtonText: "确定",
+          cancelButtonText: "取消",
+          type: "warning"
+        }).then(function() {
+          return delLiveAfterSalesLogs(logsIds);
+        }).then(() => {
+          this.getList();
+          this.msgSuccess("删除成功");
+        }).catch(() => {});
+    },
+    /** 导出按钮操作 */
+    handleExport() {
+      const queryParams = this.queryParams;
+      this.$confirm('是否确认导出所有售后订单操作数据项?', "警告", {
+          confirmButtonText: "确定",
+          cancelButtonText: "取消",
+          type: "warning"
+        }).then(() => {
+          this.exportLoading = true;
+          return exportLiveAfterSalesLogs(queryParams);
+        }).then(response => {
+          this.download(response.msg);
+          this.exportLoading = false;
+        }).catch(() => {});
+    }
+  }
+};
+</script>

+ 531 - 0
src/views/live/liveAfteraSales/index.vue

@@ -0,0 +1,531 @@
+<template>
+  <div class="app-container">
+    <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px">
+      <el-form-item label="直播ID" prop="liveId">
+        <el-input
+          v-model="queryParams.liveId"
+          placeholder="请输入直播ID"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="店铺ID" prop="storeId">
+        <el-input
+          v-model="queryParams.storeId"
+          placeholder="请输入店铺ID"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="订单ID" prop="orderId">
+        <el-input
+          v-model="queryParams.orderId"
+          placeholder="请输入订单ID"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="退款金额" prop="refundAmount">
+        <el-input
+          v-model="queryParams.refundAmount"
+          placeholder="请输入退款金额"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="服务类型0仅退款1退货退款" prop="refundType">
+        <el-select v-model="queryParams.refundType" placeholder="请选择服务类型0仅退款1退货退款" clearable size="small">
+          <el-option label="请选择字典生成" value="" />
+        </el-select>
+      </el-form-item>
+      <el-form-item label="物流公司编码" prop="deliveryCode">
+        <el-input
+          v-model="queryParams.deliveryCode"
+          placeholder="请输入物流公司编码"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="物流单号" prop="deliverySn">
+        <el-input
+          v-model="queryParams.deliverySn"
+          placeholder="请输入物流单号"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="物流名称" prop="deliveryName">
+        <el-input
+          v-model="queryParams.deliveryName"
+          placeholder="请输入物流名称"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="状态 0已提交等待平台审核 1平台已审核 等待用户发货 2 用户已发货待仓库审核 3财务审核 4退款成功" prop="status">
+        <el-select v-model="queryParams.status" placeholder="请选择状态 0已提交等待平台审核 1平台已审核 等待用户发货 2 用户已发货待仓库审核 3财务审核 4退款成功" clearable size="small">
+          <el-option label="请选择字典生成" value="" />
+        </el-select>
+      </el-form-item>
+      <el-form-item label="售后状态 0售后中 1用户取消2商家拒绝 3已完成" prop="salesStatus">
+        <el-select v-model="queryParams.salesStatus" placeholder="请选择售后状态 0售后中 1用户取消2商家拒绝 3已完成" clearable size="small">
+          <el-option label="请选择字典生成" value="" />
+        </el-select>
+      </el-form-item>
+      <el-form-item label="订单状态" prop="orderStatus">
+        <el-select v-model="queryParams.orderStatus" placeholder="请选择订单状态" clearable size="small">
+          <el-option label="请选择字典生成" value="" />
+        </el-select>
+      </el-form-item>
+      <el-form-item label="用户id" prop="userId">
+        <el-input
+          v-model="queryParams.userId"
+          placeholder="请输入用户id"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="商家收货人" prop="consignee">
+        <el-input
+          v-model="queryParams.consignee"
+          placeholder="请输入商家收货人"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="商家手机号" prop="phoneNumber">
+        <el-input
+          v-model="queryParams.phoneNumber"
+          placeholder="请输入商家手机号"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="商家地址" prop="address">
+        <el-input
+          v-model="queryParams.address"
+          placeholder="请输入商家地址"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="商家地址" prop="companyId">
+        <el-input
+          v-model="queryParams.companyId"
+          placeholder="请输入商家地址"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="商家地址" prop="companyUserId">
+        <el-input
+          v-model="queryParams.companyUserId"
+          placeholder="请输入商家地址"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="部门id" prop="deptId">
+        <el-input
+          v-model="queryParams.deptId"
+          placeholder="请输入部门id"
+          clearable
+          size="small"
+          @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 icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
+      </el-form-item>
+    </el-form>
+
+    <el-row :gutter="10" class="mb8">
+      <el-col :span="1.5">
+        <el-button
+          type="primary"
+          plain
+          icon="el-icon-plus"
+          size="mini"
+          @click="handleAdd"
+          v-hasPermi="['live:liveAfteraSales:add']"
+        >新增</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="success"
+          plain
+          icon="el-icon-edit"
+          size="mini"
+          :disabled="single"
+          @click="handleUpdate"
+          v-hasPermi="['live:liveAfteraSales:edit']"
+        >修改</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="danger"
+          plain
+          icon="el-icon-delete"
+          size="mini"
+          :disabled="multiple"
+          @click="handleDelete"
+          v-hasPermi="['live:liveAfteraSales:remove']"
+        >删除</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="warning"
+          plain
+          icon="el-icon-download"
+          size="mini"
+          :loading="exportLoading"
+          @click="handleExport"
+          v-hasPermi="['live:liveAfteraSales:export']"
+        >导出</el-button>
+      </el-col>
+      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+    </el-row>
+
+    <el-table border v-loading="loading" :data="liveAfteraSalesList" @selection-change="handleSelectionChange">
+      <el-table-column type="selection" width="55" align="center" />
+      <el-table-column label="部门id" align="center" prop="id" />
+      <el-table-column label="直播ID" align="center" prop="liveId" />
+      <el-table-column label="店铺ID" align="center" prop="storeId" />
+      <el-table-column label="订单ID" align="center" prop="orderId" />
+      <el-table-column label="退款金额" align="center" prop="refundAmount" />
+      <el-table-column label="服务类型0仅退款1退货退款" align="center" prop="refundType" />
+      <el-table-column label="申请原因" align="center" prop="reasons" />
+      <el-table-column label="说明" align="center" prop="explains" />
+      <el-table-column label="说明图片-&gt;多个用逗号分割" align="center" prop="explainImg" />
+      <el-table-column label="物流公司编码" align="center" prop="deliveryCode" />
+      <el-table-column label="物流单号" align="center" prop="deliverySn" />
+      <el-table-column label="物流名称" align="center" prop="deliveryName" />
+      <el-table-column label="状态 0已提交等待平台审核 1平台已审核 等待用户发货 2 用户已发货待仓库审核 3财务审核 4退款成功" align="center" prop="status" />
+      <el-table-column label="售后状态 0售后中 1用户取消2商家拒绝 3已完成" align="center" prop="salesStatus" />
+      <el-table-column label="订单状态" align="center" prop="orderStatus" />
+      <el-table-column label="逻辑删除" align="center" prop="isDel" />
+      <el-table-column label="用户id" align="center" prop="userId" />
+      <el-table-column label="商家收货人" align="center" prop="consignee" />
+      <el-table-column label="商家手机号" align="center" prop="phoneNumber" />
+      <el-table-column label="商家地址" align="center" prop="address" />
+      <el-table-column label="商家地址" align="center" prop="companyId" />
+      <el-table-column label="商家地址" align="center" prop="companyUserId" />
+      <el-table-column label="部门id" align="center" prop="deptId" />
+      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
+        <template slot-scope="scope">
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-edit"
+            @click="handleUpdate(scope.row)"
+            v-hasPermi="['live:liveAfteraSales:edit']"
+          >修改</el-button>
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-delete"
+            @click="handleDelete(scope.row)"
+            v-hasPermi="['live:liveAfteraSales:remove']"
+          >删除</el-button>
+        </template>
+      </el-table-column>
+    </el-table>
+
+    <pagination
+      v-show="total>0"
+      :total="total"
+      :page.sync="queryParams.pageNum"
+      :limit.sync="queryParams.pageSize"
+      @pagination="getList"
+    />
+
+    <!-- 添加或修改售后记录对话框 -->
+    <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
+      <el-form ref="form" :model="form" :rules="rules" label-width="80px">
+        <el-form-item label="直播ID" prop="liveId">
+          <el-input v-model="form.liveId" placeholder="请输入直播ID" />
+        </el-form-item>
+        <el-form-item label="店铺ID" prop="storeId">
+          <el-input v-model="form.storeId" placeholder="请输入店铺ID" />
+        </el-form-item>
+        <el-form-item label="订单ID" prop="orderId">
+          <el-input v-model="form.orderId" placeholder="请输入订单ID" />
+        </el-form-item>
+        <el-form-item label="退款金额" prop="refundAmount">
+          <el-input v-model="form.refundAmount" placeholder="请输入退款金额" />
+        </el-form-item>
+        <el-form-item label="服务类型0仅退款1退货退款" prop="refundType">
+          <el-select v-model="form.refundType" placeholder="请选择服务类型0仅退款1退货退款">
+            <el-option label="请选择字典生成" value="" />
+          </el-select>
+        </el-form-item>
+        <el-form-item label="申请原因" prop="reasons">
+          <el-input v-model="form.reasons" type="textarea" placeholder="请输入内容" />
+        </el-form-item>
+        <el-form-item label="说明" prop="explains">
+          <el-input v-model="form.explains" type="textarea" placeholder="请输入内容" />
+        </el-form-item>
+        <el-form-item label="说明图片-&gt;多个用逗号分割" prop="explainImg">
+          <el-input v-model="form.explainImg" type="textarea" placeholder="请输入内容" />
+        </el-form-item>
+        <el-form-item label="物流公司编码" prop="deliveryCode">
+          <el-input v-model="form.deliveryCode" placeholder="请输入物流公司编码" />
+        </el-form-item>
+        <el-form-item label="物流单号" prop="deliverySn">
+          <el-input v-model="form.deliverySn" placeholder="请输入物流单号" />
+        </el-form-item>
+        <el-form-item label="物流名称" prop="deliveryName">
+          <el-input v-model="form.deliveryName" placeholder="请输入物流名称" />
+        </el-form-item>
+        <el-form-item label="状态 0已提交等待平台审核 1平台已审核 等待用户发货 2 用户已发货待仓库审核 3财务审核 4退款成功">
+          <el-radio-group v-model="form.status">
+            <el-radio label="1">请选择字典生成</el-radio>
+          </el-radio-group>
+        </el-form-item>
+        <el-form-item label="售后状态 0售后中 1用户取消2商家拒绝 3已完成">
+          <el-radio-group v-model="form.salesStatus">
+            <el-radio label="1">请选择字典生成</el-radio>
+          </el-radio-group>
+        </el-form-item>
+        <el-form-item label="订单状态">
+          <el-radio-group v-model="form.orderStatus">
+            <el-radio label="1">请选择字典生成</el-radio>
+          </el-radio-group>
+        </el-form-item>
+        <el-form-item label="用户id" prop="userId">
+          <el-input v-model="form.userId" placeholder="请输入用户id" />
+        </el-form-item>
+        <el-form-item label="商家收货人" prop="consignee">
+          <el-input v-model="form.consignee" placeholder="请输入商家收货人" />
+        </el-form-item>
+        <el-form-item label="商家手机号" prop="phoneNumber">
+          <el-input v-model="form.phoneNumber" placeholder="请输入商家手机号" />
+        </el-form-item>
+        <el-form-item label="商家地址" prop="address">
+          <el-input v-model="form.address" placeholder="请输入商家地址" />
+        </el-form-item>
+        <el-form-item label="商家地址" prop="companyId">
+          <el-input v-model="form.companyId" placeholder="请输入商家地址" />
+        </el-form-item>
+        <el-form-item label="商家地址" prop="companyUserId">
+          <el-input v-model="form.companyUserId" placeholder="请输入商家地址" />
+        </el-form-item>
+        <el-form-item label="部门id" prop="deptId">
+          <el-input v-model="form.deptId" placeholder="请输入部门id" />
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="submitForm">确 定</el-button>
+        <el-button @click="cancel">取 消</el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import { listLiveAfteraSales, getLiveAfteraSales, delLiveAfteraSales, addLiveAfteraSales, updateLiveAfteraSales, exportLiveAfteraSales } from "@/api/live/liveAfteraSales";
+
+export default {
+  name: "LiveAfteraSales",
+  data() {
+    return {
+      // 遮罩层
+      loading: true,
+      // 导出遮罩层
+      exportLoading: false,
+      // 选中数组
+      ids: [],
+      // 非单个禁用
+      single: true,
+      // 非多个禁用
+      multiple: true,
+      // 显示搜索条件
+      showSearch: true,
+      // 总条数
+      total: 0,
+      // 售后记录表格数据
+      liveAfteraSalesList: [],
+      // 弹出层标题
+      title: "",
+      // 是否显示弹出层
+      open: false,
+      // 查询参数
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        liveId: null,
+        storeId: null,
+        orderId: null,
+        refundAmount: null,
+        refundType: null,
+        reasons: null,
+        explains: null,
+        explainImg: null,
+        deliveryCode: null,
+        deliverySn: null,
+        deliveryName: null,
+        status: null,
+        salesStatus: null,
+        orderStatus: null,
+        isDel: null,
+        userId: null,
+        consignee: null,
+        phoneNumber: null,
+        address: null,
+        companyId: null,
+        companyUserId: null,
+        deptId: null
+      },
+      // 表单参数
+      form: {},
+      // 表单校验
+      rules: {
+      }
+    };
+  },
+  created() {
+    this.getList();
+  },
+  methods: {
+    /** 查询售后记录列表 */
+    getList() {
+      this.loading = true;
+      listLiveAfteraSales(this.queryParams).then(response => {
+        this.liveAfteraSalesList = response.rows;
+        this.total = response.total;
+        this.loading = false;
+      });
+    },
+    // 取消按钮
+    cancel() {
+      this.open = false;
+      this.reset();
+    },
+    // 表单重置
+    reset() {
+      this.form = {
+        id: null,
+        liveId: null,
+        storeId: null,
+        orderId: null,
+        refundAmount: null,
+        refundType: null,
+        reasons: null,
+        explains: null,
+        explainImg: null,
+        deliveryCode: null,
+        deliverySn: null,
+        deliveryName: null,
+        status: 0,
+        salesStatus: 0,
+        orderStatus: 0,
+        createTime: null,
+        isDel: null,
+        userId: null,
+        consignee: null,
+        phoneNumber: null,
+        address: null,
+        companyId: null,
+        companyUserId: null,
+        deptId: null
+      };
+      this.resetForm("form");
+    },
+    /** 搜索按钮操作 */
+    handleQuery() {
+      this.queryParams.pageNum = 1;
+      this.getList();
+    },
+    /** 重置按钮操作 */
+    resetQuery() {
+      this.resetForm("queryForm");
+      this.handleQuery();
+    },
+    // 多选框选中数据
+    handleSelectionChange(selection) {
+      this.ids = selection.map(item => item.id)
+      this.single = selection.length!==1
+      this.multiple = !selection.length
+    },
+    /** 新增按钮操作 */
+    handleAdd() {
+      this.reset();
+      this.open = true;
+      this.title = "添加售后记录";
+    },
+    /** 修改按钮操作 */
+    handleUpdate(row) {
+      this.reset();
+      const id = row.id || this.ids
+      getLiveAfteraSales(id).then(response => {
+        this.form = response.data;
+        this.open = true;
+        this.title = "修改售后记录";
+      });
+    },
+    /** 提交按钮 */
+    submitForm() {
+      this.$refs["form"].validate(valid => {
+        if (valid) {
+          if (this.form.id != null) {
+            updateLiveAfteraSales(this.form).then(response => {
+              this.msgSuccess("修改成功");
+              this.open = false;
+              this.getList();
+            });
+          } else {
+            addLiveAfteraSales(this.form).then(response => {
+              this.msgSuccess("新增成功");
+              this.open = false;
+              this.getList();
+            });
+          }
+        }
+      });
+    },
+    /** 删除按钮操作 */
+    handleDelete(row) {
+      const ids = row.id || this.ids;
+      this.$confirm('是否确认删除售后记录编号为"' + ids + '"的数据项?', "警告", {
+          confirmButtonText: "确定",
+          cancelButtonText: "取消",
+          type: "warning"
+        }).then(function() {
+          return delLiveAfteraSales(ids);
+        }).then(() => {
+          this.getList();
+          this.msgSuccess("删除成功");
+        }).catch(() => {});
+    },
+    /** 导出按钮操作 */
+    handleExport() {
+      const queryParams = this.queryParams;
+      this.$confirm('是否确认导出所有售后记录数据项?', "警告", {
+          confirmButtonText: "确定",
+          cancelButtonText: "取消",
+          type: "warning"
+        }).then(() => {
+          this.exportLoading = true;
+          return exportLiveAfteraSales(queryParams);
+        }).then(response => {
+          this.download(response.msg);
+          this.exportLoading = false;
+        }).catch(() => {});
+    }
+  }
+};
+</script>

+ 369 - 0
src/views/live/liveCart/index.vue

@@ -0,0 +1,369 @@
+<template>
+  <div class="app-container">
+    <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px">
+      <el-form-item label="直播间ID" prop="liveId">
+        <el-input
+          v-model="queryParams.liveId"
+          placeholder="请输入直播间ID"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="直播商品ID" prop="goodsId">
+        <el-input
+          v-model="queryParams.goodsId"
+          placeholder="请输入直播商品ID"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="商品ID" prop="productAttrValueId">
+        <el-input
+          v-model="queryParams.productAttrValueId"
+          placeholder="请输入商品ID"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="0 = 未购买 1 = 已购买" prop="isPay">
+        <el-input
+          v-model="queryParams.isPay"
+          placeholder="请输入0 = 未购买 1 = 已购买"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="是否删除" prop="isDel">
+        <el-input
+          v-model="queryParams.isDel"
+          placeholder="请输入是否删除"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="是否为立即购买" prop="isBuy">
+        <el-input
+          v-model="queryParams.isBuy"
+          placeholder="请输入是否为立即购买"
+          clearable
+          size="small"
+          @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 icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
+      </el-form-item>
+    </el-form>
+
+    <el-row :gutter="10" class="mb8">
+      <el-col :span="1.5">
+        <el-button
+          type="primary"
+          plain
+          icon="el-icon-plus"
+          size="mini"
+          @click="handleAdd"
+          v-hasPermi="['live:liveCart:add']"
+        >新增</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="success"
+          plain
+          icon="el-icon-edit"
+          size="mini"
+          :disabled="single"
+          @click="handleUpdate"
+          v-hasPermi="['live:liveCart:edit']"
+        >修改</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="danger"
+          plain
+          icon="el-icon-delete"
+          size="mini"
+          :disabled="multiple"
+          @click="handleDelete"
+          v-hasPermi="['live:liveCart:remove']"
+        >删除</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="warning"
+          plain
+          icon="el-icon-download"
+          size="mini"
+          :loading="exportLoading"
+          @click="handleExport"
+          v-hasPermi="['live:liveCart:export']"
+        >导出</el-button>
+      </el-col>
+      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+    </el-row>
+
+    <el-table border v-loading="loading" :data="liveCartList" @selection-change="handleSelectionChange">
+      <el-table-column type="selection" width="55" align="center" />
+      <el-table-column label="购物车表ID" align="center" prop="cardId" />
+      <el-table-column label="直播间ID" align="center" prop="liveId" />
+      <el-table-column label="用户ID" align="center" prop="userId" />
+      <el-table-column label="直播商品ID" align="center" prop="goodsId" />
+      <el-table-column label="商品ID" align="center" prop="productId" />
+      <el-table-column label="商品ID" align="center" prop="productAttrValueId" />
+      <el-table-column label="商品数量" align="center" prop="cartNum" />
+      <el-table-column label="0 = 未购买 1 = 已购买" align="center" prop="isPay" />
+      <el-table-column label="是否删除" align="center" prop="isDel" />
+      <el-table-column label="是否为立即购买" align="center" prop="isBuy" />
+      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
+        <template slot-scope="scope">
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-edit"
+            @click="handleUpdate(scope.row)"
+            v-hasPermi="['live:liveCart:edit']"
+          >修改</el-button>
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-delete"
+            @click="handleDelete(scope.row)"
+            v-hasPermi="['live:liveCart:remove']"
+          >删除</el-button>
+        </template>
+      </el-table-column>
+    </el-table>
+
+    <pagination
+      v-show="total>0"
+      :total="total"
+      :page.sync="queryParams.pageNum"
+      :limit.sync="queryParams.pageSize"
+      @pagination="getList"
+    />
+
+    <!-- 添加或修改购物车对话框 -->
+    <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
+      <el-form ref="form" :model="form" :rules="rules" label-width="80px">
+        <el-form-item label="直播间ID" prop="liveId">
+          <el-input v-model="form.liveId" placeholder="请输入直播间ID" />
+        </el-form-item>
+        <el-form-item label="直播商品ID" prop="goodsId">
+          <el-input v-model="form.goodsId" placeholder="请输入直播商品ID" />
+        </el-form-item>
+        <el-form-item label="商品ID" prop="productAttrValueId">
+          <el-input v-model="form.productAttrValueId" placeholder="请输入商品ID" />
+        </el-form-item>
+        <el-form-item label="0 = 未购买 1 = 已购买" prop="isPay">
+          <el-input v-model="form.isPay" placeholder="请输入0 = 未购买 1 = 已购买" />
+        </el-form-item>
+        <el-form-item label="是否删除" prop="isDel">
+          <el-input v-model="form.isDel" placeholder="请输入是否删除" />
+        </el-form-item>
+        <el-form-item label="是否为立即购买" prop="isBuy">
+          <el-input v-model="form.isBuy" placeholder="请输入是否为立即购买" />
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="submitForm">确 定</el-button>
+        <el-button @click="cancel">取 消</el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import { listLiveCart, getLiveCart, delLiveCart, addLiveCart, updateLiveCart, exportLiveCart } from "@/api/live/liveCart";
+
+export default {
+  name: "LiveCart",
+  data() {
+    return {
+      // 遮罩层
+      loading: true,
+      // 导出遮罩层
+      exportLoading: false,
+      // 选中数组
+      ids: [],
+      // 非单个禁用
+      single: true,
+      // 非多个禁用
+      multiple: true,
+      // 显示搜索条件
+      showSearch: true,
+      // 总条数
+      total: 0,
+      // 购物车表格数据
+      liveCartList: [],
+      // 弹出层标题
+      title: "",
+      // 是否显示弹出层
+      open: false,
+      // 查询参数
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        liveId: null,
+        userId: null,
+        goodsId: null,
+        productId: null,
+        productAttrValueId: null,
+        cartNum: null,
+        isPay: null,
+        isDel: null,
+        isBuy: null
+      },
+      // 表单参数
+      form: {},
+      // 表单校验
+      rules: {
+        userId: [
+          { required: true, message: "用户ID不能为空", trigger: "blur" }
+        ],
+        productId: [
+          { required: true, message: "商品ID不能为空", trigger: "blur" }
+        ],
+        cartNum: [
+          { required: true, message: "商品数量不能为空", trigger: "blur" }
+        ],
+        createTime: [
+          { required: true, message: "添加时间不能为空", trigger: "blur" }
+        ],
+        isPay: [
+          { required: true, message: "0 = 未购买 1 = 已购买不能为空", trigger: "blur" }
+        ],
+        isDel: [
+          { required: true, message: "是否删除不能为空", trigger: "blur" }
+        ],
+        isBuy: [
+          { required: true, message: "是否为立即购买不能为空", trigger: "blur" }
+        ]
+      }
+    };
+  },
+  created() {
+    this.getList();
+  },
+  methods: {
+    /** 查询购物车列表 */
+    getList() {
+      this.loading = true;
+      listLiveCart(this.queryParams).then(response => {
+        this.liveCartList = response.rows;
+        this.total = response.total;
+        this.loading = false;
+      });
+    },
+    // 取消按钮
+    cancel() {
+      this.open = false;
+      this.reset();
+    },
+    // 表单重置
+    reset() {
+      this.form = {
+        cardId: null,
+        liveId: null,
+        userId: null,
+        goodsId: null,
+        productId: null,
+        productAttrValueId: null,
+        cartNum: null,
+        createTime: null,
+        updateTime: null,
+        isPay: null,
+        isDel: null,
+        isBuy: null
+      };
+      this.resetForm("form");
+    },
+    /** 搜索按钮操作 */
+    handleQuery() {
+      this.queryParams.pageNum = 1;
+      this.getList();
+    },
+    /** 重置按钮操作 */
+    resetQuery() {
+      this.resetForm("queryForm");
+      this.handleQuery();
+    },
+    // 多选框选中数据
+    handleSelectionChange(selection) {
+      this.ids = selection.map(item => item.cardId)
+      this.single = selection.length!==1
+      this.multiple = !selection.length
+    },
+    /** 新增按钮操作 */
+    handleAdd() {
+      this.reset();
+      this.open = true;
+      this.title = "添加购物车";
+    },
+    /** 修改按钮操作 */
+    handleUpdate(row) {
+      this.reset();
+      const cardId = row.cardId || this.ids
+      getLiveCart(cardId).then(response => {
+        this.form = response.data;
+        this.open = true;
+        this.title = "修改购物车";
+      });
+    },
+    /** 提交按钮 */
+    submitForm() {
+      this.$refs["form"].validate(valid => {
+        if (valid) {
+          if (this.form.cardId != null) {
+            updateLiveCart(this.form).then(response => {
+              this.msgSuccess("修改成功");
+              this.open = false;
+              this.getList();
+            });
+          } else {
+            addLiveCart(this.form).then(response => {
+              this.msgSuccess("新增成功");
+              this.open = false;
+              this.getList();
+            });
+          }
+        }
+      });
+    },
+    /** 删除按钮操作 */
+    handleDelete(row) {
+      const cardIds = row.cardId || this.ids;
+      this.$confirm('是否确认删除购物车编号为"' + cardIds + '"的数据项?', "警告", {
+          confirmButtonText: "确定",
+          cancelButtonText: "取消",
+          type: "warning"
+        }).then(function() {
+          return delLiveCart(cardIds);
+        }).then(() => {
+          this.getList();
+          this.msgSuccess("删除成功");
+        }).catch(() => {});
+    },
+    /** 导出按钮操作 */
+    handleExport() {
+      const queryParams = this.queryParams;
+      this.$confirm('是否确认导出所有购物车数据项?', "警告", {
+          confirmButtonText: "确定",
+          cancelButtonText: "取消",
+          type: "warning"
+        }).then(() => {
+          this.exportLoading = true;
+          return exportLiveCart(queryParams);
+        }).then(response => {
+          this.download(response.msg);
+          this.exportLoading = false;
+        }).catch(() => {});
+    }
+  }
+};
+</script>

+ 391 - 0
src/views/live/liveOrderItem/index.vue

@@ -0,0 +1,391 @@
+<template>
+  <div class="app-container">
+    <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px">
+      <el-form-item label="订单号" prop="orderCode">
+        <el-input
+          v-model="queryParams.orderCode"
+          placeholder="请输入订单号"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="直播商品ID" prop="goodsId">
+        <el-input
+          v-model="queryParams.goodsId"
+          placeholder="请输入直播商品ID"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="商品规格ID" prop="productAttrValueId">
+        <el-input
+          v-model="queryParams.productAttrValueId"
+          placeholder="请输入商品规格ID"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="数量" prop="num">
+        <el-input
+          v-model="queryParams.num"
+          placeholder="请输入数量"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="是否申请售后 0否1是" prop="isAfterSales">
+        <el-input
+          v-model="queryParams.isAfterSales"
+          placeholder="请输入是否申请售后 0否1是"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="是否为处方药" prop="isPrescribe">
+        <el-input
+          v-model="queryParams.isPrescribe"
+          placeholder="请输入是否为处方药"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="店铺ID" prop="storeId">
+        <el-input
+          v-model="queryParams.storeId"
+          placeholder="请输入店铺ID"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="是否赠品" prop="isGift">
+        <el-input
+          v-model="queryParams.isGift"
+          placeholder="请输入是否赠品"
+          clearable
+          size="small"
+          @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 icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
+      </el-form-item>
+    </el-form>
+
+    <el-row :gutter="10" class="mb8">
+      <el-col :span="1.5">
+        <el-button
+          type="primary"
+          plain
+          icon="el-icon-plus"
+          size="mini"
+          @click="handleAdd"
+          v-hasPermi="['live:liveOrderItem:add']"
+        >新增</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="success"
+          plain
+          icon="el-icon-edit"
+          size="mini"
+          :disabled="single"
+          @click="handleUpdate"
+          v-hasPermi="['live:liveOrderItem:edit']"
+        >修改</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="danger"
+          plain
+          icon="el-icon-delete"
+          size="mini"
+          :disabled="multiple"
+          @click="handleDelete"
+          v-hasPermi="['live:liveOrderItem:remove']"
+        >删除</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="warning"
+          plain
+          icon="el-icon-download"
+          size="mini"
+          :loading="exportLoading"
+          @click="handleExport"
+          v-hasPermi="['live:liveOrderItem:export']"
+        >导出</el-button>
+      </el-col>
+      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+    </el-row>
+
+    <el-table border v-loading="loading" :data="liveOrderItemList" @selection-change="handleSelectionChange">
+      <el-table-column type="selection" width="55" align="center" />
+      <el-table-column label="是否赠品" align="center" prop="itemId" />
+      <el-table-column label="订单id" align="center" prop="orderId" />
+      <el-table-column label="订单号" align="center" prop="orderCode" />
+      <el-table-column label="购物车ID" align="center" prop="cartId" />
+      <el-table-column label="直播商品ID" align="center" prop="goodsId" />
+      <el-table-column label="商品ID" align="center" prop="productId" />
+      <el-table-column label="商品规格ID" align="center" prop="productAttrValueId" />
+      <el-table-column label="JSON" align="center" prop="jsonInfo" />
+      <el-table-column label="数量" align="center" prop="num" />
+      <el-table-column label="是否申请售后 0否1是" align="center" prop="isAfterSales" />
+      <el-table-column label="是否为处方药" align="center" prop="isPrescribe" />
+      <el-table-column label="店铺ID" align="center" prop="storeId" />
+      <el-table-column label="是否赠品" align="center" prop="isGift" />
+      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
+        <template slot-scope="scope">
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-edit"
+            @click="handleUpdate(scope.row)"
+            v-hasPermi="['live:liveOrderItem:edit']"
+          >修改</el-button>
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-delete"
+            @click="handleDelete(scope.row)"
+            v-hasPermi="['live:liveOrderItem:remove']"
+          >删除</el-button>
+        </template>
+      </el-table-column>
+    </el-table>
+
+    <pagination
+      v-show="total>0"
+      :total="total"
+      :page.sync="queryParams.pageNum"
+      :limit.sync="queryParams.pageSize"
+      @pagination="getList"
+    />
+
+    <!-- 添加或修改订单详情对话框 -->
+    <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
+      <el-form ref="form" :model="form" :rules="rules" label-width="80px">
+        <el-form-item label="订单号" prop="orderCode">
+          <el-input v-model="form.orderCode" placeholder="请输入订单号" />
+        </el-form-item>
+        <el-form-item label="直播商品ID" prop="goodsId">
+          <el-input v-model="form.goodsId" placeholder="请输入直播商品ID" />
+        </el-form-item>
+        <el-form-item label="商品规格ID" prop="productAttrValueId">
+          <el-input v-model="form.productAttrValueId" placeholder="请输入商品规格ID" />
+        </el-form-item>
+        <el-form-item label="JSON" prop="jsonInfo">
+          <el-input v-model="form.jsonInfo" type="textarea" placeholder="请输入内容" />
+        </el-form-item>
+        <el-form-item label="数量" prop="num">
+          <el-input v-model="form.num" placeholder="请输入数量" />
+        </el-form-item>
+        <el-form-item label="是否申请售后 0否1是" prop="isAfterSales">
+          <el-input v-model="form.isAfterSales" placeholder="请输入是否申请售后 0否1是" />
+        </el-form-item>
+        <el-form-item label="是否为处方药" prop="isPrescribe">
+          <el-input v-model="form.isPrescribe" placeholder="请输入是否为处方药" />
+        </el-form-item>
+        <el-form-item label="店铺ID" prop="storeId">
+          <el-input v-model="form.storeId" placeholder="请输入店铺ID" />
+        </el-form-item>
+        <el-form-item label="是否赠品" prop="isGift">
+          <el-input v-model="form.isGift" placeholder="请输入是否赠品" />
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="submitForm">确 定</el-button>
+        <el-button @click="cancel">取 消</el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import { listLiveOrderItem, getLiveOrderItem, delLiveOrderItem, addLiveOrderItem, updateLiveOrderItem, exportLiveOrderItem } from "@/api/live/liveOrderItem";
+
+export default {
+  name: "LiveOrderItem",
+  data() {
+    return {
+      // 遮罩层
+      loading: true,
+      // 导出遮罩层
+      exportLoading: false,
+      // 选中数组
+      ids: [],
+      // 非单个禁用
+      single: true,
+      // 非多个禁用
+      multiple: true,
+      // 显示搜索条件
+      showSearch: true,
+      // 总条数
+      total: 0,
+      // 订单详情表格数据
+      liveOrderItemList: [],
+      // 弹出层标题
+      title: "",
+      // 是否显示弹出层
+      open: false,
+      // 查询参数
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        orderId: null,
+        orderCode: null,
+        cartId: null,
+        goodsId: null,
+        productId: null,
+        productAttrValueId: null,
+        jsonInfo: null,
+        num: null,
+        isAfterSales: null,
+        isPrescribe: null,
+        storeId: null,
+        isGift: null
+      },
+      // 表单参数
+      form: {},
+      // 表单校验
+      rules: {
+        orderId: [
+          { required: true, message: "订单id不能为空", trigger: "blur" }
+        ],
+        cartId: [
+          { required: true, message: "购物车ID不能为空", trigger: "blur" }
+        ],
+        productId: [
+          { required: true, message: "商品ID不能为空", trigger: "blur" }
+        ],
+      }
+    };
+  },
+  created() {
+    this.getList();
+  },
+  methods: {
+    /** 查询订单详情列表 */
+    getList() {
+      this.loading = true;
+      listLiveOrderItem(this.queryParams).then(response => {
+        this.liveOrderItemList = response.rows;
+        this.total = response.total;
+        this.loading = false;
+      });
+    },
+    // 取消按钮
+    cancel() {
+      this.open = false;
+      this.reset();
+    },
+    // 表单重置
+    reset() {
+      this.form = {
+        itemId: null,
+        orderId: null,
+        orderCode: null,
+        cartId: null,
+        goodsId: null,
+        productId: null,
+        productAttrValueId: null,
+        jsonInfo: null,
+        num: null,
+        isAfterSales: null,
+        isPrescribe: null,
+        storeId: null,
+        isGift: null
+      };
+      this.resetForm("form");
+    },
+    /** 搜索按钮操作 */
+    handleQuery() {
+      this.queryParams.pageNum = 1;
+      this.getList();
+    },
+    /** 重置按钮操作 */
+    resetQuery() {
+      this.resetForm("queryForm");
+      this.handleQuery();
+    },
+    // 多选框选中数据
+    handleSelectionChange(selection) {
+      this.ids = selection.map(item => item.itemId)
+      this.single = selection.length!==1
+      this.multiple = !selection.length
+    },
+    /** 新增按钮操作 */
+    handleAdd() {
+      this.reset();
+      this.open = true;
+      this.title = "添加订单详情";
+    },
+    /** 修改按钮操作 */
+    handleUpdate(row) {
+      this.reset();
+      const itemId = row.itemId || this.ids
+      getLiveOrderItem(itemId).then(response => {
+        this.form = response.data;
+        this.open = true;
+        this.title = "修改订单详情";
+      });
+    },
+    /** 提交按钮 */
+    submitForm() {
+      this.$refs["form"].validate(valid => {
+        if (valid) {
+          if (this.form.itemId != null) {
+            updateLiveOrderItem(this.form).then(response => {
+              this.msgSuccess("修改成功");
+              this.open = false;
+              this.getList();
+            });
+          } else {
+            addLiveOrderItem(this.form).then(response => {
+              this.msgSuccess("新增成功");
+              this.open = false;
+              this.getList();
+            });
+          }
+        }
+      });
+    },
+    /** 删除按钮操作 */
+    handleDelete(row) {
+      const itemIds = row.itemId || this.ids;
+      this.$confirm('是否确认删除订单详情编号为"' + itemIds + '"的数据项?', "警告", {
+          confirmButtonText: "确定",
+          cancelButtonText: "取消",
+          type: "warning"
+        }).then(function() {
+          return delLiveOrderItem(itemIds);
+        }).then(() => {
+          this.getList();
+          this.msgSuccess("删除成功");
+        }).catch(() => {});
+    },
+    /** 导出按钮操作 */
+    handleExport() {
+      const queryParams = this.queryParams;
+      this.$confirm('是否确认导出所有订单详情数据项?', "警告", {
+          confirmButtonText: "确定",
+          cancelButtonText: "取消",
+          type: "warning"
+        }).then(() => {
+          this.exportLoading = true;
+          return exportLiveOrderItem(queryParams);
+        }).then(response => {
+          this.download(response.msg);
+          this.exportLoading = false;
+        }).catch(() => {});
+    }
+  }
+};
+</script>

+ 328 - 0
src/views/live/liveOrderLogs/index.vue

@@ -0,0 +1,328 @@
+<template>
+  <div class="app-container">
+    <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px">
+      <el-form-item label="操作类型" prop="changeType">
+        <el-select v-model="queryParams.changeType" placeholder="请选择操作类型" clearable size="small">
+          <el-option label="请选择字典生成" value="" />
+        </el-select>
+      </el-form-item>
+      <el-form-item label="操作备注" prop="changeMessage">
+        <el-input
+          v-model="queryParams.changeMessage"
+          placeholder="请输入操作备注"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="操作时间" prop="changeTime">
+        <el-date-picker clearable size="small"
+          v-model="queryParams.changeTime"
+          type="date"
+          value-format="yyyy-MM-dd"
+          placeholder="选择操作时间">
+        </el-date-picker>
+      </el-form-item>
+      <el-form-item label="操作员" prop="operator">
+        <el-input
+          v-model="queryParams.operator"
+          placeholder="请输入操作员"
+          clearable
+          size="small"
+          @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 icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
+      </el-form-item>
+    </el-form>
+
+    <el-row :gutter="10" class="mb8">
+      <el-col :span="1.5">
+        <el-button
+          type="primary"
+          plain
+          icon="el-icon-plus"
+          size="mini"
+          @click="handleAdd"
+          v-hasPermi="['live:liveOrderLogs:add']"
+        >新增</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="success"
+          plain
+          icon="el-icon-edit"
+          size="mini"
+          :disabled="single"
+          @click="handleUpdate"
+          v-hasPermi="['live:liveOrderLogs:edit']"
+        >修改</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="danger"
+          plain
+          icon="el-icon-delete"
+          size="mini"
+          :disabled="multiple"
+          @click="handleDelete"
+          v-hasPermi="['live:liveOrderLogs:remove']"
+        >删除</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="warning"
+          plain
+          icon="el-icon-download"
+          size="mini"
+          :loading="exportLoading"
+          @click="handleExport"
+          v-hasPermi="['live:liveOrderLogs:export']"
+        >导出</el-button>
+      </el-col>
+      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+    </el-row>
+
+    <el-table border v-loading="loading" :data="liveOrderLogsList" @selection-change="handleSelectionChange">
+      <el-table-column type="selection" width="55" align="center" />
+      <el-table-column label="操作员" align="center" prop="logsId" />
+      <el-table-column label="订单id" align="center" prop="orderId" />
+      <el-table-column label="操作类型" align="center" prop="changeType" />
+      <el-table-column label="操作备注" align="center" prop="changeMessage" />
+      <el-table-column label="操作时间" align="center" prop="changeTime" width="180">
+        <template slot-scope="scope">
+          <span>{{ parseTime(scope.row.changeTime, '{y}-{m}-{d}') }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="操作员" align="center" prop="operator" />
+      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
+        <template slot-scope="scope">
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-edit"
+            @click="handleUpdate(scope.row)"
+            v-hasPermi="['live:liveOrderLogs:edit']"
+          >修改</el-button>
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-delete"
+            @click="handleDelete(scope.row)"
+            v-hasPermi="['live:liveOrderLogs:remove']"
+          >删除</el-button>
+        </template>
+      </el-table-column>
+    </el-table>
+
+    <pagination
+      v-show="total>0"
+      :total="total"
+      :page.sync="queryParams.pageNum"
+      :limit.sync="queryParams.pageSize"
+      @pagination="getList"
+    />
+
+    <!-- 添加或修改订单操作记录对话框 -->
+    <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
+      <el-form ref="form" :model="form" :rules="rules" label-width="80px">
+        <el-form-item label="操作类型" prop="changeType">
+          <el-select v-model="form.changeType" placeholder="请选择操作类型">
+            <el-option label="请选择字典生成" value="" />
+          </el-select>
+        </el-form-item>
+        <el-form-item label="操作备注" prop="changeMessage">
+          <el-input v-model="form.changeMessage" placeholder="请输入操作备注" />
+        </el-form-item>
+        <el-form-item label="操作时间" prop="changeTime">
+          <el-date-picker clearable size="small"
+            v-model="form.changeTime"
+            type="date"
+            value-format="yyyy-MM-dd"
+            placeholder="选择操作时间">
+          </el-date-picker>
+        </el-form-item>
+        <el-form-item label="操作员" prop="operator">
+          <el-input v-model="form.operator" placeholder="请输入操作员" />
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="submitForm">确 定</el-button>
+        <el-button @click="cancel">取 消</el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import { listLiveOrderLogs, getLiveOrderLogs, delLiveOrderLogs, addLiveOrderLogs, updateLiveOrderLogs, exportLiveOrderLogs } from "@/api/live/liveOrderLogs";
+
+export default {
+  name: "LiveOrderLogs",
+  data() {
+    return {
+      // 遮罩层
+      loading: true,
+      // 导出遮罩层
+      exportLoading: false,
+      // 选中数组
+      ids: [],
+      // 非单个禁用
+      single: true,
+      // 非多个禁用
+      multiple: true,
+      // 显示搜索条件
+      showSearch: true,
+      // 总条数
+      total: 0,
+      // 订单操作记录表格数据
+      liveOrderLogsList: [],
+      // 弹出层标题
+      title: "",
+      // 是否显示弹出层
+      open: false,
+      // 查询参数
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        orderId: null,
+        changeType: null,
+        changeMessage: null,
+        changeTime: null,
+        operator: null
+      },
+      // 表单参数
+      form: {},
+      // 表单校验
+      rules: {
+        orderId: [
+          { required: true, message: "订单id不能为空", trigger: "blur" }
+        ],
+        changeType: [
+          { required: true, message: "操作类型不能为空", trigger: "change" }
+        ],
+        changeMessage: [
+          { required: true, message: "操作备注不能为空", trigger: "blur" }
+        ],
+        changeTime: [
+          { required: true, message: "操作时间不能为空", trigger: "blur" }
+        ],
+      }
+    };
+  },
+  created() {
+    this.getList();
+  },
+  methods: {
+    /** 查询订单操作记录列表 */
+    getList() {
+      this.loading = true;
+      listLiveOrderLogs(this.queryParams).then(response => {
+        this.liveOrderLogsList = response.rows;
+        this.total = response.total;
+        this.loading = false;
+      });
+    },
+    // 取消按钮
+    cancel() {
+      this.open = false;
+      this.reset();
+    },
+    // 表单重置
+    reset() {
+      this.form = {
+        logsId: null,
+        orderId: null,
+        changeType: null,
+        changeMessage: null,
+        changeTime: null,
+        operator: null
+      };
+      this.resetForm("form");
+    },
+    /** 搜索按钮操作 */
+    handleQuery() {
+      this.queryParams.pageNum = 1;
+      this.getList();
+    },
+    /** 重置按钮操作 */
+    resetQuery() {
+      this.resetForm("queryForm");
+      this.handleQuery();
+    },
+    // 多选框选中数据
+    handleSelectionChange(selection) {
+      this.ids = selection.map(item => item.logsId)
+      this.single = selection.length!==1
+      this.multiple = !selection.length
+    },
+    /** 新增按钮操作 */
+    handleAdd() {
+      this.reset();
+      this.open = true;
+      this.title = "添加订单操作记录";
+    },
+    /** 修改按钮操作 */
+    handleUpdate(row) {
+      this.reset();
+      const logsId = row.logsId || this.ids
+      getLiveOrderLogs(logsId).then(response => {
+        this.form = response.data;
+        this.open = true;
+        this.title = "修改订单操作记录";
+      });
+    },
+    /** 提交按钮 */
+    submitForm() {
+      this.$refs["form"].validate(valid => {
+        if (valid) {
+          if (this.form.logsId != null) {
+            updateLiveOrderLogs(this.form).then(response => {
+              this.msgSuccess("修改成功");
+              this.open = false;
+              this.getList();
+            });
+          } else {
+            addLiveOrderLogs(this.form).then(response => {
+              this.msgSuccess("新增成功");
+              this.open = false;
+              this.getList();
+            });
+          }
+        }
+      });
+    },
+    /** 删除按钮操作 */
+    handleDelete(row) {
+      const logsIds = row.logsId || this.ids;
+      this.$confirm('是否确认删除订单操作记录编号为"' + logsIds + '"的数据项?', "警告", {
+          confirmButtonText: "确定",
+          cancelButtonText: "取消",
+          type: "warning"
+        }).then(function() {
+          return delLiveOrderLogs(logsIds);
+        }).then(() => {
+          this.getList();
+          this.msgSuccess("删除成功");
+        }).catch(() => {});
+    },
+    /** 导出按钮操作 */
+    handleExport() {
+      const queryParams = this.queryParams;
+      this.$confirm('是否确认导出所有订单操作记录数据项?', "警告", {
+          confirmButtonText: "确定",
+          cancelButtonText: "取消",
+          type: "warning"
+        }).then(() => {
+          this.exportLoading = true;
+          return exportLiveOrderLogs(queryParams);
+        }).then(response => {
+          this.download(response.msg);
+          this.exportLoading = false;
+        }).catch(() => {});
+    }
+  }
+};
+</script>

+ 313 - 0
src/views/live/liveOrderStatus/index.vue

@@ -0,0 +1,313 @@
+<template>
+  <div class="app-container">
+    <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px">
+      <el-form-item label="操作类型" prop="changeType">
+        <el-select v-model="queryParams.changeType" placeholder="请选择操作类型" clearable size="small">
+          <el-option label="请选择字典生成" value="" />
+        </el-select>
+      </el-form-item>
+      <el-form-item label="操作备注" prop="changeMessage">
+        <el-input
+          v-model="queryParams.changeMessage"
+          placeholder="请输入操作备注"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="操作时间" prop="changeTime">
+        <el-date-picker clearable size="small"
+          v-model="queryParams.changeTime"
+          type="date"
+          value-format="yyyy-MM-dd"
+          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 icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
+      </el-form-item>
+    </el-form>
+
+    <el-row :gutter="10" class="mb8">
+      <el-col :span="1.5">
+        <el-button
+          type="primary"
+          plain
+          icon="el-icon-plus"
+          size="mini"
+          @click="handleAdd"
+          v-hasPermi="['live:liveOrderStatus:add']"
+        >新增</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="success"
+          plain
+          icon="el-icon-edit"
+          size="mini"
+          :disabled="single"
+          @click="handleUpdate"
+          v-hasPermi="['live:liveOrderStatus:edit']"
+        >修改</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="danger"
+          plain
+          icon="el-icon-delete"
+          size="mini"
+          :disabled="multiple"
+          @click="handleDelete"
+          v-hasPermi="['live:liveOrderStatus:remove']"
+        >删除</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="warning"
+          plain
+          icon="el-icon-download"
+          size="mini"
+          :loading="exportLoading"
+          @click="handleExport"
+          v-hasPermi="['live:liveOrderStatus:export']"
+        >导出</el-button>
+      </el-col>
+      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+    </el-row>
+
+    <el-table border v-loading="loading" :data="liveOrderStatusList" @selection-change="handleSelectionChange">
+      <el-table-column type="selection" width="55" align="center" />
+      <el-table-column label="操作时间" align="center" prop="id" />
+      <el-table-column label="订单id" align="center" prop="orderId" />
+      <el-table-column label="操作类型" align="center" prop="changeType" />
+      <el-table-column label="操作备注" align="center" prop="changeMessage" />
+      <el-table-column label="操作时间" align="center" prop="changeTime" width="180">
+        <template slot-scope="scope">
+          <span>{{ parseTime(scope.row.changeTime, '{y}-{m}-{d}') }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
+        <template slot-scope="scope">
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-edit"
+            @click="handleUpdate(scope.row)"
+            v-hasPermi="['live:liveOrderStatus:edit']"
+          >修改</el-button>
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-delete"
+            @click="handleDelete(scope.row)"
+            v-hasPermi="['live:liveOrderStatus:remove']"
+          >删除</el-button>
+        </template>
+      </el-table-column>
+    </el-table>
+
+    <pagination
+      v-show="total>0"
+      :total="total"
+      :page.sync="queryParams.pageNum"
+      :limit.sync="queryParams.pageSize"
+      @pagination="getList"
+    />
+
+    <!-- 添加或修改订单操作记录对话框 -->
+    <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
+      <el-form ref="form" :model="form" :rules="rules" label-width="80px">
+        <el-form-item label="操作类型" prop="changeType">
+          <el-select v-model="form.changeType" placeholder="请选择操作类型">
+            <el-option label="请选择字典生成" value="" />
+          </el-select>
+        </el-form-item>
+        <el-form-item label="操作备注" prop="changeMessage">
+          <el-input v-model="form.changeMessage" placeholder="请输入操作备注" />
+        </el-form-item>
+        <el-form-item label="操作时间" prop="changeTime">
+          <el-date-picker clearable size="small"
+            v-model="form.changeTime"
+            type="date"
+            value-format="yyyy-MM-dd"
+            placeholder="选择操作时间">
+          </el-date-picker>
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="submitForm">确 定</el-button>
+        <el-button @click="cancel">取 消</el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import { listLiveOrderStatus, getLiveOrderStatus, delLiveOrderStatus, addLiveOrderStatus, updateLiveOrderStatus, exportLiveOrderStatus } from "@/api/live/liveOrderStatus";
+
+export default {
+  name: "LiveOrderStatus",
+  data() {
+    return {
+      // 遮罩层
+      loading: true,
+      // 导出遮罩层
+      exportLoading: false,
+      // 选中数组
+      ids: [],
+      // 非单个禁用
+      single: true,
+      // 非多个禁用
+      multiple: true,
+      // 显示搜索条件
+      showSearch: true,
+      // 总条数
+      total: 0,
+      // 订单操作记录表格数据
+      liveOrderStatusList: [],
+      // 弹出层标题
+      title: "",
+      // 是否显示弹出层
+      open: false,
+      // 查询参数
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        orderId: null,
+        changeType: null,
+        changeMessage: null,
+        changeTime: null
+      },
+      // 表单参数
+      form: {},
+      // 表单校验
+      rules: {
+        orderId: [
+          { required: true, message: "订单id不能为空", trigger: "blur" }
+        ],
+        changeType: [
+          { required: true, message: "操作类型不能为空", trigger: "change" }
+        ],
+        changeMessage: [
+          { required: true, message: "操作备注不能为空", trigger: "blur" }
+        ],
+        changeTime: [
+          { required: true, message: "操作时间不能为空", trigger: "blur" }
+        ]
+      }
+    };
+  },
+  created() {
+    this.getList();
+  },
+  methods: {
+    /** 查询订单操作记录列表 */
+    getList() {
+      this.loading = true;
+      listLiveOrderStatus(this.queryParams).then(response => {
+        this.liveOrderStatusList = response.rows;
+        this.total = response.total;
+        this.loading = false;
+      });
+    },
+    // 取消按钮
+    cancel() {
+      this.open = false;
+      this.reset();
+    },
+    // 表单重置
+    reset() {
+      this.form = {
+        id: null,
+        orderId: null,
+        changeType: null,
+        changeMessage: null,
+        changeTime: null
+      };
+      this.resetForm("form");
+    },
+    /** 搜索按钮操作 */
+    handleQuery() {
+      this.queryParams.pageNum = 1;
+      this.getList();
+    },
+    /** 重置按钮操作 */
+    resetQuery() {
+      this.resetForm("queryForm");
+      this.handleQuery();
+    },
+    // 多选框选中数据
+    handleSelectionChange(selection) {
+      this.ids = selection.map(item => item.id)
+      this.single = selection.length!==1
+      this.multiple = !selection.length
+    },
+    /** 新增按钮操作 */
+    handleAdd() {
+      this.reset();
+      this.open = true;
+      this.title = "添加订单操作记录";
+    },
+    /** 修改按钮操作 */
+    handleUpdate(row) {
+      this.reset();
+      const id = row.id || this.ids
+      getLiveOrderStatus(id).then(response => {
+        this.form = response.data;
+        this.open = true;
+        this.title = "修改订单操作记录";
+      });
+    },
+    /** 提交按钮 */
+    submitForm() {
+      this.$refs["form"].validate(valid => {
+        if (valid) {
+          if (this.form.id != null) {
+            updateLiveOrderStatus(this.form).then(response => {
+              this.msgSuccess("修改成功");
+              this.open = false;
+              this.getList();
+            });
+          } else {
+            addLiveOrderStatus(this.form).then(response => {
+              this.msgSuccess("新增成功");
+              this.open = false;
+              this.getList();
+            });
+          }
+        }
+      });
+    },
+    /** 删除按钮操作 */
+    handleDelete(row) {
+      const ids = row.id || this.ids;
+      this.$confirm('是否确认删除订单操作记录编号为"' + ids + '"的数据项?', "警告", {
+          confirmButtonText: "确定",
+          cancelButtonText: "取消",
+          type: "warning"
+        }).then(function() {
+          return delLiveOrderStatus(ids);
+        }).then(() => {
+          this.getList();
+          this.msgSuccess("删除成功");
+        }).catch(() => {});
+    },
+    /** 导出按钮操作 */
+    handleExport() {
+      const queryParams = this.queryParams;
+      this.$confirm('是否确认导出所有订单操作记录数据项?', "警告", {
+          confirmButtonText: "确定",
+          cancelButtonText: "取消",
+          type: "warning"
+        }).then(() => {
+          this.exportLoading = true;
+          return exportLiveOrderStatus(queryParams);
+        }).then(response => {
+          this.download(response.msg);
+          this.exportLoading = false;
+        }).catch(() => {});
+    }
+  }
+};
+</script>