Quellcode durchsuchen

add:新增发票接口对接-暂存

Tang vor 3 Jahren
Ursprung
Commit
690b5e046e

+ 3 - 0
src/api/api.js

@@ -90,6 +90,8 @@ import advList from '../newApi/advList'//广告位发布储存管理
 import answer from '../newApi/answer'//答疑管理
 import rolesBusin from '../newApi/rolesBusin'//角色和业务层次关联
 import reviewer from '../newApi/reviewer'//角色和业务层次关联
+import invoice from '../newApi/invoice'//角色和业务层次关联
+
 
 
 
@@ -161,6 +163,7 @@ export default {
     ...answer,
     ...rolesBusin,
     ...reviewer,
+    ...invoice,
 
     // ...login,
     // ...profession,

+ 14 - 9
src/components/tableList.vue

@@ -238,7 +238,7 @@
           <span
             v-else-if="item.scope === 'aboutClassNum'"
             style="color: blue; cursor: pointer"
-            @click="openClassNumDio(scope.row['goodsId'],scope.row[item.prop])"
+            @click="openClassNumDio(scope.row['goodsId'], scope.row[item.prop])"
           >
             {{ scope.row[item.prop] }}
           </span>
@@ -1277,6 +1277,15 @@
               >
             </template>
           </div>
+          <ul v-else-if="item.scope === 'orderSnList'">
+            <li v-for="(item, index) in scope.row[item.prop]" :key="index">
+              {{ item.goodsName + " - " + item.orderSn
+              }}
+            </li>
+          </ul>
+          <div v-else-if="item.scope === 'priceRed'" style="color: red">
+            ¥{{ scope.row[item.prop] ? scope.row[item.prop] : 0 }}
+          </div>
           <span v-else
             >{{ scope.row[item.prop] }}
             {{
@@ -1323,11 +1332,7 @@
         v-if="navText.gfUserStatus"
       >
         <template slot-scope="scope">
-          {{
-            scope.row.learnStatus === 1
-              ? "是"
-              : "否"
-          }}
+          {{ scope.row.learnStatus === 1 ? "是" : "否" }}
         </template>
       </el-table-column>
       <el-table-column
@@ -1743,9 +1748,9 @@ export default {
      * @remards 关联班级数量触发事件
      */
     openClassNumDio(id, num) {
-      if(!num){
-        this.$message.warning("暂无关联班级")
-        return
+      if (!num) {
+        this.$message.warning("暂无关联班级");
+        return;
       }
       this.$emit("openClassNum", id);
     },

+ 227 - 0
src/components/videoPreview/index.vue

@@ -0,0 +1,227 @@
+<template>
+  <div id="videoPreview">
+    <el-dialog
+      :visible.sync="diavos"
+      width="840px"
+      @opened="isOkBf"
+      @close="clears"
+      :show-close="false"
+      :close-on-click-modal="false"
+    >
+      <div slot="title" class="hearders">
+        <div class="leftTitle">视频预览</div>
+        <div class="rightBoxs">
+          <img src="@/assets/images/Close@2x.png" alt="" @click="clears" />
+        </div>
+      </div>
+      <div>
+        <div id="player"></div>
+        <div id="playerzb"></div>
+      </div>
+      <span slot="footer" class="dialog-footer">
+        <el-button @click="clears">取 消</el-button>
+      </span>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+export default {
+  data() {
+    return {
+      vodPlayerJs: "https://player.polyv.net/script/player.js",
+      vid: "",
+      vidzb: "",
+      playerJs:
+        "https://player.polyv.net/resp/live-h5-player/latest/liveplayer.min.js",
+      uidzb: "egsxlptzdq",
+      fileSetting: {
+        desc: "i am desc", // 描述
+        cataid: "1639399775001", // 分类ID 可以后端传递 也可以不写 或写死
+        tag: "i am tag", // 标签
+        luping: 0, // 是否开启视频课件优化处理,对于上传录屏类视频清晰度有所优化:0为不开启,1为开启
+        keepsource: 1, // 是否源文件播放(不对视频进行编码):0为编码,1为不编码
+      },
+      diavos: false,
+      listData: {}, //数据
+    };
+  },
+  methods: {
+    diavosFun(item) {
+      if (item.sectionType === 1) {
+        this.vid = item.recordingUrl;
+      }
+      if (item.sectionType === 2) {
+        this.vidzb = item.liveUrl;
+      }
+      this.listData = item;
+      this.diavos = true;
+    },
+    isOkBf() {
+      if (this.listData.sectionType === 1) {
+        this.loadPlayerScript(this.loadPlayer);
+      }
+      if (this.listData.sectionType === 2) {
+        this.loadPlayerScriptzb(this.loadPlayerzb);
+      }
+    },
+    loadPlayerScript(callback) {
+      if (!window.polyvPlayer) {
+        const myScript = document.createElement("script");
+        myScript.setAttribute("src", this.vodPlayerJs);
+        myScript.onload = callback;
+        document.body.appendChild(myScript);
+      } else {
+        callback();
+        this.player.on("serverError", (...params) => {
+          this.$message.error(returnTitle(params[1]));
+          console.log(params);
+        });
+      }
+    },
+    loadPlayer() {
+      var self = this;
+      const polyvPlayer = window.polyvPlayer;
+      self.player = polyvPlayer({
+        wrap: "#player",
+        width: 800,
+        height: 533,
+        vid: self.vid,
+        teaser_show: 0,
+        playsafe: function (vid, next) {
+          self.$api.obtainpolyvvideosign(vid).then((res) => {
+            next(res.data);
+          });
+        },
+      });
+    },
+    /**
+     * @param {String} 关闭视频窗口-销毁实例
+     */
+    clears() {
+      this.diavos = false;
+      if (this.listData.sectionType === 1 && this.player) {
+        this.player.destroy();
+      }
+      if (this.listData.sectionType === 2 && this.playerzb) {
+        this.playerzb.destroy();
+      }
+      this.listData = {};
+    },
+    loadPlayerScriptzb(callback) {
+      if (!window.polyvLivePlayer) {
+        const myScript = document.createElement("script");
+        myScript.setAttribute("src", this.playerJs);
+        myScript.onload = callback;
+        document.body.appendChild(myScript);
+      } else {
+        callback();
+      }
+    },
+
+    loadPlayerzb() {
+      var self = this;
+      const polyvLivePlayer = window.polyvLivePlayer;
+      self.playerzb = polyvLivePlayer({
+        wrap: "#playerzb",
+        width: 800,
+        height: 533,
+        uid: self.uidzb,
+        vid: self.vidzb,
+      });
+    },
+  },
+};
+</script>
+
+<style lang="less" scoped>
+/deep/.el-button {
+  border-radius: 8px;
+}
+/deep/.el-dialog {
+  border-radius: 8px;
+  .el-dialog__header {
+    padding: 0;
+    .hearders {
+      height: 40px;
+      display: flex;
+      align-items: center;
+      justify-content: space-between;
+      padding: 0px 18px 0px 20px;
+      border-bottom: 1px solid #e2e2e2;
+      .leftTitle {
+        font-size: 14px;
+        font-weight: bold;
+        color: #2f4378;
+      }
+      .rightBoxs {
+        display: flex;
+        align-items: center;
+        img {
+          width: 14px;
+          height: 14px;
+          margin-left: 13px;
+          cursor: pointer;
+        }
+      }
+    }
+  }
+  .el-dialog__footer {
+    padding: 0;
+    .dialog-footer {
+      padding: 0px 40px;
+      height: 70px;
+      border-top: 1px solid #e2e2e2;
+      display: flex;
+      align-items: center;
+      justify-content: flex-end;
+    }
+  }
+}
+.imgBox {
+  width: 100%;
+  // height: 210px;
+  border: 1px solid #e2e2e2;
+  border-radius: 8px;
+  padding: 8px 8px 3px;
+  display: flex;
+  flex-direction: column;
+  align-items: center;
+  .imgLabel {
+    flex: 1;
+    width: 100%;
+    border: 1px dotted #e2e2e2;
+    color: #999;
+    font-size: 14px;
+    cursor: pointer;
+    border-radius: 8px;
+    .msPhoto {
+      display: flex;
+      justify-content: center;
+      align-items: center;
+      max-width: 100%;
+      max-height: 270px;
+      img {
+        max-width: 100%;
+        max-height: 270px;
+      }
+    }
+    .imgbbx {
+      display: flex;
+      flex-direction: column;
+      align-items: center;
+      justify-content: center;
+      width: 100%;
+      height: 100%;
+      i {
+        font-weight: bold;
+        margin: 14px 0;
+        font-size: 24px;
+      }
+    }
+  }
+  p {
+    margin: 5px 0px;
+  }
+}
+</style>

+ 8 - 0
src/newApi/classTab.js

@@ -80,6 +80,14 @@ export default {
             params: data
         })
     },
+    //查询学员学时列表s
+    inquireGradegradelistUserPeriods(data) {
+        return request({
+            url: '/grade/grade/listUserPeriod',
+            method: 'get',
+            params: data
+        })
+    },
     //获取班级详细信息
     obtainGradegrade(data) {
         return request({

+ 34 - 0
src/newApi/invoice.js

@@ -0,0 +1,34 @@
+import request from '@/utils/request' //引入axios请求及拦截器
+export default {
+    //新增订单发票
+    addorderInvoice(data) {
+        return request({
+            url: '/order/invoice',
+            method: 'post',
+            data
+        })
+    },
+    //修改订单发票
+    editorderInvoice(data) {
+        return request({
+            url: '/order/invoice/edit',
+            method: 'post',
+            data
+        })
+    },
+    //查询订单发票列表
+    inquireorderInvoiceList(data) {
+        return request({
+            url: '/order/invoice/list',
+            method: 'get',
+            params: data
+        })
+    },
+    //获取订单发票详细信息
+    obtainorderInvoice(data) {
+        return request({
+            url: `/order/invoice/` + data,
+            method: 'get',
+        })
+    },
+}

+ 137 - 74
src/views/Marketing/order/bill/index.vue

@@ -313,7 +313,7 @@ export default {
       //搜索
       formList: [
         {
-          prop: "goodsStatus",
+          prop: "type",
           placeholder: "发票类型",
           scope: "select",
           options: [
@@ -323,12 +323,12 @@ export default {
             },
             {
               label: "增值税发票",
-              value: 0,
+              value: 2,
             },
           ],
         },
         {
-          prop: "goodsStatus",
+          prop: "periodStatus",
           placeholder: "审核状态",
           scope: "select",
           options: [
@@ -338,7 +338,7 @@ export default {
             },
             {
               label: "驳回",
-              value: 0,
+              value: 2,
             },
             {
               label: "通过",
@@ -347,30 +347,26 @@ export default {
           ],
         },
         {
-          prop: "goodsStatus",
+          prop: "invoiceStatus",
           placeholder: "发票状态",
           scope: "select",
           options: [
             {
               label: "未开票",
-              value: 0,
-            },
-            {
-              label: "已开票",
               value: 1,
             },
             {
-              label: "无效票",
+              label: "已开票",
               value: 2,
             },
             {
               label: "已退票",
-              value: 3,
+              value: -1,
             },
           ],
         },
         {
-          prop: "goodsStatus",
+          prop: "subject",
           placeholder: "申请主体",
           scope: "select",
           options: [
@@ -380,7 +376,7 @@ export default {
             },
             {
               label: "企业",
-              value: 0,
+              value: 2,
             },
           ],
         },
@@ -392,7 +388,7 @@ export default {
           scope: "moreDataPicker",
         },
         {
-          prop: "goodsName",
+          prop: "invoiceCode",
           placeholder: "请输入发票代码/发票号码",
         },
       ],
@@ -404,78 +400,154 @@ export default {
       tableSet: [
         {
           label: "发票类型",
-          prop: "code",
+          prop: "type",
           hidden: true,
+          scope: "isOptions",
+          options: [
+            {
+              label: "普通发票",
+              value: 1,
+            },
+            {
+              label: "增值税专用发票",
+              value: 2,
+            },
+          ],
         },
         {
           label: "审核状态",
-          prop: "categoryName",
+          prop: "periodStatus",
           hidden: true,
+          scope: "isOptions",
+          options: [
+            {
+              label: "待审核",
+              value: 1,
+            },
+            {
+              label: "驳回",
+              value: 2,
+            },
+            {
+              label: "通过",
+              value: 3,
+            },
+          ],
         },
         {
           label: "发票状态",
-          prop: "schoolName",
+          prop: "invoiceStatus",
           hidden: true,
+          scope: "isOptions",
+          options: [
+            {
+              label: "未开票",
+              value: 1,
+            },
+            {
+              label: "已开票",
+              value: 2,
+            },
+            {
+              label: "已退票",
+              value: -1,
+            },
+          ],
         },
         {
           label: "发票代码/发票号码",
-          prop: "educationName",
-          hidden: true,
-        },
-        {
-          label: "学员信息",
-          prop: "classHours",
+          prop: "invoiceCode",
           hidden: true,
         },
+        // {
+        //   label: "学员信息",
+        //   prop: "classHours",
+        //   hidden: true,
+        // },
         {
           label: "申请主体",
-          prop: "educationName",
+          prop: "subject",
           hidden: true,
+          scope: "isOptions",
+          options: [
+            {
+              label: "个人",
+              value: 1,
+            },
+            {
+              label: "企业",
+              value: 2,
+            },
+          ],
         },
         {
           label: "发票抬头",
-          prop: "classHours",
+          prop: "invoiceTitle",
           hidden: true,
         },
         {
           label: "纳税登记号",
-          prop: "classHours",
+          prop: "taxRegistryNumber",
           hidden: true,
         },
         {
           label: "订单信息",
-          prop: "classHours",
+          prop: "orderList",
           hidden: true,
+          scope: "orderSnList",
         },
         {
           label: "开票金额(人民币)",
-          prop: "classHours",
+          prop: "amount",
           hidden: true,
+          scope: "priceRed",
         },
         {
           label: "是否上传发票",
-          prop: "classHours",
+          prop: "uploadInvoice",
           hidden: true,
+          scope: "isOptions",
+          options: [
+            {
+              label: "否",
+              value: 0,
+            },
+            {
+              label: "是",
+              value: 1,
+            },
+          ],
         },
         {
           label: "是否邮寄发票(快递号)",
-          prop: "classHours",
+          prop: "sendInvoice",
           hidden: true,
+          scope: "isOptions",
+          options: [
+            {
+              label: "否",
+              value: 0,
+            },
+            {
+              label: "是",
+              value: 1,
+            },
+          ],
         },
         {
           label: "申请时间",
-          prop: "createTime",
+          prop: "applyTime",
           hidden: true,
           scope: "aTimeList",
         },
         {
           label: "开票时间",
-          prop: "createTime",
+          prop: "makeOutTime",
           hidden: true,
           scope: "aTimeList",
         },
       ],
-      tableData: [{}], //表单数据
+      tableData: [], //表单数据
       total: 0, //一共多少条
       detailsStatus: false, //详情窗口
       auditStatus: false, //审核窗口
@@ -581,53 +653,44 @@ export default {
       if (this.formData.validityEndTime) {
         data.validityEndTime = data.validityEndTime / 1000;
       }
-      console.log(data);
-      //   this.$api
-      //     .inquireGoods(data)
-      //     .then((res) => {
-      //       this.tableData = res.rows;
-      //       this.total = res.total;
-      //       this.navText.index = res.total;
-      //     })
-      //     .finally(() => {
-      //       this.loading = false;
-      //     });
+      this.$api
+        .inquireorderInvoiceList(data)
+        .then((res) => {
+          this.tableData = res.rows;
+          this.total = res.total;
+          this.navText.index = res.total;
+        })
+        .finally(() => {
+          this.loading = false;
+        });
     },
     init() {
       this.search(2);
     },
     del(v) {
-      return;
-      this.$api.gradecheckGoodsChange({ goodsId: v.goodsId }).then((res) => {
-        if (res.data > 0) {
-          this.$message.error("已有学员正在学习该商品,无法删除");
-          return;
-        } else {
-          this.$alert(
-            "确定删除此内容?<br />内容删除后将无法恢复,请慎重考虑",
-            "提示",
-            {
-              dangerouslyUseHTMLString: true,
-            }
-          )
-            .then(() => {
-              var data = {
-                goodsId: v.goodsId,
-                status: -1,
-              };
-              this.$api.editGoods(data).then((res) => {
-                this.$message.success("删除成功");
-                this.search();
-              });
-            })
-            .catch(() => {
-              this.$message({
-                type: "info",
-                message: "已取消删除",
-              });
-            });
+      this.$alert(
+        "确定删除此内容?<br />内容删除后将无法恢复,请慎重考虑",
+        "提示",
+        {
+          dangerouslyUseHTMLString: true,
         }
-      });
+      )
+        .then(() => {
+          var data = {
+            invoiceId: v.invoiceId,
+            status: -1,
+          };
+          this.$api.editorderInvoice(data).then((res) => {
+            this.$message.success("删除成功");
+            this.search();
+          });
+        })
+        .catch(() => {
+          this.$message({
+            type: "info",
+            message: "已取消删除",
+          });
+        });
     },
     /**
      *

+ 1 - 1
src/views/education/classManageMent/classHours/index.vue

@@ -524,7 +524,7 @@ export default {
         }
       }
       this.$api
-        .inquireGradegradelistUserPeriod(this.formData)
+        .inquireGradegradelistUserPeriods(this.formData)
         .then((res) => {
           this.tableData = res.rows;
           this.total = res.total;

+ 1 - 1
src/views/education/classManageMent/listOfhoursToBeReviewed/index.vue

@@ -286,7 +286,7 @@ export default {
         data.classEndTime = data.classEndTime / 1000;
       }
       this.$api
-        .inquireGradegradelistUserPeriod(data)
+        .inquireGradegradelistUserPeriods(data)
         .then((res) => {
           this.tableData = res.rows;
           this.total = res.total;

+ 9 - 1
src/views/resource/videoManagement/chapter/add/index.vue

@@ -278,6 +278,9 @@
             width="100px"
           >
             <template slot-scope="scope">
+              <el-button type="text" @click="seeTheVideo(scope.row)"
+                >预览</el-button
+              >
               <el-button type="text" @click="delList(scope.row)"
                 >删除</el-button
               >
@@ -475,6 +478,7 @@
         <el-button @click="dialogERROR = false">确定</el-button>
       </span>
     </el-dialog>
+    <video-preview ref="preview" />
   </div>
 </template>
 
@@ -482,8 +486,9 @@
 import * as baseUrls from "@/utils/request.js";
 import searchBoxNew from "@/components/searchBoxNew";
 import pagination from "@/components/pagination";
+import videoPreview from "@/components/videoPreview";
 export default {
-  components: { searchBoxNew, pagination },
+  components: { searchBoxNew, pagination, videoPreview },
   name: "ChapterAdd",
   data() {
     return {
@@ -611,6 +616,9 @@ export default {
     this.getDict();
   },
   methods: {
+    seeTheVideo(item) {
+      this.$refs.preview.diavosFun(item)
+    },
     getDowm() {
       let url =
         baseUrls.BASE_IMG_URL + "/oss/images/file/20220304/1646382321115.xlsx";

+ 10 - 2
src/views/resource/videoManagement/chapter/edit/index.vue

@@ -249,7 +249,10 @@
             fixed="right"
             width="100px"
           >
-            <template slot-scope="scope">
+            <template slot-scope="scope"
+              ><el-button type="text" @click="seeTheVideo(scope.row)"
+                >预览</el-button
+              >
               <el-button type="text" @click="delList(scope.row)"
                 >删除</el-button
               >
@@ -447,6 +450,7 @@
         <el-button @click="dialogERROR = false">确定</el-button>
       </span>
     </el-dialog>
+    <video-preview ref="preview" />
   </div>
 </template>
 
@@ -454,8 +458,9 @@
 import * as baseUrls from "@/utils/request.js";
 import searchBoxNew from "@/components/searchBoxNew";
 import pagination from "@/components/pagination";
+import videoPreview from "@/components/videoPreview";
 export default {
-  components: { searchBoxNew, pagination },
+  components: { searchBoxNew, pagination, videoPreview },
   name: "ChapterEdit",
   data() {
     return {
@@ -591,6 +596,9 @@ export default {
     this.search();
   },
   methods: {
+    seeTheVideo(item) {
+      this.$refs.preview.diavosFun(item);
+    },
     /**
      * 下载Excel模板
      */