完成会员锁座购票接口和卖品接口

main
RogerWork 4 weeks ago
parent 12b69adf6b
commit 8e601e4735
  1. 29
      src/components/ec_api/MapiLockBuySelector.vue
  2. 73
      src/components/ec_api/TabArea.vue

@ -19,6 +19,8 @@ const ticketQuanValue = ref('0.00')
const goodsQuanCheck = ref(false) const goodsQuanCheck = ref(false)
const goodsQuanNum = ref('0') const goodsQuanNum = ref('0')
const goodsQuanValue = ref('0.00') const goodsQuanValue = ref('0.00')
const goodsQuanType = ref('兑换券')
const goodsQuanTypeOptions = ref([{value: '兑换券', label: '兑换券'},{value: '抵值兑换券', label: '抵值兑换券'}, {value: '代金券', label: '代金券'}])
const containTicket = ["ticket", "all"] const containTicket = ["ticket", "all"]
const containGoods = ["goods", "all"] const containGoods = ["goods", "all"]
@ -58,22 +60,23 @@ watch(() => goodsQuanCheck.value, () => {
}) })
// //
watch(() => [selectPriceType.value, ticketPrice.value, ticketPrice.value, ticketQuanCheck.value, ticketQuanNum.value, ticketQuanValue.value, goodsQuanCheck.value, goodsQuanNum.value, goodsQuanValue.value], () => { watch(() => [selectPriceType.value, haveServiceFee.value, ticketPrice.value, ticketQuanCheck.value, ticketQuanNum.value, ticketQuanValue.value, goodsQuanCheck.value, goodsQuanNum.value, goodsQuanValue.value, goodsQuanType.value], () => {
emits("getPriceType", { emits("getPriceType", {
select_price_type: selectPriceType.value, select_price_type: selectPriceType.value,
ticket_info: { ticket_info: {
ticket_price: ticketPrice.value, ticket_price: ticketPrice.value,
have_service_fee: haveServiceFee.value, have_service_fee: haveServiceFee.value,
}, },
ticketQuanCheck: ticketQuanCheck.value, ticket_quan_check: ticketQuanCheck.value,
ticket_quan: { ticket_quan: {
ticket_quan_num: ticketQuanNum.value, ticket_quan_num: ticketQuanNum.value,
ticket_quan_value: ticketQuanValue.value, ticket_quan_value: ticketQuanValue.value,
}, },
goodsQuanCheck: goodsQuanCheck.value, goods_quan_check: goodsQuanCheck.value,
goods_quan: { goods_quan: {
goods_quan_num: goodsQuanNum.value, goods_quan_num: goodsQuanNum.value,
goods_quan_value: goodsQuanValue.value, goods_quan_value: goodsQuanValue.value,
goods_quan_type: goodsQuanType.value,
} }
}) })
}) })
@ -103,7 +106,7 @@ watch(() => [selectPriceType.value, ticketPrice.value, ticketPrice.value, ticket
<el-row v-if="selectPriceType === 'third_price'" type="flex" justify="start" align="middle" style="margin: 0 0 0 20px"> <el-row v-if="selectPriceType === 'third_price'" type="flex" justify="start" align="middle" style="margin: 0 0 0 20px">
<el-col :span="1" style="font-size: 14px; font-weight: bold; color: #919399;" class="col-right">三方定价</el-col> <el-col :span="1" style="font-size: 14px; font-weight: bold; color: #919399;" class="col-right">三方定价</el-col>
<el-col :span="8" class="col-left"> <el-col v-if="containTicket.includes(selectSaleType)" :span="8" class="col-left">
<span style="font-size: 14px">单张影票结算价</span> <span style="font-size: 14px">单张影票结算价</span>
<el-input-number v-model="ticketPrice" :min="0.01" :max="99999.99" :step="0.01" <el-input-number v-model="ticketPrice" :min="0.01" :max="99999.99" :step="0.01"
controls-position="right" size="small"></el-input-number> controls-position="right" size="small"></el-input-number>
@ -125,14 +128,28 @@ watch(() => [selectPriceType.value, ticketPrice.value, ticketPrice.value, ticket
</el-row> </el-row>
<el-row v-if="selectPriceType === 'third_price' && containGoods.includes(selectSaleType)" type="flex" justify="start" align="middle" style="margin: 0 0 30px 20px"> <el-row v-if="selectPriceType === 'third_price' && containGoods.includes(selectSaleType)" type="flex" justify="start" align="middle" style="margin: 0 0 30px 20px">
<el-col :span="1" style="font-size: 14px; font-weight: bold; color: #919399;" class="col-right"></el-col> <el-col :span="1" style="font-size: 14px; font-weight: bold; color: #919399;" class="col-right"></el-col>
<el-col :span="10" class="col-left"> <el-col :span="15" class="col-left">
<span>卖品券</span> <span>卖品券</span>
<el-input-number v-model="goodsQuanNum" :min="0" :max="10" :step="1" <el-input-number v-model="goodsQuanNum" :min="0" :max="10" :step="1"
controls-position="right" size="small"></el-input-number> controls-position="right" size="small"></el-input-number>
<span>&nbsp张&nbsp</span> <span>&nbsp张&nbsp</span>
<el-input-number v-model="goodsQuanValue" :min="0.00" :max="99999.99" :step="0.01" <el-input-number v-model="goodsQuanValue" :min="0.00" :max="99999.99" :step="0.01"
controls-position="right" size="small"></el-input-number> controls-position="right" size="small"></el-input-number>
<span>&nbsp元</span> <span>&nbsp元</span>
<span style="margin-left: 20px">券类型&nbsp</span>
<el-select
v-model="goodsQuanType"
placeholder="请选择"
size="small"
style="width: 120px"
>
<el-option
v-for="item in goodsQuanTypeOptions"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select>
<el-checkbox v-model="goodsQuanCheck" style="margin-left: 20px">使用卖品券</el-checkbox> <el-checkbox v-model="goodsQuanCheck" style="margin-left: 20px">使用卖品券</el-checkbox>
</el-col> </el-col>
</el-row> </el-row>

@ -57,6 +57,26 @@ const saleType = ref('ticket')
// //
const payType = ref('cash') const payType = ref('cash')
//
const priceType = ref({
select_price_type: "cinema_price",
ticket_info: {
ticket_price: "20",
have_service_fee: true,
},
ticket_quan_check: false,
ticket_quan: {
ticket_quan_num: 0,
ticket_quan_value: "0.00",
},
goods_quan_check: false,
goods_quan: {
goods_quan_num: 0,
goods_quan_value: "0.00",
goods_quan_type: "兑换券",
}
})
// //
// //
function handleParamsChange(newCheckedResult) { function handleParamsChange(newCheckedResult) {
@ -271,6 +291,11 @@ async function get_suggest(options = {sale_type: saleType.value, pay_type: payTy
const env = UserApiData.value.base_info['env'] const env = UserApiData.value.base_info['env']
const cid = UserApiData.value.base_info['cinema'] const cid = UserApiData.value.base_info['cinema']
const pid = UserApiData.value.base_info['channel'] const pid = UserApiData.value.base_info['channel']
if (api_type === 'member') {
options['pay_type'] = JSON.stringify(priceType.value)
console.log('options.pay_type', options.pay_type)
console.log('priceType.value', priceType.value)
}
await ec_api_get_suggest(api_type, api, env, cid, pid, options).then( await ec_api_get_suggest(api_type, api, env, cid, pid, options).then(
(res) => { (res) => {
@ -334,8 +359,11 @@ function check_params(checked, unchecked) {
// //
function get_sale_type(sale_type) { function get_sale_type(sale_type) {
console.log('sale_type', sale_type)
saleType.value = sale_type saleType.value = sale_type
if (UserApiData.value.api[activeTab.value].path === "order/buy-goods")
saleType.value = 'goods'
console.log('sale_type', sale_type)
if (UserApiData.value.api[activeTab.value].path === "seat/check-coupon") { if (UserApiData.value.api[activeTab.value].path === "seat/check-coupon") {
switch (saleType.value) { switch (saleType.value) {
case 'ticket': case 'ticket':
@ -362,6 +390,13 @@ function get_sale_type(sale_type) {
break; break;
} }
} }
if (UserApiData.value.api[activeTab.value].path === "order/buy-goods") {
switch (saleType.value) {
case 'goods':
check_params(["goods"], ["play_id", "play_update_time", "seat", "lock_flag"]);
break;
}
}
get_timestamp() get_timestamp()
get_suggest() get_suggest()
markIsChecked() markIsChecked()
@ -423,9 +458,18 @@ function get_pay_type(pay_type) {
markIsChecked() markIsChecked()
} }
function setup_sale_type() {
console.log('UserApiData.value.api[activeTab.value].path', UserApiData.value.api[activeTab.value].path)
console.log('saleType.value', saleType.value)
if (UserApiData.value.api[activeTab.value].path === "order/buy-goods")
console.log('UserApiData.value.api[activeTab.value].path === "order/buy-goods"')
saleType.value = 'goods'
}
function get_sale_type_member(sale_type) { function get_sale_type_member(sale_type) {
console.log('sale_type', sale_type)
saleType.value = sale_type saleType.value = sale_type
console.log('sale_type', sale_type)
if (UserApiData.value.api[activeTab.value].path === "seat/lock-buy") { if (UserApiData.value.api[activeTab.value].path === "seat/lock-buy") {
switch (saleType.value) { switch (saleType.value) {
case 'ticket': case 'ticket':
@ -439,6 +483,13 @@ function get_sale_type_member(sale_type) {
break; break;
} }
} }
if (UserApiData.value.api[activeTab.value].path === "order/buy-goods") {
switch (saleType.value) {
case 'goods':
check_params(["goods", "goods_card_balance_pay", "goods_cash"], ["play_id", "play_update_time", "seat", "lock_flag"]);
break;
}
}
get_timestamp() get_timestamp()
get_suggest() get_suggest()
markIsChecked() markIsChecked()
@ -446,7 +497,19 @@ function get_sale_type_member(sale_type) {
function get_price_type_member(price_type) { function get_price_type_member(price_type) {
console.log('price_type', price_type) console.log('price_type', price_type)
payType.value = price_type priceType.value = price_type
console.log('get_price_type_member', price_type.value)
if (payType.value["select_price_type"] === "cinema_price") {
check_params(["is_cinema_price", "t3d_pay_amount"], ["is_split_service_fee", "seat_coupons"]);
} else {
check_params(["is_cinema_price", "t3d_pay_amount", "is_split_service_fee"], []);
}
if (payType.value["ticket_quan_check"] === true) {
check_params(["seat_coupons"], []);
} else {
check_params([], ["seat_coupons"]);
}
get_timestamp() get_timestamp()
get_suggest() get_suggest()
markIsChecked() markIsChecked()
@ -584,6 +647,7 @@ watch(() => store.state.ecApiModule.ec_api_data.api, (oldValue, newValue) => {
// activeTab // activeTab
watch(activeTab, () => { watch(activeTab, () => {
console.log('watch.activeTab') console.log('watch.activeTab')
setup_sale_type()
markIsChecked() markIsChecked()
get_timestamp() get_timestamp()
get_suggest() get_suggest()
@ -667,6 +731,9 @@ const ace_options = {
<MapiLockBuySelector v-if="api['path'] === 'seat/lock-buy' && api['type'] === 'member'" <MapiLockBuySelector v-if="api['path'] === 'seat/lock-buy' && api['type'] === 'member'"
@getSaleType="get_sale_type_member" @getSaleType="get_sale_type_member"
@getPriceType="get_price_type_member" type="ticket"></MapiLockBuySelector> @getPriceType="get_price_type_member" type="ticket"></MapiLockBuySelector>
<MapiLockBuySelector v-if="api['path'] === 'order/buy-goods' && api['type'] === 'member'"
@getSaleType="get_sale_type_member"
@getPriceType="get_price_type_member" type="goods"></MapiLockBuySelector>
<el-table <el-table
ref='ApiTableRef' ref='ApiTableRef'
:data="UserApiData.api[api['id']].params" :data="UserApiData.api[api['id']].params"

Loading…
Cancel
Save