Browse Source

票种管理

LaveyD 10 months ago
parent
commit
4f4f75b8c3

+ 6 - 6
src/api/ticketType.js

@@ -7,30 +7,30 @@ export function getTicketCategory () {
 
 // 获取门票列表
 export function getTicketTypeList (params) {
-  return http.post('/admin/ticketType', params)
+  return http.post('/admin/ticketType', { data: params })
 }
 
 // 获取门票详情
 export function getTicketTypeInfo (params) {
-  return http.post('tickettype/get', params)
+  return http.post('/admin/ticketType/detail', { data: params })
 }
 
 // 新增门票
 export function addTicket (params) {
-  return http.post('tickettype/addTicketType', params)
+  return http.post('/admin/ticketType/add', { data: params })
 }
 
 // 更新门票
 export function updateTicket (params) {
-  return http.post('tickettype/updateTicketType', params)
+  return http.post('tickettype/updateTicketType', { data: params })
 }
 
 // 删除门票
 export function deleteTicket (id) {
   let params = {
-    id: id
+    idList: [id]
   }
-  return http.post('tickettype/deleteTicketType', params)
+  return http.post('/admin/ticketType/delete', { data: params })
 }
 
 // 获取景点列表

+ 1 - 1
src/globalData.vue

@@ -26,7 +26,7 @@ export default {
     // 设置全局 支付方式
     this.$store.dispatch('getPayChannel')
     // 获取票种分类
-    this.$store.dispatch('getTicketCategory')
+    // this.$store.dispatch('getTicketCategory')
     // 获取售票员列表
     this.$store.dispatch('getSalesList')
     // getMyAccount

+ 40 - 190
src/pages/ticketSetting/ticket.vue

@@ -12,15 +12,15 @@
       </div>
       <el-form-item
         label="名称"
-        prop="keyWords1"
+        prop="ticketTypeName"
       >
-        <el-input v-model="form.keyWords1"></el-input>
+        <el-input v-model="form.ticketTypeName"></el-input>
       </el-form-item>
       <el-form-item
         label="类型"
-        prop="keyWords2"
+        prop="category"
       >
-        <el-select v-model="form.keyWords2">
+        <el-select v-model="form.category">
           <el-option
             value=""
             label="全部"
@@ -33,36 +33,11 @@
           </el-option>
         </el-select>
       </el-form-item>
-      <el-form-item
-        label="票种归类标签"
-        prop="keyWords12">
-        <el-select
-          v-model="form.keyWords12"
-          clearable>
-          <el-option-group
-            v-for="group in ticketTagList"
-            :key="group.name"
-            :label="group.name">
-            <el-option
-              v-for="item in group.children"
-              :key="item.id"
-              :label="item.name"
-              :value="item.id">
-            </el-option>
-          </el-option-group>
-        </el-select>
-      </el-form-item>
-      <el-form-item
-        label="助记符"
-        prop="keyWords3"
-      >
-        <el-input v-model="form.keyWords3"></el-input>
-      </el-form-item>
       <el-form-item
         label="是否可售"
-        prop="keyWords4"
+        prop="isSale"
       >
-        <el-select v-model="form.keyWords4">
+        <el-select v-model="form.isSale">
           <el-option
             label="全部"
             value=""
@@ -77,43 +52,6 @@
           ></el-option>
         </el-select>
       </el-form-item>
-      <el-form-item
-        label="适用景点"
-        prop="keyWords6"
-      >
-        <el-select v-model="form.keyWords6">
-          <el-option
-            value=""
-            label="全部"
-          ></el-option>
-          <el-option
-            v-for="item in scenicList"
-            :key="item.id"
-            :label="item.name"
-            :value="item.id"
-          ></el-option>
-        </el-select>
-      </el-form-item>
-      <el-form-item
-        label="价格区间"
-        prop="keyWords7"
-      >
-        <el-input
-          style="width: 60px"
-          v-model="form.keyWords7"
-        ></el-input>
-      </el-form-item>
-      <el-form-item
-        label="至"
-        label-width="30"
-        prop="keyWords8"
-      >
-        <el-input
-          style="width: 60px"
-          v-model="form.keyWords8"
-        ></el-input>
-      </el-form-item>
-
       <div class="btn-wrap">
         <el-button
           @click="reset"
@@ -146,48 +84,9 @@
         v-loading="loading"
         :data="tableData"
       >
-        <el-table-column type="expand">
-          <template slot-scope="scope">
-            <el-form
-              label-position="right"
-              inline
-              class="table-expand"
-              label-width="120px"
-            >
-              <el-form-item label="创建人">
-                <span>{{ scope.row.creator }}</span>
-              </el-form-item>
-
-              <el-form-item label="创建时间">
-                <span>{{ scope.row.create_time | formatTime }}</span>
-              </el-form-item>
-
-              <template v-if="scope.row.category===3">
-                <el-form-item label="有效激活天数">
-                  <span>{{ scope.row.use_valid_days }} 天</span>
-                </el-form-item>
-              </template>
-
-              <template v-else>
-                <el-form-item label="是否二次入园">
-                  <span>{{ scope.row.check_second | yesOrNo }}</span>
-                </el-form-item>
-
-                <el-form-item label="游玩天数">
-                  <span>{{ scope.row.use_valid_days }} 天</span>
-                </el-form-item>
-
-                <el-form-item label="适用景点">
-                  {{ scope.row.scenics }}
-                </el-form-item>
-              </template>
-            </el-form>
-          </template>
-        </el-table-column>
         <el-table-column
           prop="name"
           label="票种名称"
-          width="100"
         >
         </el-table-column>
         <el-table-column
@@ -201,102 +100,50 @@
           width="80"
         >
           <template slot-scope="scope">
-            {{ scope.row.categoryObj.name }}
+            {{ getTicketCate(scope.row.category) }}
           </template>
         </el-table-column>
+
         <el-table-column
-          label="票种标签"
+          prop="price"
+          label="窗口价格"
           width="80"
         >
-          <template slot-scope="scope">
-            {{ scope.row.tag_name }}
-          </template>
         </el-table-column>
         <el-table-column
-          prop="member_type_name"
-          label="会员类型"
-          width="100"
-        >
-        </el-table-column>
-        <el-table-column
-          prop="shorthand"
-          label="助记符"
+          prop="onlinePrice"
+          label="线上价格"
           width="80"
         >
         </el-table-column>
         <el-table-column
-          prop="price"
-          label="日常价"
-          width="60"
-        >
-          <template slot-scope="scope">
-            {{ scope.row.price }}
-          </template>
-        </el-table-column>
-        <el-table-column
-          label="售票日期"
-          min-width="70"
-        >
-          <template slot-scope="scope">
-            {{ scope.row.sell_startdate | formatDate }} 至 {{ scope.row.sell_enddate | formatDate }}
-          </template>
-        </el-table-column>
-        <el-table-column
-          label="游玩有效日期"
-          min-width="70"
+          prop="highPrice"
+          label="虚拟高价"
+          width="80"
         >
-          <template
-            slot-scope="scope"
-            v-if="scope.row.category!==3">
-            {{ scope.row.use_startdate | formatDate }} 至 {{ scope.row.use_enddate | formatDate }}
-          </template>
         </el-table-column>
         <el-table-column
-          label="当日游玩时段"
-          min-width="70"
-        >
-          <template
-            slot-scope="scope"
-            v-if="scope.row.category!==3">
-            {{ scope.row.use_time_start }} 至 {{ scope.row.use_time_end }}
-          </template>
-        </el-table-column>
-        <el-table-column
-          width="120"
-          label="激活状态"
+          width="100"
+          label="在售状态"
         >
           <template slot-scope="scope">
-            <el-tag :type="scope.row.is_sell | runStopColor">
-              {{ scope.row.is_sell ? '已激活' : '已禁用' }}
+            <el-tag :type="scope.row.isSale | runStopColor">
+              {{ scope.row.isSale ? '在售' : '禁售' }}
             </el-tag>
           </template>
         </el-table-column>
-        <el-table-column
-          width="120"
-          label="激活操作"
-        >
-          <template slot-scope="scope">
-            <el-button
-              :type="scope.row.is_sell?'danger':'success'"
-              size="mini"
-              @click="scope.row.is_sell?offSale(scope.row):onSale(scope.row)"
-            >
-              {{ scope.row.is_sell?'禁用':'激活' }}
-            </el-button>
-          </template>
-        </el-table-column>
         <el-table-column
           label="操作"
           width="180"
         >
           <template slot-scope="scope">
-            <el-link
+            <!-- <el-link
               type="primary"
               size="small"
               @click="$refs.priceCalendar.show(scope.row.id,ticketPricePlanList)"
             >
               价格方案
-            </el-link>
+            </el-link> -->
             <el-link
               type="primary"
               size="small"
@@ -357,11 +204,11 @@ import moment from 'moment'
 import { getTicketTypeList, deleteTicket, getScenic, updateTicket, listInvoiceSales } from '@/api/ticketType'
 import { getTicketPricePlanList } from '@/api/ticketPricePlan'
 import { getTicketTypeTagList } from '@/api/ticketTypeTag'
-
 import { getMemberType } from '@/api/member'
 import ElDialog from '@/components/Dialog'
 import TicketDialog from './ticket/Dialog'
 import PriceCalendar from './ticket/PriceCalendar'
+import { TicketCategory } from './ticket/constant'
 
 export default {
   computed: {
@@ -372,18 +219,18 @@ export default {
   data () {
     return {
       form: {
-        keyWords1: '',
-        keyWords2: '',
+        ticketTypeName: '',
+        category: '',
         keyWords3: '',
-        keyWords4: '',
+        isSale: '',
         pageNum: 1,
         pageSize: 10,
         keyWords6: '',
         keyWords7: '',
         keyWords8: '',
-        keyWords10: '1',
-        // keyWords11: 1, // 只查看自己绑定景点的票种
-        keyWords12: ''
+        ticketTypeName0: '1',
+        // ticketTypeName1: 1, // 只查看自己绑定景点的票种
+        ticketTypeName2: ''
 
       },
       loading: false,
@@ -403,10 +250,10 @@ export default {
   created () {
     this.getScenicList()
     this.getTicketTypeList()
-    this.getMemberList()
-    this.getTicketTagList()
-    this.getTicketPricePlanList()
-    this.getInvoiceSeller()
+    // this.getMemberList()
+    // this.getTicketTagList()
+    // this.getTicketPricePlanList()
+    // this.getInvoiceSeller()
   },
   components: {
     ElDialog,
@@ -414,6 +261,9 @@ export default {
     PriceCalendar
   },
   methods: {
+    getTicketCate (cate) {
+      return TicketCategory[cate]
+    },
     getInvoiceSeller () {
       listInvoiceSales({}).then(res => {
         this.InvoiceSeller = res?.data
@@ -432,7 +282,7 @@ export default {
     // 获取景点列表
     getScenicList () {
       getScenic().then(res => {
-        this.scenicList = res?.data.children.map(item => item.data)
+        this.scenicList = res?.data.records || []
       })
     },
     showDialog (type, item) {
@@ -460,18 +310,18 @@ export default {
     getTicketTypeList () {
       this.loading = true
       getTicketTypeList(this.form).then(res => {
-        this.tableData = res.list.map(item => {
-          item.scenics = item.ticketTypeScenic.map(s => s.scenic.name).join('、')
+        this.tableData = res.data.records.map(item => {
+          item.scenics = item.ticketTypeScenicList.map(s => s.scenicName).join('、')
           return item
         })
         console.log('this.tableData', this.tableData)
-        this.total = res.total
+        this.total = res.data.total || 0
       }).finally(() => {
         this.loading = false
       })
 
       // 更新全局票种列表
-      this.$store.dispatch('getTicketTypeList')
+      // this.$store.dispatch('getTicketTypeList')
     },
     // 删除票种
     deleteTicket (id) {

File diff suppressed because it is too large
+ 580 - 928
src/pages/ticketSetting/ticket/Dialog.vue


+ 5 - 0
src/pages/ticketSetting/ticket/constant.js

@@ -0,0 +1,5 @@
+export const TicketCategory = {
+  ticket: '景区门票',
+  batch: '场次售票',
+  member: '年卡次卡'
+}

+ 10 - 1
src/store/modules/app.js

@@ -47,7 +47,16 @@ const app = {
     printTemplateList: [],
     payChannelOptions: [],
     payChannelList: [],
-    ticketCategory: [],
+    ticketCategory: [
+      {
+        id: 'ticket',
+        name: '景区门票'
+      },
+      {
+        id: 'member',
+        name: '年卡次卡'
+      }
+    ],
     ticketTypeList: [],
     customerType: [],
     saleChannel: [],