0ed93485 by 杨炀

no message

1 parent 76220a00
......@@ -135,7 +135,7 @@ export function getInvoiceByActiveId(query) {
}
export function getCanInvoiceBills(query) {
return request({
url: `/ota/norder/list`,
url: `ota/norder/getOrderInvoiceList`,
method: 'get',
params: query
})
......@@ -147,6 +147,13 @@ export function getCanInvoiceBm(query) {
params: query
})
}
export function getCanInvoiceTicket(query) {
return request({
url: `/api/order/getOrderInvoiceList`,
method: 'get',
params: query
})
}
export function cancelOrder(orderId) {
return request({
// url: `/logex/norder/unSubscribeOrderBack/${orderId}`,
......@@ -208,6 +215,13 @@ export function editInvoice(form) {
data: form
})
}
export function editCptInvoice(form) {
return request({
url: `/cpt/invoice`,
method: 'put',
data: form
})
}
export function addAddress(form) {
return request({
url: `/ota/invoiceInfo`,
......
......@@ -119,6 +119,13 @@ export function getBackNumber(qy) {
params: qy
})
}
export function getTeamBackNumber(qy) {
return request({
url: `/league/backNumber/teamQuery`,
method: 'get',
params: qy
})
}
......
......@@ -18,23 +18,24 @@
<h3 v-if="b.name">{{ b.name }}</h3>
<h3 v-if="b.cptName">{{ b.cptName }}</h3>
<div v-if="!b.orderType">
<p v-if="b.groupName">{{ language==0?'团队名称':'Team name' }}{{b.groupName}}</p>
<p v-if="b.payTime">{{ language==0?'支付时间':'Payment time' }}{{b.payTime}}</p>
<p class="poPrice">¥ {{b.totalPayAmount}}</p>
<p class="poPrice" v-if="b.totalPayAmount">¥ {{b.totalPayAmount}}</p>
</div>
<!-- 酒店订单-->
<div v-if="b.orderType == 0">
<p>{{b.messageObj.roomInfo}}</p>
<p>{{b.messageObj.roomStayDate}}</p>
<p class="poPrice">¥{{b.total}}</p>
<p class="poPrice" v-if="b.total">¥{{b.total}}</p>
</div>
<!-- 接送订单-->
<div v-if="b.orderType == 1">
<p v-for="(car,index) in b.messageObj.carsList" :key="index" v-show="car.num>0">
<span>{{car.name}}{{car.num}}</span>
</p>
<p class="poPrice">¥{{b.total}}</p>
<p class="poPrice" v-if="b.total">¥{{b.total}}</p>
</div>
<!-- 餐饮订单-->
<div v-if="b.orderType == 2">
......@@ -43,7 +44,7 @@
{{n.name}}({{n.categoryName}}) <span>{{n.num}}</span>
</span>
</p>
<p class="poPrice">¥{{b.total}}</p>
<p class="poPrice" v-if="b.total">¥{{b.total}}</p>
</div>
<div v-if="b.orderType == 3 || b.orderType == 4">
<div>
......@@ -52,7 +53,7 @@
<div>
{{language==0?'预约时间:':''}}{{b.deliveryTime.slice(0,10)}} {{b.messageObj.timePeriod}}
</div>
<p class="poPrice">¥{{b.total}}</p>
<p class="poPrice" v-if="b.total">¥{{b.total}}</p>
</div>
</div>
......@@ -63,7 +64,7 @@
<span class="bigprice">¥{{totalMoney}}</span>
</el-form-item>
<el-form-item :label="`发票形式`" required prop="invoiceForm">
<el-form-item :label="language == 0 ?`发票形式`:'Invoice Form'" required prop="invoiceForm">
<el-radio-group v-model="form.invoiceForm">
<el-radio value="1">{{ language == 0 ? '电子发票' : 'E-invoice' }}</el-radio>
<!-- <el-radio value="2" v-if="kpType.indexOf('2')!=-1">{{ language == 0 ? '纸质普票' : 'Paper-invoice' }}</el-radio>-->
......@@ -87,16 +88,16 @@
<!-- </a>-->
<!-- </div>-->
<!-- </el-form-item>-->
<el-form-item :label="`发票类型`" required prop="invoiceType">
<el-form-item :label="language == 0 ?`发票类型`:'Invoice Type'" required prop="invoiceType">
<el-radio-group v-model="form.invoiceType">
<el-radio value="0">{{ language == 0 ? '企业' : 'Company' }}</el-radio>
<el-radio value="1">{{ language == 0 ? '个人非企业' : 'Individual' }}</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item :label="`发票抬头`" required prop="invoiceTitle">
<el-form-item :label="language == 0 ?`发票抬头`:'Invoice Title'" required prop="invoiceTitle">
<el-input v-model="form.invoiceTitle"/>
</el-form-item>
<el-form-item :label="`税号`" required v-if="form.invoiceType=='0'" prop="invoiceTfn">
<el-form-item :label="language == 0 ?`税号`:'Duty Paragraph'" required v-if="form.invoiceType=='0'" prop="invoiceTfn">
<el-input v-model="form.invoiceTfn"/>
</el-form-item>
<div v-if="form.invoiceForm=='3'&&form.invoiceType=='0'">
......@@ -116,7 +117,7 @@
</el-form>
<div class="tip" v-if="remark">
<label>开票须知:</label>
<label>{{ language == 0 ?'开票须知':'Invoice Notice' }}:</label>
<div>
{{remark}}
</div>
......@@ -208,18 +209,17 @@ let invoiceId
let cptId
onMounted(() => {
if(route.query.orders){
let obj = JSON.parse(decodeURIComponent(route.query.orders)) || []
let obj = JSON.parse(decodeURIComponent(route.query.orders)) || {}
if(obj.cptId){
cptId = obj.cptId
getRemark()
}
if(obj.activeId){
cptId = obj.activeId
getRemark()
}
getRemark()
let arr = []
list.value.push(obj)
for (var bill of list.value) {
for (let bill of list.value) {
if(bill?.message){
bill.messageObj = JSON.parse(bill.message)
}
......@@ -228,7 +228,6 @@ onMounted(() => {
form.value.orders = arr.toString()
}
if(route.query.activeId){
form.value.activeId = route.query.activeId
cptId = route.query.activeId
}
if (route.query.totalMoney) {
......@@ -316,20 +315,13 @@ function getAddress(obj) {
function submit() {
proxy.$refs['formRef'].validate((valid) => {
if(valid){
// if((kpType.value.indexOf('2')>-1 || kpType.value.indexOf('3')>-1)&&!nowAddress.value){
// ElMessage({
// message: language.value==0?'请选择邮寄地址':'Please select address',
// type: 'warning',
// duration: 2000
// })
// return
// }
// 提交确认
ElMessageBox.confirm(language.value == 0 ? '确认提交吗?' : 'Confirm to submit ?', {
confirmButtonText: language.value == 0 ? '确定' : 'Confirm',
cancelButtonText: language.value == 0 ? '取消' : 'Cancel',
type: 'warning'
}).then(() => {
form.value.activeId = cptId
form.value.total = totalMoney.value
form.value.version = 2
if (isEdit.value) {
......@@ -349,12 +341,13 @@ function update() {
})
}
function add() {
if(list.value[0].orderType){
if(list.value[0].orderType||list.value[0].orderType==0){
submitInvoice(form.value).then(res=>{
//返回列表
backList()
})
} else {
console.log(list.value[0].orderType,'2')
submitCptInvoice(form.value).then(res=>{
//返回列表
backList()
......
......@@ -15,9 +15,10 @@
<el-tab-pane :label="language==0?'摄像订单':'Shooting'" name="4"></el-tab-pane>
</el-tabs>
<el-empty :image="`/img/order_no.png`" :image-size="228" v-if="list?.length == 0"/>
<div v-if="activeName=='6'" class="pd20">
<div v-if="activeName=='5'" class="pd20">
<!-- languageSource=='100'-->
</div>
<div v-else-if="activeName=='5'" class="pd20">
<div v-for="b in list" class="item" v-loading="loading">
<div class="title">
<label class="bg-lineg"> {{ language==0?'大赛报名':'REGISTRATION' }} </label>
......@@ -28,8 +29,8 @@
<el-col :lg="9" :md="12" :sm="12" :xs="24">
<div>
<h4 class="m0">{{b.cptName}}</h4>
<p v-if="b.groupName">团队名称{{b.groupName}}</p>
<p v-if="b.payTime">支付时间{{b.payTime}}</p>
<p v-if="b.groupName">{{ language == 0 ?'团队名称':'Team name' }}{{b.groupName}}</p>
<p v-if="b.payTime">{{ language == 0 ?'支付时间':'Pay time'}}{{b.payTime}}</p>
</div>
</el-col>
<el-col :lg="3" :md="6" :sm="6" :xs="6" class="text-center">
......@@ -40,16 +41,16 @@
<el-col :lg="6" :md="16" :sm="16" :xs="16">
<div class="text-right">
<el-button type="primary" plain round v-if="b.isInvoice == '0'&&!b.invoiceId&&b.languageSource=='100'" @click.stop="gokp(b)">
{{ language == 0 ? '开发票' : 'Edit' }}
{{ language == 0 ? '开发票' : 'Invoice' }}
</el-button>
<el-button type="primary" plain round v-if="b.isInvoice == '0'&&b.invoiceId&&b.languageSource=='100'" @click.stop="editkp(b)">
{{ language == 0 ? '重开发票' : 'Edit' }}
{{ language == 0 ? '重开发票' : 'Rebilling' }}
</el-button>
<el-button type="primary" plain round v-if="b.invoiceId&&b.languageSource=='100'"
@click.stop="showDetail(b)">{{ language == 0 ? '查看发票' : 'Detail' }}
</el-button>
<el-button type="primary" v-if="b.isInvoice == '0'&&!b.invoiceId&&b.languageSource!='100'" plain round @click.stop="goSj(b)">
{{ language == 0 ? '开收据' : 'Edit' }}
{{ language == 0 ? '开收据' : 'Receipt' }}
</el-button>
<el-button type="primary" plain round v-if="b.invoiceId&&b.languageSource!='100'"
@click.stop="showSJ(b)">{{ language == 0 ? '查看收据' : 'Detail' }}
......@@ -68,13 +69,13 @@
<label class="orangeTag" v-if="b.orderType == 3"> {{ language==0?'化妆':'MakeUp' }} </label>
<label class="orangeTag" v-if="b.orderType == 4"> {{ language==0?'拍摄':'Shooting ' }} </label>
<span>{{ language==0?'订单编号:':'No.' }} {{ b.id }}</span>
<span class="fr text-warning status">{{b.invoiceStr}}</span>
</div>
<el-row class="pd20 mt10" justify="space-between" align="middle">
<el-col :lg="9" :md="12" :sm="12" :xs="24">
<div v-if="b.orderType == 0">
<h3 class="m0">{{b.name}}</h3>
<p>{{b.messageObj.roomName}}</p>
<p>{{b.messageObj.roomInfo}}</p>
<p>{{b.messageObj.roomType}}</p>
......@@ -142,11 +143,7 @@
<div class="tip mt20">
<label>{{ language==0?'开电子收据须知':'Receipt notice' }}:</label>
<div class="pd10">
1.发票开具时间:提交后,开票时间为开票日起7天(含7天)内;<br/>
2.开具发票后,发票金额不得修改;<br/>
3.未开具发票前,可修改修改公司抬头/税号;<br/>
4.未开票成功,请及时联系客服处理;<br/>
5.发票开具后,将发送至当前登录账号邮箱;
{{remark}}
</div>
</div>
......@@ -157,16 +154,28 @@
<script setup>
import {useStorage} from "@vueuse/core/index";
import useUserStore from "@/store/modules/user";
import {getCanInvoiceBills, getCanInvoiceBm, getInvoiceByActiveId, ppOtaReceipt, getReceipt} from "@/apiPc/booking";
import {
getCanInvoiceBills,
getCanInvoiceBm,
getInvoiceByActiveId,
ppOtaReceipt,
getReceipt,
getBaseInfoByActiveId
} from "@/apiPc/booking";
import {getCurrentInstance, onMounted, ref} from "vue";
import {ElMessage, ElMessageBox} from "element-plus";
import {md5} from "md5js";
import {loginFree,getCanInvoiceTicket} from "@/viewsPc/seat/api";
import {setToken} from "@/viewsPc/seat/utils/local-store";
const router = useRouter()
const route = useRoute()
const language= useStorage('language',0)
const activeName = ref('5')
const lpName = ref('')
const remark = ref('')
const showSJDialog = ref(false)
const user = useUserStore().user || {}
const userStore = useUserStore();
const query = ref({
createById: user.userId,
orderType:'5'
......@@ -188,7 +197,11 @@ const getList = () => {
list.value = res.rows
loading.value = false
})
}else if(query.value.orderType=='6'){
login()
// 用户免登录
}else {
query.value.invoiced = 1
getCanInvoiceBills(query.value).then(res=>{
list.value = res.rows
for (let b of list.value) {
......@@ -199,6 +212,19 @@ const getList = () => {
}
}
const login = async () => {
const userId = userStore.user?.userId;
const sign = md5(`uid=${userId}lgo1acfkw51jfo`, 32);
return loginFree({
userId: userId,
sign,
}).then((res) => {
setToken(res.data.token);
getCanInvoiceTicket().then(res=>{
list.value = res.lists
})
})
}
const handleClick = (e) => {
console.log(e.paneName)
query.value.orderType = e.paneName
......@@ -236,9 +262,17 @@ const showDetail = (item) => {
let nowSj = {}
const goSj = (item) => {
// 电子收据须知 开票人
getremark(item)
showSJDialog.value = true
nowSj = item
}
function getremark(item) {
getBaseInfoByActiveId(item.cptId).then(res=>{
if(res.data){
remark.value = res.data.remarks
}
})
}
const showSJ = (item) => {
// 查看电子收据预览信息
var obj = {
......
......@@ -7,6 +7,12 @@
>
<div style="min-height: 300px">
<div v-if="!type||type==''">
<div @click="type='0'" class="rItem">个人查询</div>
<div @click="type='1'" class="rItem">团队查询</div>
</div>
<div v-if="type=='0'">
<div class="flex mt30">
<el-input :placeholder="language==0?'输入会员号 / 姓名查询':'Enter WDSF MIN / Name to Query'" v-model="query" clearable
@enter="search" @blur="search" @empty="search"/>
......@@ -44,20 +50,54 @@
<el-empty/>
</div>
</div>
<div v-if="type=='1'">
<div class="flex mt20">
<el-input :placeholder="language==0?'请输入代表队名称至少两字符':'Enter the representing team name,At least two characters'"
v-model="query2" clearable
@enter="searchTeam" @blur="searchTeam" @empty="searchTeam"/>
<el-button @click="searchTeam" class="btn-lineG" style="color: #fff">
{{language == 0 ? '查询' : 'Search' }}
</el-button>
</div>
<span class="tip">*模糊查询</span>
<div v-if="teamlist.length>0" class="temell mt20">
<el-collapse v-model="activeNames" accordion>
<el-collapse-item :name="index" :title="team[0][0].groupName" v-for="(team,index) in teamlist" :key="index">
<div class="nowteamItem" v-for="(p,jndex) in team" :key="jndex">
<div class="fontSize14 text-bold">{{p[0].zuInfo}}</div>
<div v-for="f in p" :key="f.id">
<span class="nowName text-primary">{{f.number}}</span>
<span class="mr10">{{ language==0?'选手1':'Name1' }}{{f.maleName}} </span>
<span>{{ language==0?'选手2':'Name2' }}{{f.femaleName}} </span>
</div>
</div>
</el-collapse-item>
</el-collapse>
</div>
<div v-else>
<el-empty/>
</div>
</div>
</div>
</el-dialog>
</template>
<script setup>
import {ref} from "vue";
import {ElMessage} from "element-plus";
import {getBackNumber} from "@/apiPc/common";
import {getBackNumber,getTeamBackNumber} from "@/apiPc/common";
import {useStorage} from "@vueuse/core/index";
const language = useStorage('language', 0)
const show = ref(false)
// const form = ref({})
const list = ref([])
const teamlist = ref([])
const query = ref('')
const query2 = ref('')
const type = ref('')
const activeNames = ref(0)
const search = () => {
if (!query.value) {
ElMessage.warning(language.value == 0 ? '请输入会员号/姓名' : 'Please enter WDSF MIN / Name')
......@@ -74,11 +114,26 @@ const search = () => {
})
}
const searchTeam = () => {
if (!query2.value||query2.value.length < 2) {
ElMessage.warning(language.value == 0 ? '请输入代表队名称至少两字符' : 'Enter the representing team name,At least two characters')
return
}
getTeamBackNumber({query: query2.value}).then(res => {
if (!res.data||res.data.length==0) {
teamlist.value = []
//提示 '未找到结果,请重新查询'
ElMessage.warning(language.value == 0 ? '未找到结果,请重新查询' : 'No result')
return
}
teamlist.value = res.data
})
}
const open = (param) => {
show.value = true
list.value = []
query.value = ''
type.value = ''
}
defineExpose({
open
......@@ -86,6 +141,18 @@ defineExpose({
</script>
<style scoped lang="scss">
.tip{font-size: 12px;margin: 4px 0 0;display: inline-block;}
.rItem{
height: 130px;
cursor: pointer;border: 1px solid #e1e1e1;border-radius: 4px;
width: 350px;text-align: center;line-height: 130px;
padding: 1px; font-size: 30px;color: #fff;
margin: 20px auto;background:linear-gradient(90deg, #8623FC, #453DEA);
&:hover{
background:linear-gradient(90deg, #453DEA, #8623FC);
box-shadow: 0 4px 10px #453DEA;border: none;
}
}
.nowteamItem {
width: 100%;border: 1px solid #c8c5ff; margin-top: 20px;
position: relative;border-radius: 4px;padding: 0 0 20px;
......@@ -115,4 +182,11 @@ defineExpose({
}
}
}
.temell {
.nowteamItem{padding: 10px;margin: 0 0 10px;
.nowName{font-size: 15px;font-weight: bold;margin-right: 10px}
.text-bold{font-weight: bold;}
.fontsize14{font-size: 14px;}
}
}
</style>
......
......@@ -220,7 +220,7 @@
<el-card>
<el-row :gutter="20">
<el-col :lg="8">
<a class="liveImgbox" href="https://wx.vzan.com/live/page/1151815649?v=1720589464698">
<a class="liveImgbox" target="_blank" href="https://wx.vzan.com/live/page/1151815649?v=1720589464698">
<div class="livetimecount" v-if="time>0">
<van-count-down :time="time" format="DD 天 HH 时 mm 分 ss 秒">
<template #default="timeData">
......
......@@ -226,7 +226,7 @@
<el-card>
<el-row :gutter="20">
<el-col :lg="8">
<a class="liveImgbox" href="https://wx.vzan.com/live/page/1151815649?v=1720589464698">
<a class="liveImgbox" target="_blank" href="https://wx.vzan.com/live/page/1151815649?v=1720589464698">
<div class="livetimecount" v-if="time>0">
<van-count-down :time="time" format="DD 天 HH 时 mm 分 ss 秒">
<template #default="timeData">
......
......@@ -52,3 +52,6 @@ export const checkPaySuccess = (data) =>
/** 检查是否支付成功 */
export const payCallback = (data) =>
request("POST", `/api/order/palPayTicket/callback/`, data);
export const getCanInvoiceTicket = (data) =>
request("GET", `/api/order/getOrderInvoiceList`, data);
......
......@@ -82,17 +82,17 @@ export default defineConfig(({ mode, command }) => {
rewrite: (p) => p.replace(/^\/dev-api\/ztx-webSite/, '')
},
'/dev-api': {
// target: 'http://192.168.1.118:8081/',
target: 'http://192.168.1.118:8081/',
// target: 'http://192.168.1.131:8081/',
target: 'https://jijin.wtwuxicenter.com/stage-api',
// target: 'https://jijin.wtwuxicenter.com/stage-api',
// target: 'https://wdsfwuxicenter.com/stage-api/',
changeOrigin: true,
rewrite: (p) => p.replace(/^\/dev-api/, '')
},
'/ticket': {
// target: 'http://192.168.1.118:8098/',
target: 'http://192.168.1.118:8098/',
// target: 'http://192.168.1.131:8081/',
target: 'https://jijin.wtwuxicenter.com/h5',
// target: 'https://jijin.wtwuxicenter.com/h5',
// target: 'https://ticketh5.wdsfwuxicenter.com/h5/stage-api',
changeOrigin: true,
rewrite: (p) => p.replace(/^\/ticket/, '')
......
Styling with Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!