|
|
@@ -12,11 +12,11 @@
|
|
|
</div>
|
|
|
<el-form-item
|
|
|
label="检票起始时间"
|
|
|
- prop="startDate"
|
|
|
+ prop="checkTimeBegin"
|
|
|
label-width="150px"
|
|
|
>
|
|
|
<el-date-picker
|
|
|
- v-model="form.startDate"
|
|
|
+ v-model="form.checkTimeBegin"
|
|
|
type="datetime"
|
|
|
placeholder="选择日期时间"
|
|
|
>
|
|
|
@@ -25,39 +25,12 @@
|
|
|
|
|
|
<el-form-item
|
|
|
label="检票截止时间"
|
|
|
- prop="endDate"
|
|
|
+ prop="checkTimeEnd"
|
|
|
label-width="150px"
|
|
|
>
|
|
|
<el-date-picker
|
|
|
default-time="23:59:59"
|
|
|
- v-model="form.endDate"
|
|
|
- type="datetime"
|
|
|
- placeholder="选择日期时间"
|
|
|
- >
|
|
|
- </el-date-picker>
|
|
|
- </el-form-item>
|
|
|
-
|
|
|
- <el-form-item
|
|
|
- label="售票起始时间"
|
|
|
- prop="startDate1"
|
|
|
- label-width="150px"
|
|
|
- >
|
|
|
- <el-date-picker
|
|
|
- v-model="form.startDate1"
|
|
|
- type="datetime"
|
|
|
- placeholder="选择日期时间"
|
|
|
- >
|
|
|
- </el-date-picker>
|
|
|
- </el-form-item>
|
|
|
-
|
|
|
- <el-form-item
|
|
|
- label="售票截止时间"
|
|
|
- prop="endDate1"
|
|
|
- label-width="150px"
|
|
|
- >
|
|
|
- <el-date-picker
|
|
|
- default-time="23:59:59"
|
|
|
- v-model="form.endDate1"
|
|
|
+ v-model="form.checkTimeEnd"
|
|
|
type="datetime"
|
|
|
placeholder="选择日期时间"
|
|
|
>
|
|
|
@@ -66,10 +39,10 @@
|
|
|
|
|
|
<el-form-item
|
|
|
label="票种"
|
|
|
- prop="keyWords1"
|
|
|
+ prop="ticketTypeIdList"
|
|
|
>
|
|
|
<el-select
|
|
|
- v-model="form.keyWords1"
|
|
|
+ v-model="form.ticketTypeIdList"
|
|
|
clearable
|
|
|
placeholder="请选择"
|
|
|
>
|
|
|
@@ -86,171 +59,17 @@
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
<el-form-item
|
|
|
- label="订单号"
|
|
|
- prop="keyWords2"
|
|
|
- >
|
|
|
- <el-input v-model="form.keyWords2"></el-input>
|
|
|
- </el-form-item>
|
|
|
- <el-form-item
|
|
|
- label="票号"
|
|
|
- prop="keyWords3"
|
|
|
- >
|
|
|
- <QRReader v-model="form.keyWords3"></QRReader>
|
|
|
- </el-form-item>
|
|
|
- <el-form-item
|
|
|
- label="身份证号"
|
|
|
- prop="keyWords13">
|
|
|
- <ReaderInput v-model="form.keyWords13"></ReaderInput>
|
|
|
- </el-form-item>
|
|
|
- <el-form-item
|
|
|
- label="游客姓名"
|
|
|
- prop="keyWords4"
|
|
|
- >
|
|
|
- <el-input v-model="form.keyWords4"></el-input>
|
|
|
- </el-form-item>
|
|
|
- <el-form-item
|
|
|
- label="游客手机"
|
|
|
- prop="keyWords5"
|
|
|
- >
|
|
|
- <el-input v-model="form.keyWords5"></el-input>
|
|
|
- </el-form-item>
|
|
|
- <el-form-item
|
|
|
- label="景点"
|
|
|
- prop="keyWords8"
|
|
|
- >
|
|
|
- <el-select
|
|
|
- v-model="form.keyWords8"
|
|
|
- @change="getChannelGroup"
|
|
|
- >
|
|
|
- <el-option
|
|
|
- value=""
|
|
|
- label="全部"
|
|
|
- >
|
|
|
- </el-option>
|
|
|
- <el-option
|
|
|
- v-for="item in userScenic"
|
|
|
- :key="item.id"
|
|
|
- :value="item.id"
|
|
|
- :label="item.name"
|
|
|
- ></el-option>
|
|
|
- </el-select>
|
|
|
- </el-form-item>
|
|
|
- <el-form-item
|
|
|
- label="通道组"
|
|
|
- prop="keyWords10"
|
|
|
- >
|
|
|
- <el-select
|
|
|
- v-model="form.keyWords10"
|
|
|
- @change="getChannel"
|
|
|
- >
|
|
|
- <el-option
|
|
|
- value=""
|
|
|
- label="全部"
|
|
|
- >
|
|
|
- </el-option>
|
|
|
- <el-option
|
|
|
- v-for="item in channelGroupList"
|
|
|
- :key="item.id"
|
|
|
- :value="item.id"
|
|
|
- :label="item.name"
|
|
|
- ></el-option>
|
|
|
- </el-select>
|
|
|
- </el-form-item>
|
|
|
- <el-form-item
|
|
|
- label="通道"
|
|
|
- prop="keyWords9"
|
|
|
- >
|
|
|
- <el-select
|
|
|
- v-model="form.keyWords9"
|
|
|
- @change="getDevice"
|
|
|
- >
|
|
|
- <el-option
|
|
|
- value=""
|
|
|
- label="全部"
|
|
|
- >
|
|
|
- </el-option>
|
|
|
- <el-option
|
|
|
- v-for="item in channelList"
|
|
|
- :key="item.id"
|
|
|
- :value="item.id"
|
|
|
- :label="item.name"
|
|
|
- ></el-option>
|
|
|
- </el-select>
|
|
|
- </el-form-item>
|
|
|
- <el-form-item
|
|
|
- label="检票设备"
|
|
|
- prop="keyWords6"
|
|
|
- >
|
|
|
- <el-select
|
|
|
- clearable
|
|
|
- v-model="form.keyWords6"
|
|
|
- >
|
|
|
- <el-option
|
|
|
- value=""
|
|
|
- label="全部"
|
|
|
- >
|
|
|
- </el-option>
|
|
|
- <el-option
|
|
|
- v-for="item in deviceList"
|
|
|
- :key="item.id"
|
|
|
- :value="item.id"
|
|
|
- :label="item.name"
|
|
|
- ></el-option>
|
|
|
- </el-select>
|
|
|
- </el-form-item>
|
|
|
- <el-form-item
|
|
|
- label="查询方式"
|
|
|
- prop="keyWords7"
|
|
|
- >
|
|
|
+ label="销售来源"
|
|
|
+ prop="otaSourceNameList">
|
|
|
<el-select
|
|
|
- v-model="form.keyWords7"
|
|
|
- placeholder="请选择"
|
|
|
- >
|
|
|
- <el-option
|
|
|
- label="按票"
|
|
|
- value="ticket"
|
|
|
- >
|
|
|
- </el-option>
|
|
|
- <el-option
|
|
|
- label="按订单"
|
|
|
- value="order"
|
|
|
- >
|
|
|
- </el-option>
|
|
|
- </el-select>
|
|
|
- </el-form-item>
|
|
|
-
|
|
|
- <el-form-item
|
|
|
- label="检票类型"
|
|
|
- prop="keyWords11"
|
|
|
- >
|
|
|
- <el-select v-model="form.keyWords11">
|
|
|
- <el-option
|
|
|
- value=""
|
|
|
- label="全部">
|
|
|
- </el-option>
|
|
|
- <el-option
|
|
|
- label="闸机检票"
|
|
|
- value="CHECKER">
|
|
|
- </el-option>
|
|
|
+ v-model="form.otaSourceNameList"
|
|
|
+ multiple
|
|
|
+ filterable>
|
|
|
<el-option
|
|
|
- label="人工检票"
|
|
|
- value="PERSON">
|
|
|
- </el-option>
|
|
|
- </el-select>
|
|
|
- </el-form-item>
|
|
|
-
|
|
|
- <el-form-item
|
|
|
- label="检票员"
|
|
|
- prop="keyWords12">
|
|
|
- <el-select v-model="form.keyWords12">
|
|
|
- <el-option
|
|
|
- label="全部"
|
|
|
- value=""></el-option>
|
|
|
- <el-option
|
|
|
- v-for="item in salesList"
|
|
|
- :key="item.id"
|
|
|
- :label="item.nick_name"
|
|
|
- :value="item.id">
|
|
|
+ v-for="item in otaSourceList"
|
|
|
+ :key="item"
|
|
|
+ :label="item"
|
|
|
+ :value="item">
|
|
|
</el-option>
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
@@ -275,7 +94,7 @@
|
|
|
<div class="block-title">
|
|
|
检票列表
|
|
|
</div>
|
|
|
- <el-table
|
|
|
+ <!-- <el-table
|
|
|
border
|
|
|
stripe
|
|
|
v-loading="loading"
|
|
|
@@ -367,106 +186,38 @@
|
|
|
label="已退"
|
|
|
>
|
|
|
</el-table-column>
|
|
|
- </el-table>
|
|
|
+ </el-table> -->
|
|
|
|
|
|
<el-table
|
|
|
v-loading="loading"
|
|
|
:data="ticketTableData"
|
|
|
key="ticketTable"
|
|
|
- v-if="queryType === 'ticket'"
|
|
|
>
|
|
|
- <el-table-column type="expand">
|
|
|
- <template slot-scope="scope">
|
|
|
- <el-form
|
|
|
- inline
|
|
|
- class="table-expand"
|
|
|
- >
|
|
|
- <el-form-item label="游客姓名">
|
|
|
- <span>{{ scope.row.guestName }}</span>
|
|
|
- </el-form-item>
|
|
|
- <el-form-item label="游客电话">
|
|
|
- <span>{{ scope.row.guestPhone }}</span>
|
|
|
- </el-form-item>
|
|
|
- </el-form>
|
|
|
- </template>
|
|
|
- </el-table-column>
|
|
|
- <el-table-column
|
|
|
- prop="orderNo"
|
|
|
- label="订单号"
|
|
|
- >
|
|
|
- </el-table-column>
|
|
|
<el-table-column
|
|
|
- prop="ticketNo"
|
|
|
- label="票号"
|
|
|
- >
|
|
|
- </el-table-column>
|
|
|
- <el-table-column
|
|
|
- prop="scenic_name"
|
|
|
- label="景点"
|
|
|
- >
|
|
|
- </el-table-column>
|
|
|
- <el-table-column
|
|
|
- prop="checker_channel_group_name"
|
|
|
- label="通道组"
|
|
|
- >
|
|
|
- </el-table-column>
|
|
|
- <el-table-column
|
|
|
- prop="checker_channel_name"
|
|
|
- label="通道"
|
|
|
+ prop="otaSourceName"
|
|
|
+ label="订单渠道"
|
|
|
>
|
|
|
</el-table-column>
|
|
|
<el-table-column
|
|
|
prop="ticketTypeName"
|
|
|
- label="票型"
|
|
|
- >
|
|
|
- </el-table-column>
|
|
|
- <el-table-column
|
|
|
- prop="check_type"
|
|
|
- label="检票类型"
|
|
|
- width="110"
|
|
|
- >
|
|
|
- <template slot-scope="scope">
|
|
|
- <el-tag
|
|
|
- type="danger"
|
|
|
- v-if="scope.row.check_type==='PERSON'">
|
|
|
- 人工检票
|
|
|
- </el-tag>
|
|
|
-
|
|
|
- <el-tag
|
|
|
- type="success"
|
|
|
- v-if="scope.row.check_type==='CHECKER'">
|
|
|
- 闸机检票
|
|
|
- </el-tag>
|
|
|
- </template>
|
|
|
- </el-table-column>
|
|
|
- <el-table-column
|
|
|
- prop="check_manager_name"
|
|
|
- label="检票人"
|
|
|
+ label="票种"
|
|
|
>
|
|
|
</el-table-column>
|
|
|
<el-table-column
|
|
|
- prop="checker_name"
|
|
|
- label="检票设备"
|
|
|
+ prop="unitPrice"
|
|
|
+ label="单价"
|
|
|
>
|
|
|
</el-table-column>
|
|
|
<el-table-column
|
|
|
- prop="ip"
|
|
|
- label="设备IP"
|
|
|
+ prop="checkNum"
|
|
|
+ label="检票人数"
|
|
|
>
|
|
|
</el-table-column>
|
|
|
<el-table-column
|
|
|
- prop="has_checked_num"
|
|
|
- label="已检次数"
|
|
|
+ prop="checkPrice"
|
|
|
+ label="检票金额"
|
|
|
>
|
|
|
</el-table-column>
|
|
|
- <el-table-column
|
|
|
- width="160"
|
|
|
- label="最后检票时间"
|
|
|
- >
|
|
|
- <template slot-scope="scope">
|
|
|
- {{ scope.row.checkTime | formatTime }}
|
|
|
- </template>
|
|
|
- </el-table-column>
|
|
|
</el-table>
|
|
|
<el-pagination
|
|
|
background
|
|
|
@@ -482,15 +233,12 @@
|
|
|
|
|
|
<script>
|
|
|
import { getScenic, getTicketTypeList } from '@/api/ticketType'
|
|
|
-import { apiChannel, apiChannelGroup, getDeviceList } from '@/api/checker'
|
|
|
-import { apiCheckList } from '@/api/order'
|
|
|
+import { apiCheckList, getSaleChannelList } from '@/api/order'
|
|
|
import moment from 'moment'
|
|
|
-import ReaderInput from '@/components/ReaderInput'
|
|
|
|
|
|
export default {
|
|
|
name: 'checkQuery',
|
|
|
components: {
|
|
|
- ReaderInput
|
|
|
},
|
|
|
computed: {
|
|
|
salesList () {
|
|
|
@@ -498,37 +246,28 @@ export default {
|
|
|
},
|
|
|
userScenic () {
|
|
|
return this.$store.state.app.account.manager_scenic_matrix ? this.$store.state.app.account.manager_scenic_matrix : this.scenicList
|
|
|
+ },
|
|
|
+ ticketTypeList () {
|
|
|
+ return this.$store.state.app.ticketTypeList
|
|
|
}
|
|
|
},
|
|
|
data () {
|
|
|
return {
|
|
|
form: {
|
|
|
- keyWords1: '', // 票种ID
|
|
|
- keyWords2: '', // 订单号
|
|
|
- keyWords3: '', // 票号
|
|
|
- keyWords4: '', // 游客姓名
|
|
|
- keyWords5: '', // 游客手机
|
|
|
- keyWords6: '', // 检票设备
|
|
|
- keyWords7: 'ticket',
|
|
|
- keyWords8: '', // 景点
|
|
|
- keyWords9: '', // 通道
|
|
|
- keyWords10: '', // 通道组
|
|
|
- keyWords11: '', // 检票类型
|
|
|
- keyWords12: '', // 检票类型
|
|
|
- keyWords13: '', // 身份证号码
|
|
|
- startDate: new Date(moment().startOf('day').valueOf()),
|
|
|
- endDate: new Date(moment().endOf('day').valueOf()),
|
|
|
- startDate1: new Date(moment().startOf('day').valueOf()),
|
|
|
- endDate1: new Date(moment().endOf('day').valueOf()),
|
|
|
+ ticketTypeIdList: [], // 票种ID
|
|
|
+ otaSourceNameList: [],
|
|
|
+ checkTimeBegin: new Date(moment().subtract(7, 'day').format('YYYY-MM-DD HH:mm:ss')),
|
|
|
+ checkTimeEnd: new Date(moment().format('YYYY-MM-DD HH:mm:ss')),
|
|
|
pageNum: 1,
|
|
|
pageSize: 10
|
|
|
},
|
|
|
+ otaSourceList: [],
|
|
|
scenicList: [],
|
|
|
channelGroupOri: [],
|
|
|
channelGroupList: [],
|
|
|
channelList: [],
|
|
|
deviceList: [],
|
|
|
- ticketTypeList: [],
|
|
|
+ // ticketTypeList: [],
|
|
|
orderTableData: [],
|
|
|
ticketTableData: [],
|
|
|
queryType: 'order', // 按订单还是按票
|
|
|
@@ -542,16 +281,15 @@ export default {
|
|
|
}
|
|
|
},
|
|
|
created () {
|
|
|
- this.getScenicList()
|
|
|
- this.initChannelGroup()
|
|
|
+ // this.getScenicList()
|
|
|
+ // this.initChannelGroup()
|
|
|
const searchParams = JSON.parse(sessionStorage.getItem('统计表-检票记录-の查询条件'))
|
|
|
if (searchParams) {
|
|
|
// 如果存在查询条件,则设置到组件的数据中
|
|
|
this.form = searchParams // 记住上次搜索条件
|
|
|
}
|
|
|
- this.getTicketTypeList().then(() => {
|
|
|
- this.getCheckList()
|
|
|
- })
|
|
|
+ this.getTicketTypeList()
|
|
|
+ this.getSaleChannelList()
|
|
|
},
|
|
|
methods: {
|
|
|
reset () {
|
|
|
@@ -563,76 +301,38 @@ export default {
|
|
|
this.scenicList = res?.data.children.map(item => item.data)
|
|
|
})
|
|
|
},
|
|
|
- initChannelGroup () {
|
|
|
- apiChannelGroup('getCheckerChannelGroupList', { pageNum: 1, pageSize: 10000 }).then(res => {
|
|
|
- this.channelGroupOri = res.list
|
|
|
+ getSaleChannelList () {
|
|
|
+ getSaleChannelList().then(res => {
|
|
|
+ this.otaSourceList = res.data
|
|
|
})
|
|
|
},
|
|
|
- // 根据景点获取通道组
|
|
|
- getChannelGroup (id) {
|
|
|
- if (id) {
|
|
|
- this.channelGroupList = this.channelGroupOri.filter(item => item.scenics.some(v => v.scenic_id === id))
|
|
|
- } else {
|
|
|
- this.channelGroupList = []
|
|
|
- }
|
|
|
- this.channelList = []
|
|
|
- this.deviceList = []
|
|
|
- this.form.keyWords10 = ''
|
|
|
- this.form.keyWords9 = ''
|
|
|
- this.form.keyWords6 = ''
|
|
|
- },
|
|
|
- getChannel (id) {
|
|
|
- if (id) {
|
|
|
- apiChannel('getCheckerChannelList', {
|
|
|
- keyWords1: '',
|
|
|
- keyWords2: '',
|
|
|
- keyWords3: id,
|
|
|
- pageNum: 1,
|
|
|
- pageSize: 1000
|
|
|
- }).then(res => {
|
|
|
- this.channelList = res.list
|
|
|
- })
|
|
|
- } else {
|
|
|
- this.channelList = []
|
|
|
- }
|
|
|
- this.deviceList = []
|
|
|
- this.form.keyWords9 = ''
|
|
|
- this.form.keyWords6 = ''
|
|
|
- },
|
|
|
- getDevice (id) {
|
|
|
- if (id) {
|
|
|
- getDeviceList({
|
|
|
- keyWords6: id,
|
|
|
- pageNum: 1,
|
|
|
- pageSize: 10000
|
|
|
- }).then(res => {
|
|
|
- this.deviceList = res.list
|
|
|
- })
|
|
|
- } else {
|
|
|
- this.deviceList = []
|
|
|
- }
|
|
|
- this.form.keyWords6 = ''
|
|
|
- },
|
|
|
// 获取票种列表
|
|
|
getTicketTypeList () {
|
|
|
- return getTicketTypeList({
|
|
|
+ getTicketTypeList({
|
|
|
pageNum: 1,
|
|
|
pageSize: 999
|
|
|
}).then(res => {
|
|
|
- this.ticketTypeList = res.list
|
|
|
+ console.log('票种列表', res)
|
|
|
})
|
|
|
},
|
|
|
getCheckList (goFirst) {
|
|
|
this.loading = true
|
|
|
goFirst && (this.form.pageNum = 1)
|
|
|
+
|
|
|
+ this.form.checkTimeBegin = moment(this.form.checkTimeBegin).format('YYYY-MM-DD HH:mm:ss')
|
|
|
+ this.form.checkTimeEnd = moment(this.form.checkTimeEnd).format('YYYY-MM-DD HH:mm:ss')
|
|
|
+
|
|
|
+ if (!this.form.ticketTypeIdList) {
|
|
|
+ this.form.ticketTypeIdList = []
|
|
|
+ }
|
|
|
+
|
|
|
+ if (!this.form.otaSourceNameList) {
|
|
|
+ this.form.otaSourceNameList = []
|
|
|
+ }
|
|
|
+
|
|
|
apiCheckList(this.form).then(res => {
|
|
|
- this.total = res.total
|
|
|
- this.queryType = this.form.keyWords7
|
|
|
- if (this.queryType === 'order') {
|
|
|
- this.orderTableData = res.list
|
|
|
- } else if (this.queryType === 'ticket') {
|
|
|
- this.ticketTableData = res.list
|
|
|
- }
|
|
|
+ this.total = res.data.total
|
|
|
+ this.ticketTableData = res.data.records
|
|
|
}).finally(() => {
|
|
|
this.loading = false
|
|
|
sessionStorage.setItem('统计表-检票记录-の查询条件', JSON.stringify(this.form)) // 下次记住
|