Browse Source

Merge branch 'master' into feature/v2.4.32

lianbingjie 1 year ago
parent
commit
70ef89fe85

+ 236 - 0
src/views/docRecommend/list.vue

@@ -0,0 +1,236 @@
+<template>
+  <div class="doc-recommend-list" v-loading="loading">
+    <el-form :inline="true" :model="formInline" class="demo-form-inline">
+      <el-form-item label="文档推荐区域">
+        <el-select v-model="formInline.module" placeholder="文档推荐区域">
+          <el-option v-for="option in formOptions.moduleOptions" :key="option" :label="option" :value="option"></el-option>
+        </el-select>
+      </el-form-item>
+      <el-form-item label="分类名称" v-show="canSelectDocClass">
+        <el-select v-model="formInline.docClass" placeholder="分类名称">
+          <el-option v-for="option in formOptions.docClassOptions" :key="option" :label="option" :value="option"></el-option>
+        </el-select>
+      </el-form-item>
+      <el-form-item>
+        <el-button type="primary" @click="onSubmit">查询</el-button>
+      </el-form-item>
+    </el-form>
+
+    <h2>正在展示中的文档:</h2>
+    <el-table
+        :data="topTable"
+        tooltip-effect="dark"
+        style="width: 100%"
+        border
+    >
+      <el-table-column
+          prop="xx"
+          label=""
+          width="55">
+      </el-table-column>
+      <el-table-column label="文档名称" width="300">
+        <template slot-scope="scope">
+          <el-popover trigger="click" placement="top" width="400">
+            <p>{{ scope.row.docSummary }}</p>
+            <div slot="reference" class="name-wrapper">
+              <span>{{ scope.row.docName }}</span>
+            </div>
+          </el-popover>
+        </template>
+      </el-table-column>
+      <el-table-column
+          prop="viewTimes"
+          label="浏览量"
+          width="80">
+      </el-table-column>
+      <el-table-column
+          prop="uploadDate"
+          label="上传时间"
+          width="200">
+      </el-table-column>
+      <el-table-column
+          prop="docFileType"
+          label="文档类型"
+          width="50">
+      </el-table-column>
+      <el-table-column
+          prop="docPageSize"
+          label="页数"
+          width="80">
+      </el-table-column>
+      <el-table-column
+          prop="docId"
+          label="id"
+      >
+      </el-table-column>
+    </el-table>
+
+
+    <h2 style="margin-top: 20px">可选择的其他文档:</h2>
+
+    <el-table
+        :data="moreTable"
+        tooltip-effect="dark"
+        style="width: 100%"
+        height="500"
+        border
+        @selection-change="handleSelectionChangeOfMore">
+      <el-table-column
+          fixed
+          type="selection"
+          width="55">
+      </el-table-column>
+      <el-table-column label="文档名称" width="300">
+        <template slot="header">
+          <el-button :disabled="multipleSelectionMore.length === 0" type="primary" @click="doTranUpdate">保存</el-button>
+        </template>
+        <template slot-scope="scope">
+          <el-popover trigger="click" placement="top" width="400">
+            <p>{{ scope.row.docSummary }}</p>
+            <div slot="reference" class="name-wrapper">
+              <span>{{ scope.row.docName }}</span>
+            </div>
+          </el-popover>
+        </template>
+      </el-table-column>
+      <el-table-column
+          prop="viewTimes"
+          label="浏览量"
+          width="80">
+      </el-table-column>
+      <el-table-column
+          prop="uploadDate"
+          label="上传时间"
+          width="200">
+      </el-table-column>
+      <el-table-column
+          prop="docFileType"
+          label="文档类型"
+          width="50">
+      </el-table-column>
+
+      <el-table-column
+          prop="docPageSize"
+          label="页数"
+          width="80">
+      </el-table-column>
+      <el-table-column
+          prop="docId"
+          label="id"
+      >
+      </el-table-column>
+    </el-table>
+  </div>
+</template>
+
+<script>
+export default {
+  name: 'list',
+  data () {
+    return {
+      topTable: [],
+      moreTable: [],
+      multipleSelectionTop: [],
+      multipleSelectionMore: [],
+      formInline: {
+        module: '',
+        docClass: '',
+      },
+      formOptions: {
+        moduleOptions: [],
+        docClassOptions: []
+      },
+      loading: false
+    }
+  },
+  computed: {
+    canSelectDocClass () {
+      const skipModules = ['文库首页-会员免费文档', '文库首页-精选推荐']
+      if (skipModules.includes(this.formInline.module)) {
+        return false
+      }
+      return true
+    }
+  },
+  created() {
+    this.doGetQuery()
+  },
+  methods: {
+    doGetQuery () {
+      if (this.loading) {
+        return
+      }
+      this.loading = true
+      this.$request('/docRecommend/docScreen').success((res) => {
+        this.loading = false
+        if (res.status === 'success' && res.data) {
+          this.formOptions.docClassOptions = res.data.docClass
+          this.formOptions.moduleOptions = res.data.docRegion
+
+          this.formInline.module = this.formOptions.moduleOptions[0]
+          this.formInline.docClass = this.formOptions.docClassOptions[0]
+        }
+
+        this.onSubmit()
+      }).get()
+    },
+    doTranUpdate () {
+      if (this.loading) {
+        return
+      }
+      this.loading = true
+      const params = Object.assign({
+        docIds: this.multipleSelectionMore.map(v => v.docId).join(',')
+      }, this.getQueryParams())
+      this.$request('/docRecommend/update').data(params).success((res) => {
+        if (res.status === 'success') {
+          this.loading = false
+          this.onSubmit()
+        } else {
+          this.loading = false
+        }
+      }).error(() => {
+        this.loading = false
+      }).post()
+    },
+    doLoad (query) {
+      if (this.loading) {
+        return
+      }
+      this.loading = true
+      this.$request('/docRecommend/list').data(query).success((res) => {
+        this.loading = false
+        if (res.status === 'success' && res.data) {
+          this.topTable = res.data.list || []
+          this.moreTable = res.data.selectList || []
+        }
+      }).get()
+    },
+    getQueryParams () {
+      const result = {
+        module: this.formInline.module
+      }
+      if (this.canSelectDocClass) {
+        result.docClass = this.formInline.docClass
+      }
+      return result
+    },
+    onSubmit() {
+      this.multipleSelectionMore = []
+      this.doLoad(this.getQueryParams())
+    },
+    handleSelectionChangeOfTop(val) {
+      this.multipleSelectionTop = val
+    },
+    handleSelectionChangeOfMore(val) {
+      this.multipleSelectionMore = val
+    }
+  }
+}
+</script>
+
+<style lang="scss" scoped>
+.doc-recommend-list {
+  //
+}
+</style>

