natasha 3 rokov pred
rodič
commit
bd66d16cbe

+ 61 - 56
src/router/index.js

@@ -28,69 +28,74 @@ Vue.use(Router);
  * all roles can be accessed
  */
 export const constantRoutes = [{
-  path: '/404',
-  component: () =>
-    import('@/views/404'),
-  hidden: true
-},
-{
-  path: '/login',
-  component: () =>
-    import('@/views/login'),
-  hidden: true
-},
-{
-  path: '/',
-  redirect: '/EnterSys',
-  hidden: true
-},
-{
-  path: '/EnterSys',
-  component: () =>
-    import('@/views/courseList')
-},
-{
-  path: '/courseView',
-  component: () =>
-    import('@/views/courseView')
-},
-{
-  path: '/bookView',
-  component: () =>
-    import('@/views/bookView')
-},
-{
-  path: '/adultInput',
-  component: () =>
-    import('@/views/adultInput')
-},
-{
-  path: '/adultInput3',
-  component: () =>
-    import('@/views/adultInput3')
-},
-{
-  path: '/JoinLine',
-  component: () =>
-    import('@/components/common/JoinLine')
-},
-// 404 page must be placed at the end !!!
-{ path: '*', redirect: '/', hidden: true }
+        path: '/404',
+        component: () =>
+            import ('@/views/404'),
+        hidden: true
+    },
+    {
+        path: '/login',
+        component: () =>
+            import ('@/views/login'),
+        hidden: true
+    },
+    {
+        path: '/',
+        redirect: '/EnterSys',
+        hidden: true
+    },
+    {
+        path: '/EnterSys',
+        component: () =>
+            import ('@/views/courseList')
+    },
+    {
+        path: '/courseView',
+        component: () =>
+            import ('@/views/courseView')
+    },
+    {
+        path: '/bookView',
+        component: () =>
+            import ('@/views/bookView')
+    },
+    {
+        path: '/adultInput',
+        component: () =>
+            import ('@/views/adultInput')
+    },
+    {
+        path: '/adultInput3',
+        component: () =>
+            import ('@/views/adultInput3')
+    },
+    {
+        path: '/JoinLine',
+        component: () =>
+            import ('@/components/common/JoinLine')
+    },
+    {
+        path: '/discountCodeList',
+        component: () =>
+            import ('@/views/discountCodeList')
+    },
+    // 404 page must be placed at the end !!!
+    { path: '*', redirect: '/', hidden: true }
 ];
 
 const createRouter = () =>
-  new Router({
-    // mode: 'history', // require service support
-    scrollBehavior: () => ({ y: 0 }),
-    routes: constantRoutes
-  });
+    new Router({
+        // mode: 'history', // require service support
+        scrollBehavior: () => ({ y: 0 }),
+        routes: constantRoutes
+    });
 
 const router = createRouter();
 
 // Detail see: https://github.com/vuejs/vue-router/issues/1234#issuecomment-357941465
 export function resetRouter() {
-  const newRouter = createRouter();
-  router.matcher = newRouter.matcher; // reset router
+    const newRouter = createRouter();
+    router.matcher = newRouter.matcher; // reset router
 }
 
-export default router;
+export default router;

+ 1 - 1
src/views/courseList.vue