+ 4 - 1
src/views/order/components/otherOrder.vue

@@ -769,6 +769,9 @@ export default {
             }
             if (res.data.userData) {
               this.areaNums = res.data.userData
+              if (this.areaNums?.areaCount < 0) {
+                this.areaNums.areaCount = 0
+              }
               // 服务到期时间
               const l_vip_endtime = res.data.userData?.l_vip_endtime
               this.serviceEndTime = l_vip_endtime ? dateFormatter(new Date(l_vip_endtime * 1000), 'yyyy-MM-dd') : ''
@@ -1537,7 +1540,7 @@ export default {
       gouDis: true,
       phoneReg: [],
       infoData: [],
-      areaNums: [],
+      areaNums: {},
       nameInfo: [],
       echoObject: {},//订单回显
       agree_time:dateFormatter(new Date(), 'yyyy-MM-dd') + ' 00:00:00',

+ 13 - 3
src/views/order/components/otherOrderEdit.vue

@@ -493,7 +493,7 @@ export default {
     addEventListenerVip (val) {
       let areaCount = 0
       const _this = this
-      let {area, cycleCount, cycleUnit, vipStartTime, buySubject, buyCount, vipType, phone, productType} = this.others
+      let {area, cycleCount, cycleUnit, vipStartTime, buySubject, buyCount, vipType, phone, productType } = this.others
       if(Array.isArray(area)) {
         area = area.toString()
       }
@@ -809,6 +809,9 @@ export default {
             }
             if (res.data.userData) {
               this.areaNums = res.data.userData
+              if (this.areaNums?.areaCount < 0) {
+                this.areaNums.areaCount = 0
+              }
               // 服务到期时间
               const l_vip_endtime = res.data.userData?.l_vip_endtime
               this.serviceEndTime = l_vip_endtime ? dateFormatter(new Date(l_vip_endtime * 1000), 'yyyy-MM-dd') : ''
@@ -1353,7 +1356,7 @@ export default {
     },
     show(data) {
       this.typeRestriction = true
-      const {contractRes, filterData, refundRes, res, returnInfo, returnRes, audit} = data
+      const {contractRes, filterData, res, returnInfo, audit} = data
       setTimeout(() => {
         // 已提交订单一些数据
         // 已提交过的原订单状态 res.orderStatus
@@ -1374,6 +1377,13 @@ export default {
         //购买省份
         if (productType == '5') {
           this.areaNums.areaCount = filterData.newBuyset.areacount
+          if (filterData?.subscription_area_count) {
+            this.addAreaCount = filterData?.subscription_area_count
+            this.areaNums.areaCount = filterData?.newBuyset?.areacount - filterData?.subscription_area_count
+          }
+          if (this.areaNums?.areaCount < 0) {
+            this.areaNums.areaCount = 0
+          }
           const area = Object.keys(filterData.area).map(name => {
             let reg = /[省,市,壮族,维吾尔,特别行政区,自治区,回族]/g
             if (name) {
@@ -1825,7 +1835,7 @@ export default {
       prosType: '',
       phoneReg: [],
       infoData: [],
-      areaNums: [],
+      areaNums: {},
       nameInfo: [],
       others: {
         phone: '',