@@ -677,7 +677,7 @@ export default {
     getMyOrgList() {
       let MethodName = "org_manager-GetMyOrgList";
       let data = {
-        audited_status: -1,
+        audited_status: 1,
       };
       getContentFile(MethodName, data).then((res) => {
         if (res && res.org_list.length > 0) {

+ 2 - 2
src/views/courseView.vue

@@ -22,13 +22,13 @@
             @click="treeShow"
           />
           <!-- <h2 class="title">{{ chapterName }}</h2> -->
-          <el-switch
+          <!-- <el-switch
             v-if="!treeFlag"
             v-model="switchvalue"
             active-color="#FF9900"
             active-text
             inactive-text="生词模式"
-          />
+          /> -->
         </div>
         <Preview
           :context="context"

+ 224 - 0
src/views/discountCodeList.vue

@@ -0,0 +1,224 @@
+<template>
+    <div class="discountCodeList">
+        <Header/>
+        <div class="contentInner">
+            <div class="search-form">
+                <el-form
+                    :inline="true"
+                    ref="form"
+                    style="margin-left: 10px"
+                >
+                    <el-form-item>
+                        <el-form-item class="label-input" label="优惠码" style="margin-right:30px;">
+                            <el-input placeholder="输入生成激活码数量" v-model="discountNumber" type="number" oninput ="value=value.replace(/[^0-9]/g,'')"></el-input>
+                        </el-form-item>
+                        <el-button @click="onSubmit" size="medium" type="primary" :loading="loading">生成</el-button>
+                    </el-form-item>
+                </el-form>
+                <el-form :inline="true">
+                    <el-form-item class="label-input" label="导出选项:" style="margin-right:30px;">
+                        <el-radio v-model="exportRadio" :label="-1">全部</el-radio>
+                        <el-radio v-model="exportRadio" :label="1">已使用</el-radio>
+                        <el-radio v-model="exportRadio" :label="0">未使用</el-radio>
+                    </el-form-item>
+                    <el-button @click="onExport" size="medium" type="primary" :loading="exportLoading">导出 excel</el-button>
+                </el-form>
+            </div>
+            <div class="table-box">
+                <el-table :data="tableData" style="width: 100%" v-loading="tableloading">
+                    <el-table-column class="table-firstC" label="优惠码" prop="discount_code" width="150"></el-table-column>
+                    <el-table-column label="状态" prop="is_used" width="150" :formatter="handleStatus"></el-table-column>
+                    <el-table-column label="使用者" prop="consumer_name" width="150"></el-table-column>
+                    <el-table-column label="使用时间" prop="use_time" width="200"></el-table-column>
+                    <el-table-column label="使用者所属机构" prop="consumer_org_name" width="250"></el-table-column>
+                    <el-table-column label="创建时间" prop="create_time" width="200"></el-table-column>
+                    <el-table-column fixed="right" label="操作" prop width="100">
+                        <template slot-scope="scope">
+                            <el-button @click="handleDel(scope.row)" type="text">删除</el-button>
+                        </template>
+                    </el-table-column>
+                </el-table>
+            </div>
+
+            <el-pagination
+                :current-page="currentPage"
+                :page-size="10"
+                :page-sizes="[1, 10, 20, 30, 40, 50]"
+                :total="courseTotal"
+                @current-change="handleCurrentChange"
+                @size-change="handleSizeChange"
+                layout="total, sizes, prev, pager, next, jumper"
+            ></el-pagination>
+        </div>
+    </div>
+</template>
+<script>
+import Header from "@/components/Header";
+import { getContent, LearnWebSI } from "@/api/ajax";
+import { getToken } from '@/utils/auth'
+export default {
+    name: "courselist",
+    components: {
+        Header
+    },
+    data () {
+        return {
+            bookId: '',
+            discountNumber:null, // 生成数量
+            loading:false, 
+            tableData: [], // 数据内容
+            currentPage: 1, // 当前页码
+            page_capacity: 10, // 每页条数
+            courseTotal: 0, // 数据总条数
+            tableloading:true,
+            usedStatus:{
+                'true':'已使用',
+                'false':'未使用'
+            },
+            exportRadio:-1,
+            exportLoading:false,
+        }
+    },
+    created() {
+        const _this = this
+        _this.bookId = this.$route.query.bookId
+        this.getList();
+    },
+    methods:{
+        // 切换每页条数
+        handleSizeChange (val) {
+            this.currentPage = 1;
+            this.page_capacity = val;
+            this.getList();
+        },
+        // 切换页码
+        handleCurrentChange (val) {
+            this.currentPage = val;
+            this.getList();
+        },
+        // 生成数量
+        onSubmit () {
+            if(this.discountNumber){
+                this.loading = true;
+                let MethodName = 'order-discount_manager-BatchCreateDiscountCodeFoGoods'
+                let data = {
+                    goods_id:this.bookId,
+                    goods_type: 101,
+                    count:Number(this.discountNumber)
+                }
+                LearnWebSI(MethodName, data)
+                .then((res) => {
+                    this.$message.success("操作成功");
+                    this.discountNumber = null
+                    this.loading = false;
+                    this.pageIndex = 1
+                    this.getList()
+                })
+                .catch(() => {
+                    this.loading = false;
+                });
+            }else{
+                this.$message(
+                    {
+                        type: "warning",
+                        message: "请输入生成激活码数量!",
+                    },
+                    2000
+                );
+                return false;
+            }
+        },
+        // 查询数据列表
+        getList () {
+            let MethodName = "page_query-PageQueryBookDiscountCodeList";
+            let data = {
+                book_id: this.bookId,
+                page_capacity: this.page_capacity,
+                cur_page: this.currentPage,
+                use_status:-1
+            };
+            getContent(MethodName, data).then(
+                (res) => {
+                    let _this = this;
+                    _this.tableData = res.discount_code_list;
+                    _this.courseTotal = res.total_count;
+                    _this.tableloading = false;
+                }
+            );
+        },
+        // 处理发布状态
+        handleStatus (row) {
+            if (row) {
+                return this.usedStatus[row.is_used];
+            }
+        },
+        // 删除书籍
+        handleDel (row) {
+            this.$confirm("确定要删除此优惠码吗?", "提示", {
+                confirmButtonText: "确定",
+                cancelButtonText: "取消",
+                type: "warning",
+            })
+                .then(() => {
+                    let MethodName = "order-discount_manager-DeleteGoodsDiscountCode";
+                    let data = {
+                        id: row.id,
+                    };
+                    LearnWebSI(MethodName, data).then(
+                        (res) => {
+                            this.currentPage = 1;
+                            this.getList()
+                            this.$message({
+                                type: 'success',
+                                message: '删除成功!'
+                            })
+                        }
+                    ).catch(() => {
+                    })
+                })
+                .catch(() => { });
+        },
+        // 导出
+        onExport(){
+            this.exportLoading = true
+            let userInfor = getToken();
+            let UserCode = '',
+                UserType = '',
+                SessionID = ''
+            if (userInfor) {
+                let user = JSON.parse(getToken());
+                UserCode = user.user_code;
+                UserType = user.user_type;
+                SessionID = user.session_id;
+            }
+            let MethodName = "data_export-ExportBookDiscountCodeList"
+            let data = {
+                book_id: this.bookId,
+                use_status:this.exportRadio
+            }
+            window.open(process.env.VUE_APP_BASE_API +
+                    `/GCLSBookWebSI/ServiceInterface?MethodName=${MethodName}&UserCode=${UserCode}&UserType=${UserType}&SessionID=${SessionID}&Parameter=${encodeURIComponent(JSON.stringify(data))}`) 
+            this.exportLoading = false
+        }
+    }
+}
+</script>
+<style lang="scss" scoped>
+.discountCodeList{
+    width: 100%;
+    background: #f5f5f5;
+    .contentInner{
+        width: 100%;
+        max-width: 1200px;
+        margin: 0 auto;
+        height: auto;
+        padding:30px 0;
+    }
+    .search-form{
+        display: flex;
+        align-items: center;
+        justify-content: space-between;
+    }
+}
+
+</style>