no message
Showing
9 changed files
with
201 additions
and
76 deletions
| ... | @@ -135,7 +135,7 @@ export function getInvoiceByActiveId(query) { | ... | @@ -135,7 +135,7 @@ export function getInvoiceByActiveId(query) { |
| 135 | } | 135 | } |
| 136 | export function getCanInvoiceBills(query) { | 136 | export function getCanInvoiceBills(query) { |
| 137 | return request({ | 137 | return request({ |
| 138 | url: `/ota/norder/list`, | 138 | url: `ota/norder/getOrderInvoiceList`, |
| 139 | method: 'get', | 139 | method: 'get', |
| 140 | params: query | 140 | params: query |
| 141 | }) | 141 | }) |
| ... | @@ -147,6 +147,13 @@ export function getCanInvoiceBm(query) { | ... | @@ -147,6 +147,13 @@ export function getCanInvoiceBm(query) { |
| 147 | params: query | 147 | params: query |
| 148 | }) | 148 | }) |
| 149 | } | 149 | } |
| 150 | export function getCanInvoiceTicket(query) { | ||
| 151 | return request({ | ||
| 152 | url: `/api/order/getOrderInvoiceList`, | ||
| 153 | method: 'get', | ||
| 154 | params: query | ||
| 155 | }) | ||
| 156 | } | ||
| 150 | export function cancelOrder(orderId) { | 157 | export function cancelOrder(orderId) { |
| 151 | return request({ | 158 | return request({ |
| 152 | // url: `/logex/norder/unSubscribeOrderBack/${orderId}`, | 159 | // url: `/logex/norder/unSubscribeOrderBack/${orderId}`, |
| ... | @@ -208,6 +215,13 @@ export function editInvoice(form) { | ... | @@ -208,6 +215,13 @@ export function editInvoice(form) { |
| 208 | data: form | 215 | data: form |
| 209 | }) | 216 | }) |
| 210 | } | 217 | } |
| 218 | export function editCptInvoice(form) { | ||
| 219 | return request({ | ||
| 220 | url: `/cpt/invoice`, | ||
| 221 | method: 'put', | ||
| 222 | data: form | ||
| 223 | }) | ||
| 224 | } | ||
| 211 | export function addAddress(form) { | 225 | export function addAddress(form) { |
| 212 | return request({ | 226 | return request({ |
| 213 | url: `/ota/invoiceInfo`, | 227 | url: `/ota/invoiceInfo`, | ... | ... |
| ... | @@ -119,6 +119,13 @@ export function getBackNumber(qy) { | ... | @@ -119,6 +119,13 @@ export function getBackNumber(qy) { |
| 119 | params: qy | 119 | params: qy |
| 120 | }) | 120 | }) |
| 121 | } | 121 | } |
| 122 | export function getTeamBackNumber(qy) { | ||
| 123 | return request({ | ||
| 124 | url: `/league/backNumber/teamQuery`, | ||
| 125 | method: 'get', | ||
| 126 | params: qy | ||
| 127 | }) | ||
| 128 | } | ||
| 122 | 129 | ||
| 123 | 130 | ||
| 124 | 131 | ... | ... |
| ... | @@ -18,23 +18,24 @@ | ... | @@ -18,23 +18,24 @@ |
| 18 | 18 | ||
| 19 | <h3 v-if="b.name">{{ b.name }}</h3> | 19 | <h3 v-if="b.name">{{ b.name }}</h3> |
| 20 | <h3 v-if="b.cptName">{{ b.cptName }}</h3> | 20 | <h3 v-if="b.cptName">{{ b.cptName }}</h3> |
| 21 | |||
| 21 | <div v-if="!b.orderType"> | 22 | <div v-if="!b.orderType"> |
| 22 | <p v-if="b.groupName">{{ language==0?'团队名称':'Team name' }}:{{b.groupName}}</p> | 23 | <p v-if="b.groupName">{{ language==0?'团队名称':'Team name' }}:{{b.groupName}}</p> |
| 23 | <p v-if="b.payTime">{{ language==0?'支付时间':'Payment time' }}:{{b.payTime}}</p> | 24 | <p v-if="b.payTime">{{ language==0?'支付时间':'Payment time' }}:{{b.payTime}}</p> |
| 24 | <p class="poPrice">¥ {{b.totalPayAmount}}</p> | 25 | <p class="poPrice" v-if="b.totalPayAmount">¥ {{b.totalPayAmount}}</p> |
| 25 | </div> | 26 | </div> |
| 26 | <!-- 酒店订单--> | 27 | <!-- 酒店订单--> |
| 27 | <div v-if="b.orderType == 0"> | 28 | <div v-if="b.orderType == 0"> |
| 28 | <p>{{b.messageObj.roomInfo}}</p> | 29 | <p>{{b.messageObj.roomInfo}}</p> |
| 29 | <p>{{b.messageObj.roomStayDate}}</p> | 30 | <p>{{b.messageObj.roomStayDate}}</p> |
| 30 | <p class="poPrice">¥{{b.total}}</p> | 31 | <p class="poPrice" v-if="b.total">¥{{b.total}}</p> |
| 31 | </div> | 32 | </div> |
| 32 | <!-- 接送订单--> | 33 | <!-- 接送订单--> |
| 33 | <div v-if="b.orderType == 1"> | 34 | <div v-if="b.orderType == 1"> |
| 34 | <p v-for="(car,index) in b.messageObj.carsList" :key="index" v-show="car.num>0"> | 35 | <p v-for="(car,index) in b.messageObj.carsList" :key="index" v-show="car.num>0"> |
| 35 | <span>{{car.name}}:{{car.num}} 辆</span> | 36 | <span>{{car.name}}:{{car.num}} 辆</span> |
| 36 | </p> | 37 | </p> |
| 37 | <p class="poPrice">¥{{b.total}}</p> | 38 | <p class="poPrice" v-if="b.total">¥{{b.total}}</p> |
| 38 | </div> | 39 | </div> |
| 39 | <!-- 餐饮订单--> | 40 | <!-- 餐饮订单--> |
| 40 | <div v-if="b.orderType == 2"> | 41 | <div v-if="b.orderType == 2"> |
| ... | @@ -43,7 +44,7 @@ | ... | @@ -43,7 +44,7 @@ |
| 43 | {{n.name}}({{n.categoryName}}) <span>{{n.num}} 份</span> | 44 | {{n.name}}({{n.categoryName}}) <span>{{n.num}} 份</span> |
| 44 | </span> | 45 | </span> |
| 45 | </p> | 46 | </p> |
| 46 | <p class="poPrice">¥{{b.total}}</p> | 47 | <p class="poPrice" v-if="b.total">¥{{b.total}}</p> |
| 47 | </div> | 48 | </div> |
| 48 | <div v-if="b.orderType == 3 || b.orderType == 4"> | 49 | <div v-if="b.orderType == 3 || b.orderType == 4"> |
| 49 | <div> | 50 | <div> |
| ... | @@ -52,7 +53,7 @@ | ... | @@ -52,7 +53,7 @@ |
| 52 | <div> | 53 | <div> |
| 53 | {{language==0?'预约时间:':''}}{{b.deliveryTime.slice(0,10)}} {{b.messageObj.timePeriod}} | 54 | {{language==0?'预约时间:':''}}{{b.deliveryTime.slice(0,10)}} {{b.messageObj.timePeriod}} |
| 54 | </div> | 55 | </div> |
| 55 | <p class="poPrice">¥{{b.total}}</p> | 56 | <p class="poPrice" v-if="b.total">¥{{b.total}}</p> |
| 56 | </div> | 57 | </div> |
| 57 | </div> | 58 | </div> |
| 58 | 59 | ||
| ... | @@ -63,7 +64,7 @@ | ... | @@ -63,7 +64,7 @@ |
| 63 | <span class="bigprice">¥{{totalMoney}}</span> | 64 | <span class="bigprice">¥{{totalMoney}}</span> |
| 64 | </el-form-item> | 65 | </el-form-item> |
| 65 | 66 | ||
| 66 | <el-form-item :label="`发票形式`" required prop="invoiceForm"> | 67 | <el-form-item :label="language == 0 ?`发票形式`:'Invoice Form'" required prop="invoiceForm"> |
| 67 | <el-radio-group v-model="form.invoiceForm"> | 68 | <el-radio-group v-model="form.invoiceForm"> |
| 68 | <el-radio value="1">{{ language == 0 ? '电子发票' : 'E-invoice' }}</el-radio> | 69 | <el-radio value="1">{{ language == 0 ? '电子发票' : 'E-invoice' }}</el-radio> |
| 69 | <!-- <el-radio value="2" v-if="kpType.indexOf('2')!=-1">{{ language == 0 ? '纸质普票' : 'Paper-invoice' }}</el-radio>--> | 70 | <!-- <el-radio value="2" v-if="kpType.indexOf('2')!=-1">{{ language == 0 ? '纸质普票' : 'Paper-invoice' }}</el-radio>--> |
| ... | @@ -87,16 +88,16 @@ | ... | @@ -87,16 +88,16 @@ |
| 87 | <!-- </a>--> | 88 | <!-- </a>--> |
| 88 | <!-- </div>--> | 89 | <!-- </div>--> |
| 89 | <!-- </el-form-item>--> | 90 | <!-- </el-form-item>--> |
| 90 | <el-form-item :label="`发票类型`" required prop="invoiceType"> | 91 | <el-form-item :label="language == 0 ?`发票类型`:'Invoice Type'" required prop="invoiceType"> |
| 91 | <el-radio-group v-model="form.invoiceType"> | 92 | <el-radio-group v-model="form.invoiceType"> |
| 92 | <el-radio value="0">{{ language == 0 ? '企业' : 'Company' }}</el-radio> | 93 | <el-radio value="0">{{ language == 0 ? '企业' : 'Company' }}</el-radio> |
| 93 | <el-radio value="1">{{ language == 0 ? '个人非企业' : 'Individual' }}</el-radio> | 94 | <el-radio value="1">{{ language == 0 ? '个人非企业' : 'Individual' }}</el-radio> |
| 94 | </el-radio-group> | 95 | </el-radio-group> |
| 95 | </el-form-item> | 96 | </el-form-item> |
| 96 | <el-form-item :label="`发票抬头`" required prop="invoiceTitle"> | 97 | <el-form-item :label="language == 0 ?`发票抬头`:'Invoice Title'" required prop="invoiceTitle"> |
| 97 | <el-input v-model="form.invoiceTitle"/> | 98 | <el-input v-model="form.invoiceTitle"/> |
| 98 | </el-form-item> | 99 | </el-form-item> |
| 99 | <el-form-item :label="`税号`" required v-if="form.invoiceType=='0'" prop="invoiceTfn"> | 100 | <el-form-item :label="language == 0 ?`税号`:'Duty Paragraph'" required v-if="form.invoiceType=='0'" prop="invoiceTfn"> |
| 100 | <el-input v-model="form.invoiceTfn"/> | 101 | <el-input v-model="form.invoiceTfn"/> |
| 101 | </el-form-item> | 102 | </el-form-item> |
| 102 | <div v-if="form.invoiceForm=='3'&&form.invoiceType=='0'"> | 103 | <div v-if="form.invoiceForm=='3'&&form.invoiceType=='0'"> |
| ... | @@ -116,7 +117,7 @@ | ... | @@ -116,7 +117,7 @@ |
| 116 | </el-form> | 117 | </el-form> |
| 117 | 118 | ||
| 118 | <div class="tip" v-if="remark"> | 119 | <div class="tip" v-if="remark"> |
| 119 | <label>开票须知:</label> | 120 | <label>{{ language == 0 ?'开票须知':'Invoice Notice' }}:</label> |
| 120 | <div> | 121 | <div> |
| 121 | {{remark}} | 122 | {{remark}} |
| 122 | </div> | 123 | </div> |
| ... | @@ -208,18 +209,17 @@ let invoiceId | ... | @@ -208,18 +209,17 @@ let invoiceId |
| 208 | let cptId | 209 | let cptId |
| 209 | onMounted(() => { | 210 | onMounted(() => { |
| 210 | if(route.query.orders){ | 211 | if(route.query.orders){ |
| 211 | let obj = JSON.parse(decodeURIComponent(route.query.orders)) || [] | 212 | let obj = JSON.parse(decodeURIComponent(route.query.orders)) || {} |
| 212 | if(obj.cptId){ | 213 | if(obj.cptId){ |
| 213 | cptId = obj.cptId | 214 | cptId = obj.cptId |
| 214 | getRemark() | ||
| 215 | } | 215 | } |
| 216 | if(obj.activeId){ | 216 | if(obj.activeId){ |
| 217 | cptId = obj.activeId | 217 | cptId = obj.activeId |
| 218 | getRemark() | ||
| 219 | } | 218 | } |
| 219 | getRemark() | ||
| 220 | let arr = [] | 220 | let arr = [] |
| 221 | list.value.push(obj) | 221 | list.value.push(obj) |
| 222 | for (var bill of list.value) { | 222 | for (let bill of list.value) { |
| 223 | if(bill?.message){ | 223 | if(bill?.message){ |
| 224 | bill.messageObj = JSON.parse(bill.message) | 224 | bill.messageObj = JSON.parse(bill.message) |
| 225 | } | 225 | } |
| ... | @@ -228,7 +228,6 @@ onMounted(() => { | ... | @@ -228,7 +228,6 @@ onMounted(() => { |
| 228 | form.value.orders = arr.toString() | 228 | form.value.orders = arr.toString() |
| 229 | } | 229 | } |
| 230 | if(route.query.activeId){ | 230 | if(route.query.activeId){ |
| 231 | form.value.activeId = route.query.activeId | ||
| 232 | cptId = route.query.activeId | 231 | cptId = route.query.activeId |
| 233 | } | 232 | } |
| 234 | if (route.query.totalMoney) { | 233 | if (route.query.totalMoney) { |
| ... | @@ -316,20 +315,13 @@ function getAddress(obj) { | ... | @@ -316,20 +315,13 @@ function getAddress(obj) { |
| 316 | function submit() { | 315 | function submit() { |
| 317 | proxy.$refs['formRef'].validate((valid) => { | 316 | proxy.$refs['formRef'].validate((valid) => { |
| 318 | if(valid){ | 317 | if(valid){ |
| 319 | // if((kpType.value.indexOf('2')>-1 || kpType.value.indexOf('3')>-1)&&!nowAddress.value){ | ||
| 320 | // ElMessage({ | ||
| 321 | // message: language.value==0?'请选择邮寄地址':'Please select address', | ||
| 322 | // type: 'warning', | ||
| 323 | // duration: 2000 | ||
| 324 | // }) | ||
| 325 | // return | ||
| 326 | // } | ||
| 327 | // 提交确认 | 318 | // 提交确认 |
| 328 | ElMessageBox.confirm(language.value == 0 ? '确认提交吗?' : 'Confirm to submit ?', { | 319 | ElMessageBox.confirm(language.value == 0 ? '确认提交吗?' : 'Confirm to submit ?', { |
| 329 | confirmButtonText: language.value == 0 ? '确定' : 'Confirm', | 320 | confirmButtonText: language.value == 0 ? '确定' : 'Confirm', |
| 330 | cancelButtonText: language.value == 0 ? '取消' : 'Cancel', | 321 | cancelButtonText: language.value == 0 ? '取消' : 'Cancel', |
| 331 | type: 'warning' | 322 | type: 'warning' |
| 332 | }).then(() => { | 323 | }).then(() => { |
| 324 | form.value.activeId = cptId | ||
| 333 | form.value.total = totalMoney.value | 325 | form.value.total = totalMoney.value |
| 334 | form.value.version = 2 | 326 | form.value.version = 2 |
| 335 | if (isEdit.value) { | 327 | if (isEdit.value) { |
| ... | @@ -349,12 +341,13 @@ function update() { | ... | @@ -349,12 +341,13 @@ function update() { |
| 349 | }) | 341 | }) |
| 350 | } | 342 | } |
| 351 | function add() { | 343 | function add() { |
| 352 | if(list.value[0].orderType){ | 344 | if(list.value[0].orderType||list.value[0].orderType==0){ |
| 353 | submitInvoice(form.value).then(res=>{ | 345 | submitInvoice(form.value).then(res=>{ |
| 354 | //返回列表 | 346 | //返回列表 |
| 355 | backList() | 347 | backList() |
| 356 | }) | 348 | }) |
| 357 | } else { | 349 | } else { |
| 350 | console.log(list.value[0].orderType,'2') | ||
| 358 | submitCptInvoice(form.value).then(res=>{ | 351 | submitCptInvoice(form.value).then(res=>{ |
| 359 | //返回列表 | 352 | //返回列表 |
| 360 | backList() | 353 | backList() | ... | ... |
| ... | @@ -15,9 +15,10 @@ | ... | @@ -15,9 +15,10 @@ |
| 15 | <el-tab-pane :label="language==0?'摄像订单':'Shooting'" name="4"></el-tab-pane> | 15 | <el-tab-pane :label="language==0?'摄像订单':'Shooting'" name="4"></el-tab-pane> |
| 16 | </el-tabs> | 16 | </el-tabs> |
| 17 | <el-empty :image="`/img/order_no.png`" :image-size="228" v-if="list?.length == 0"/> | 17 | <el-empty :image="`/img/order_no.png`" :image-size="228" v-if="list?.length == 0"/> |
| 18 | <div v-if="activeName=='6'" class="pd20"> | ||
| 18 | 19 | ||
| 19 | <div v-if="activeName=='5'" class="pd20"> | 20 | </div> |
| 20 | <!-- languageSource=='100'--> | 21 | <div v-else-if="activeName=='5'" class="pd20"> |
| 21 | <div v-for="b in list" class="item" v-loading="loading"> | 22 | <div v-for="b in list" class="item" v-loading="loading"> |
| 22 | <div class="title"> | 23 | <div class="title"> |
| 23 | <label class="bg-lineg"> {{ language==0?'大赛报名':'REGISTRATION' }} </label> | 24 | <label class="bg-lineg"> {{ language==0?'大赛报名':'REGISTRATION' }} </label> |
| ... | @@ -28,8 +29,8 @@ | ... | @@ -28,8 +29,8 @@ |
| 28 | <el-col :lg="9" :md="12" :sm="12" :xs="24"> | 29 | <el-col :lg="9" :md="12" :sm="12" :xs="24"> |
| 29 | <div> | 30 | <div> |
| 30 | <h4 class="m0">{{b.cptName}}</h4> | 31 | <h4 class="m0">{{b.cptName}}</h4> |
| 31 | <p v-if="b.groupName">团队名称:{{b.groupName}}</p> | 32 | <p v-if="b.groupName">{{ language == 0 ?'团队名称':'Team name' }}:{{b.groupName}}</p> |
| 32 | <p v-if="b.payTime">支付时间:{{b.payTime}}</p> | 33 | <p v-if="b.payTime">{{ language == 0 ?'支付时间':'Pay time'}}:{{b.payTime}}</p> |
| 33 | </div> | 34 | </div> |
| 34 | </el-col> | 35 | </el-col> |
| 35 | <el-col :lg="3" :md="6" :sm="6" :xs="6" class="text-center"> | 36 | <el-col :lg="3" :md="6" :sm="6" :xs="6" class="text-center"> |
| ... | @@ -40,16 +41,16 @@ | ... | @@ -40,16 +41,16 @@ |
| 40 | <el-col :lg="6" :md="16" :sm="16" :xs="16"> | 41 | <el-col :lg="6" :md="16" :sm="16" :xs="16"> |
| 41 | <div class="text-right"> | 42 | <div class="text-right"> |
| 42 | <el-button type="primary" plain round v-if="b.isInvoice == '0'&&!b.invoiceId&&b.languageSource=='100'" @click.stop="gokp(b)"> | 43 | <el-button type="primary" plain round v-if="b.isInvoice == '0'&&!b.invoiceId&&b.languageSource=='100'" @click.stop="gokp(b)"> |
| 43 | {{ language == 0 ? '开发票' : 'Edit' }} | 44 | {{ language == 0 ? '开发票' : 'Invoice' }} |
| 44 | </el-button> | 45 | </el-button> |
| 45 | <el-button type="primary" plain round v-if="b.isInvoice == '0'&&b.invoiceId&&b.languageSource=='100'" @click.stop="editkp(b)"> | 46 | <el-button type="primary" plain round v-if="b.isInvoice == '0'&&b.invoiceId&&b.languageSource=='100'" @click.stop="editkp(b)"> |
| 46 | {{ language == 0 ? '重开发票' : 'Edit' }} | 47 | {{ language == 0 ? '重开发票' : 'Rebilling' }} |
| 47 | </el-button> | 48 | </el-button> |
| 48 | <el-button type="primary" plain round v-if="b.invoiceId&&b.languageSource=='100'" | 49 | <el-button type="primary" plain round v-if="b.invoiceId&&b.languageSource=='100'" |
| 49 | @click.stop="showDetail(b)">{{ language == 0 ? '查看发票' : 'Detail' }} | 50 | @click.stop="showDetail(b)">{{ language == 0 ? '查看发票' : 'Detail' }} |
| 50 | </el-button> | 51 | </el-button> |
| 51 | <el-button type="primary" v-if="b.isInvoice == '0'&&!b.invoiceId&&b.languageSource!='100'" plain round @click.stop="goSj(b)"> | 52 | <el-button type="primary" v-if="b.isInvoice == '0'&&!b.invoiceId&&b.languageSource!='100'" plain round @click.stop="goSj(b)"> |
| 52 | {{ language == 0 ? '开收据' : 'Edit' }} | 53 | {{ language == 0 ? '开收据' : 'Receipt' }} |
| 53 | </el-button> | 54 | </el-button> |
| 54 | <el-button type="primary" plain round v-if="b.invoiceId&&b.languageSource!='100'" | 55 | <el-button type="primary" plain round v-if="b.invoiceId&&b.languageSource!='100'" |
| 55 | @click.stop="showSJ(b)">{{ language == 0 ? '查看收据' : 'Detail' }} | 56 | @click.stop="showSJ(b)">{{ language == 0 ? '查看收据' : 'Detail' }} |
| ... | @@ -68,13 +69,13 @@ | ... | @@ -68,13 +69,13 @@ |
| 68 | <label class="orangeTag" v-if="b.orderType == 3"> {{ language==0?'化妆':'MakeUp' }} </label> | 69 | <label class="orangeTag" v-if="b.orderType == 3"> {{ language==0?'化妆':'MakeUp' }} </label> |
| 69 | <label class="orangeTag" v-if="b.orderType == 4"> {{ language==0?'拍摄':'Shooting ' }} </label> | 70 | <label class="orangeTag" v-if="b.orderType == 4"> {{ language==0?'拍摄':'Shooting ' }} </label> |
| 70 | <span>{{ language==0?'订单编号:':'No.' }} {{ b.id }}</span> | 71 | <span>{{ language==0?'订单编号:':'No.' }} {{ b.id }}</span> |
| 71 | |||
| 72 | <span class="fr text-warning status">{{b.invoiceStr}}</span> | 72 | <span class="fr text-warning status">{{b.invoiceStr}}</span> |
| 73 | </div> | 73 | </div> |
| 74 | 74 | ||
| 75 | <el-row class="pd20 mt10" justify="space-between" align="middle"> | 75 | <el-row class="pd20 mt10" justify="space-between" align="middle"> |
| 76 | <el-col :lg="9" :md="12" :sm="12" :xs="24"> | 76 | <el-col :lg="9" :md="12" :sm="12" :xs="24"> |
| 77 | <div v-if="b.orderType == 0"> | 77 | <div v-if="b.orderType == 0"> |
| 78 | <h3 class="m0">{{b.name}}</h3> | ||
| 78 | <p>{{b.messageObj.roomName}}</p> | 79 | <p>{{b.messageObj.roomName}}</p> |
| 79 | <p>{{b.messageObj.roomInfo}}</p> | 80 | <p>{{b.messageObj.roomInfo}}</p> |
| 80 | <p>{{b.messageObj.roomType}}</p> | 81 | <p>{{b.messageObj.roomType}}</p> |
| ... | @@ -142,11 +143,7 @@ | ... | @@ -142,11 +143,7 @@ |
| 142 | <div class="tip mt20"> | 143 | <div class="tip mt20"> |
| 143 | <label>{{ language==0?'开电子收据须知':'Receipt notice' }}:</label> | 144 | <label>{{ language==0?'开电子收据须知':'Receipt notice' }}:</label> |
| 144 | <div class="pd10"> | 145 | <div class="pd10"> |
| 145 | 1.发票开具时间:提交后,开票时间为开票日起7天(含7天)内;<br/> | 146 | {{remark}} |
| 146 | 2.开具发票后,发票金额不得修改;<br/> | ||
| 147 | 3.未开具发票前,可修改修改公司抬头/税号;<br/> | ||
| 148 | 4.未开票成功,请及时联系客服处理;<br/> | ||
| 149 | 5.发票开具后,将发送至当前登录账号邮箱; | ||
| 150 | </div> | 147 | </div> |
| 151 | </div> | 148 | </div> |
| 152 | 149 | ||
| ... | @@ -157,16 +154,28 @@ | ... | @@ -157,16 +154,28 @@ |
| 157 | <script setup> | 154 | <script setup> |
| 158 | import {useStorage} from "@vueuse/core/index"; | 155 | import {useStorage} from "@vueuse/core/index"; |
| 159 | import useUserStore from "@/store/modules/user"; | 156 | import useUserStore from "@/store/modules/user"; |
| 160 | import {getCanInvoiceBills, getCanInvoiceBm, getInvoiceByActiveId, ppOtaReceipt, getReceipt} from "@/apiPc/booking"; | 157 | import { |
| 158 | getCanInvoiceBills, | ||
| 159 | getCanInvoiceBm, | ||
| 160 | getInvoiceByActiveId, | ||
| 161 | ppOtaReceipt, | ||
| 162 | getReceipt, | ||
| 163 | getBaseInfoByActiveId | ||
| 164 | } from "@/apiPc/booking"; | ||
| 161 | import {getCurrentInstance, onMounted, ref} from "vue"; | 165 | import {getCurrentInstance, onMounted, ref} from "vue"; |
| 162 | import {ElMessage, ElMessageBox} from "element-plus"; | 166 | import {ElMessage, ElMessageBox} from "element-plus"; |
| 167 | import {md5} from "md5js"; | ||
| 168 | import {loginFree,getCanInvoiceTicket} from "@/viewsPc/seat/api"; | ||
| 169 | import {setToken} from "@/viewsPc/seat/utils/local-store"; | ||
| 163 | const router = useRouter() | 170 | const router = useRouter() |
| 164 | const route = useRoute() | 171 | const route = useRoute() |
| 165 | const language= useStorage('language',0) | 172 | const language= useStorage('language',0) |
| 166 | const activeName = ref('5') | 173 | const activeName = ref('5') |
| 167 | const lpName = ref('') | 174 | const lpName = ref('') |
| 175 | const remark = ref('') | ||
| 168 | const showSJDialog = ref(false) | 176 | const showSJDialog = ref(false) |
| 169 | const user = useUserStore().user || {} | 177 | const user = useUserStore().user || {} |
| 178 | const userStore = useUserStore(); | ||
| 170 | const query = ref({ | 179 | const query = ref({ |
| 171 | createById: user.userId, | 180 | createById: user.userId, |
| 172 | orderType:'5' | 181 | orderType:'5' |
| ... | @@ -188,7 +197,11 @@ const getList = () => { | ... | @@ -188,7 +197,11 @@ const getList = () => { |
| 188 | list.value = res.rows | 197 | list.value = res.rows |
| 189 | loading.value = false | 198 | loading.value = false |
| 190 | }) | 199 | }) |
| 200 | }else if(query.value.orderType=='6'){ | ||
| 201 | login() | ||
| 202 | // 用户免登录 | ||
| 191 | }else { | 203 | }else { |
| 204 | query.value.invoiced = 1 | ||
| 192 | getCanInvoiceBills(query.value).then(res=>{ | 205 | getCanInvoiceBills(query.value).then(res=>{ |
| 193 | list.value = res.rows | 206 | list.value = res.rows |
| 194 | for (let b of list.value) { | 207 | for (let b of list.value) { |
| ... | @@ -199,6 +212,19 @@ const getList = () => { | ... | @@ -199,6 +212,19 @@ const getList = () => { |
| 199 | } | 212 | } |
| 200 | 213 | ||
| 201 | } | 214 | } |
| 215 | const login = async () => { | ||
| 216 | const userId = userStore.user?.userId; | ||
| 217 | const sign = md5(`uid=${userId}lgo1acfkw51jfo`, 32); | ||
| 218 | return loginFree({ | ||
| 219 | userId: userId, | ||
| 220 | sign, | ||
| 221 | }).then((res) => { | ||
| 222 | setToken(res.data.token); | ||
| 223 | getCanInvoiceTicket().then(res=>{ | ||
| 224 | list.value = res.lists | ||
| 225 | }) | ||
| 226 | }) | ||
| 227 | } | ||
| 202 | const handleClick = (e) => { | 228 | const handleClick = (e) => { |
| 203 | console.log(e.paneName) | 229 | console.log(e.paneName) |
| 204 | query.value.orderType = e.paneName | 230 | query.value.orderType = e.paneName |
| ... | @@ -236,9 +262,17 @@ const showDetail = (item) => { | ... | @@ -236,9 +262,17 @@ const showDetail = (item) => { |
| 236 | let nowSj = {} | 262 | let nowSj = {} |
| 237 | const goSj = (item) => { | 263 | const goSj = (item) => { |
| 238 | // 电子收据须知 开票人 | 264 | // 电子收据须知 开票人 |
| 265 | getremark(item) | ||
| 239 | showSJDialog.value = true | 266 | showSJDialog.value = true |
| 240 | nowSj = item | 267 | nowSj = item |
| 241 | } | 268 | } |
| 269 | function getremark(item) { | ||
| 270 | getBaseInfoByActiveId(item.cptId).then(res=>{ | ||
| 271 | if(res.data){ | ||
| 272 | remark.value = res.data.remarks | ||
| 273 | } | ||
| 274 | }) | ||
| 275 | } | ||
| 242 | const showSJ = (item) => { | 276 | const showSJ = (item) => { |
| 243 | // 查看电子收据预览信息 | 277 | // 查看电子收据预览信息 |
| 244 | var obj = { | 278 | var obj = { | ... | ... |
| ... | @@ -7,41 +7,77 @@ | ... | @@ -7,41 +7,77 @@ |
| 7 | > | 7 | > |
| 8 | <div style="min-height: 300px"> | 8 | <div style="min-height: 300px"> |
| 9 | 9 | ||
| 10 | <div class="flex mt30"> | 10 | <div v-if="!type||type==''"> |
| 11 | <el-input :placeholder="language==0?'输入会员号 / 姓名查询':'Enter WDSF MIN / Name to Query'" v-model="query" clearable | 11 | <div @click="type='0'" class="rItem">个人查询</div> |
| 12 | @enter="search" @blur="search" @empty="search"/> | 12 | <div @click="type='1'" class="rItem">团队查询</div> |
| 13 | <el-button @click="search" class="btn-lineG" style="color: #fff">{{ | ||
| 14 | language == 0 ? '查询' : 'Search' | ||
| 15 | }} | ||
| 16 | </el-button> | ||
| 17 | </div> | 13 | </div> |
| 18 | 14 | ||
| 19 | <div v-if="list.length>0"> | 15 | <div v-if="type=='0'"> |
| 20 | <div class="nowteamItem" v-for="(form, index) in list" :key="index"> | 16 | <div class="flex mt30"> |
| 21 | <div class="info"> | 17 | <el-input :placeholder="language==0?'输入会员号 / 姓名查询':'Enter WDSF MIN / Name to Query'" v-model="query" clearable |
| 22 | <div class="nowName text-center"> | 18 | @enter="search" @blur="search" @empty="search"/> |
| 23 | <span class="text-primary">{{ form.number }}</span> | 19 | <el-button @click="search" class="btn-lineG" style="color: #fff">{{ |
| 24 | </div> | 20 | language == 0 ? '查询' : 'Search' |
| 25 | <div> | 21 | }} |
| 26 | <label>{{ language==0?'选手1':'Name1' }}:</label>{{ form.maleName }} | 22 | </el-button> |
| 27 | <span v-if="form.maleWdsf"> - {{ form.maleWdsf }}</span> | 23 | </div> |
| 28 | </div> | 24 | |
| 29 | <div> | 25 | <div v-if="list.length>0"> |
| 30 | <label>{{ language==0?'选手2':'Name2' }}:</label>{{ form.femaleName }} | 26 | <div class="nowteamItem" v-for="(form, index) in list" :key="index"> |
| 31 | <span v-if="form.femaleWdsf"> - {{ form.femaleWdsf }}</span> | 27 | <div class="info"> |
| 32 | </div> | 28 | <div class="nowName text-center"> |
| 33 | <div> | 29 | <span class="text-primary">{{ form.number }}</span> |
| 34 | <label>{{ language==0?'代表队':'Represent' }}:</label> | 30 | </div> |
| 35 | {{ form.groupName }} | 31 | <div> |
| 36 | </div> | 32 | <label>{{ language==0?'选手1':'Name1' }}:</label>{{ form.maleName }} |
| 37 | <div v-if="form.zuInfo"> | 33 | <span v-if="form.maleWdsf"> - {{ form.maleWdsf }}</span> |
| 38 | <label> {{ language==0?'组别':'Event' }}:</label>{{ form.zuInfo }} | 34 | </div> |
| 35 | <div> | ||
| 36 | <label>{{ language==0?'选手2':'Name2' }}:</label>{{ form.femaleName }} | ||
| 37 | <span v-if="form.femaleWdsf"> - {{ form.femaleWdsf }}</span> | ||
| 38 | </div> | ||
| 39 | <div> | ||
| 40 | <label>{{ language==0?'代表队':'Represent' }}:</label> | ||
| 41 | {{ form.groupName }} | ||
| 42 | </div> | ||
| 43 | <div v-if="form.zuInfo"> | ||
| 44 | <label> {{ language==0?'组别':'Event' }}:</label>{{ form.zuInfo }} | ||
| 45 | </div> | ||
| 39 | </div> | 46 | </div> |
| 40 | </div> | 47 | </div> |
| 41 | </div> | 48 | </div> |
| 49 | <div v-else> | ||
| 50 | <el-empty/> | ||
| 51 | </div> | ||
| 42 | </div> | 52 | </div> |
| 43 | <div v-else> | 53 | <div v-if="type=='1'"> |
| 44 | <el-empty/> | 54 | <div class="flex mt20"> |
| 55 | <el-input :placeholder="language==0?'请输入代表队名称至少两字符':'Enter the representing team name,At least two characters'" | ||
| 56 | v-model="query2" clearable | ||
| 57 | @enter="searchTeam" @blur="searchTeam" @empty="searchTeam"/> | ||
| 58 | <el-button @click="searchTeam" class="btn-lineG" style="color: #fff"> | ||
| 59 | {{language == 0 ? '查询' : 'Search' }} | ||
| 60 | </el-button> | ||
| 61 | </div> | ||
| 62 | <span class="tip">*模糊查询</span> | ||
| 63 | |||
| 64 | <div v-if="teamlist.length>0" class="temell mt20"> | ||
| 65 | <el-collapse v-model="activeNames" accordion> | ||
| 66 | <el-collapse-item :name="index" :title="team[0][0].groupName" v-for="(team,index) in teamlist" :key="index"> | ||
| 67 | <div class="nowteamItem" v-for="(p,jndex) in team" :key="jndex"> | ||
| 68 | <div class="fontSize14 text-bold">{{p[0].zuInfo}}</div> | ||
| 69 | <div v-for="f in p" :key="f.id"> | ||
| 70 | <span class="nowName text-primary">{{f.number}}</span> | ||
| 71 | <span class="mr10">{{ language==0?'选手1':'Name1' }}:{{f.maleName}} </span> | ||
| 72 | <span>{{ language==0?'选手2':'Name2' }}:{{f.femaleName}} </span> | ||
| 73 | </div> | ||
| 74 | </div> | ||
| 75 | </el-collapse-item> | ||
| 76 | </el-collapse> | ||
| 77 | </div> | ||
| 78 | <div v-else> | ||
| 79 | <el-empty/> | ||
| 80 | </div> | ||
| 45 | </div> | 81 | </div> |
| 46 | </div> | 82 | </div> |
| 47 | </el-dialog> | 83 | </el-dialog> |
| ... | @@ -50,14 +86,18 @@ | ... | @@ -50,14 +86,18 @@ |
| 50 | <script setup> | 86 | <script setup> |
| 51 | import {ref} from "vue"; | 87 | import {ref} from "vue"; |
| 52 | import {ElMessage} from "element-plus"; | 88 | import {ElMessage} from "element-plus"; |
| 53 | import {getBackNumber} from "@/apiPc/common"; | 89 | import {getBackNumber,getTeamBackNumber} from "@/apiPc/common"; |
| 54 | import {useStorage} from "@vueuse/core/index"; | 90 | import {useStorage} from "@vueuse/core/index"; |
| 55 | 91 | ||
| 56 | const language = useStorage('language', 0) | 92 | const language = useStorage('language', 0) |
| 57 | const show = ref(false) | 93 | const show = ref(false) |
| 58 | // const form = ref({}) | 94 | // const form = ref({}) |
| 59 | const list = ref([]) | 95 | const list = ref([]) |
| 96 | const teamlist = ref([]) | ||
| 60 | const query = ref('') | 97 | const query = ref('') |
| 98 | const query2 = ref('') | ||
| 99 | const type = ref('') | ||
| 100 | const activeNames = ref(0) | ||
| 61 | const search = () => { | 101 | const search = () => { |
| 62 | if (!query.value) { | 102 | if (!query.value) { |
| 63 | ElMessage.warning(language.value == 0 ? '请输入会员号/姓名' : 'Please enter WDSF MIN / Name') | 103 | ElMessage.warning(language.value == 0 ? '请输入会员号/姓名' : 'Please enter WDSF MIN / Name') |
| ... | @@ -74,11 +114,26 @@ const search = () => { | ... | @@ -74,11 +114,26 @@ const search = () => { |
| 74 | }) | 114 | }) |
| 75 | 115 | ||
| 76 | } | 116 | } |
| 77 | 117 | const searchTeam = () => { | |
| 118 | if (!query2.value||query2.value.length < 2) { | ||
| 119 | ElMessage.warning(language.value == 0 ? '请输入代表队名称至少两字符' : 'Enter the representing team name,At least two characters') | ||
| 120 | return | ||
| 121 | } | ||
| 122 | getTeamBackNumber({query: query2.value}).then(res => { | ||
| 123 | if (!res.data||res.data.length==0) { | ||
| 124 | teamlist.value = [] | ||
| 125 | //提示 '未找到结果,请重新查询' | ||
| 126 | ElMessage.warning(language.value == 0 ? '未找到结果,请重新查询' : 'No result') | ||
| 127 | return | ||
| 128 | } | ||
| 129 | teamlist.value = res.data | ||
| 130 | }) | ||
| 131 | } | ||
| 78 | const open = (param) => { | 132 | const open = (param) => { |
| 79 | show.value = true | 133 | show.value = true |
| 80 | list.value = [] | 134 | list.value = [] |
| 81 | query.value = '' | 135 | query.value = '' |
| 136 | type.value = '' | ||
| 82 | } | 137 | } |
| 83 | defineExpose({ | 138 | defineExpose({ |
| 84 | open | 139 | open |
| ... | @@ -86,6 +141,18 @@ defineExpose({ | ... | @@ -86,6 +141,18 @@ defineExpose({ |
| 86 | </script> | 141 | </script> |
| 87 | 142 | ||
| 88 | <style scoped lang="scss"> | 143 | <style scoped lang="scss"> |
| 144 | .tip{font-size: 12px;margin: 4px 0 0;display: inline-block;} | ||
| 145 | .rItem{ | ||
| 146 | height: 130px; | ||
| 147 | cursor: pointer;border: 1px solid #e1e1e1;border-radius: 4px; | ||
| 148 | width: 350px;text-align: center;line-height: 130px; | ||
| 149 | padding: 1px; font-size: 30px;color: #fff; | ||
| 150 | margin: 20px auto;background:linear-gradient(90deg, #8623FC, #453DEA); | ||
| 151 | &:hover{ | ||
| 152 | background:linear-gradient(90deg, #453DEA, #8623FC); | ||
| 153 | box-shadow: 0 4px 10px #453DEA;border: none; | ||
| 154 | } | ||
| 155 | } | ||
| 89 | .nowteamItem { | 156 | .nowteamItem { |
| 90 | width: 100%;border: 1px solid #c8c5ff; margin-top: 20px; | 157 | width: 100%;border: 1px solid #c8c5ff; margin-top: 20px; |
| 91 | position: relative;border-radius: 4px;padding: 0 0 20px; | 158 | position: relative;border-radius: 4px;padding: 0 0 20px; |
| ... | @@ -115,4 +182,11 @@ defineExpose({ | ... | @@ -115,4 +182,11 @@ defineExpose({ |
| 115 | } | 182 | } |
| 116 | } | 183 | } |
| 117 | } | 184 | } |
| 185 | .temell { | ||
| 186 | .nowteamItem{padding: 10px;margin: 0 0 10px; | ||
| 187 | .nowName{font-size: 15px;font-weight: bold;margin-right: 10px} | ||
| 188 | .text-bold{font-weight: bold;} | ||
| 189 | .fontsize14{font-size: 14px;} | ||
| 190 | } | ||
| 191 | } | ||
| 118 | </style> | 192 | </style> | ... | ... |
| ... | @@ -220,7 +220,7 @@ | ... | @@ -220,7 +220,7 @@ |
| 220 | <el-card> | 220 | <el-card> |
| 221 | <el-row :gutter="20"> | 221 | <el-row :gutter="20"> |
| 222 | <el-col :lg="8"> | 222 | <el-col :lg="8"> |
| 223 | <a class="liveImgbox" href="https://wx.vzan.com/live/page/1151815649?v=1720589464698"> | 223 | <a class="liveImgbox" target="_blank" href="https://wx.vzan.com/live/page/1151815649?v=1720589464698"> |
| 224 | <div class="livetimecount" v-if="time>0"> | 224 | <div class="livetimecount" v-if="time>0"> |
| 225 | <van-count-down :time="time" format="DD 天 HH 时 mm 分 ss 秒"> | 225 | <van-count-down :time="time" format="DD 天 HH 时 mm 分 ss 秒"> |
| 226 | <template #default="timeData"> | 226 | <template #default="timeData"> | ... | ... |
| ... | @@ -226,7 +226,7 @@ | ... | @@ -226,7 +226,7 @@ |
| 226 | <el-card> | 226 | <el-card> |
| 227 | <el-row :gutter="20"> | 227 | <el-row :gutter="20"> |
| 228 | <el-col :lg="8"> | 228 | <el-col :lg="8"> |
| 229 | <a class="liveImgbox" href="https://wx.vzan.com/live/page/1151815649?v=1720589464698"> | 229 | <a class="liveImgbox" target="_blank" href="https://wx.vzan.com/live/page/1151815649?v=1720589464698"> |
| 230 | <div class="livetimecount" v-if="time>0"> | 230 | <div class="livetimecount" v-if="time>0"> |
| 231 | <van-count-down :time="time" format="DD 天 HH 时 mm 分 ss 秒"> | 231 | <van-count-down :time="time" format="DD 天 HH 时 mm 分 ss 秒"> |
| 232 | <template #default="timeData"> | 232 | <template #default="timeData"> | ... | ... |
| ... | @@ -52,3 +52,6 @@ export const checkPaySuccess = (data) => | ... | @@ -52,3 +52,6 @@ export const checkPaySuccess = (data) => |
| 52 | /** 检查是否支付成功 */ | 52 | /** 检查是否支付成功 */ |
| 53 | export const payCallback = (data) => | 53 | export const payCallback = (data) => |
| 54 | request("POST", `/api/order/palPayTicket/callback/`, data); | 54 | request("POST", `/api/order/palPayTicket/callback/`, data); |
| 55 | export const getCanInvoiceTicket = (data) => | ||
| 56 | request("GET", `/api/order/getOrderInvoiceList`, data); | ||
| 57 | ... | ... |
| ... | @@ -82,17 +82,17 @@ export default defineConfig(({ mode, command }) => { | ... | @@ -82,17 +82,17 @@ export default defineConfig(({ mode, command }) => { |
| 82 | rewrite: (p) => p.replace(/^\/dev-api\/ztx-webSite/, '') | 82 | rewrite: (p) => p.replace(/^\/dev-api\/ztx-webSite/, '') |
| 83 | }, | 83 | }, |
| 84 | '/dev-api': { | 84 | '/dev-api': { |
| 85 | // target: 'http://192.168.1.118:8081/', | 85 | target: 'http://192.168.1.118:8081/', |
| 86 | // target: 'http://192.168.1.131:8081/', | 86 | // target: 'http://192.168.1.131:8081/', |
| 87 | target: 'https://jijin.wtwuxicenter.com/stage-api', | 87 | // target: 'https://jijin.wtwuxicenter.com/stage-api', |
| 88 | // target: 'https://wdsfwuxicenter.com/stage-api/', | 88 | // target: 'https://wdsfwuxicenter.com/stage-api/', |
| 89 | changeOrigin: true, | 89 | changeOrigin: true, |
| 90 | rewrite: (p) => p.replace(/^\/dev-api/, '') | 90 | rewrite: (p) => p.replace(/^\/dev-api/, '') |
| 91 | }, | 91 | }, |
| 92 | '/ticket': { | 92 | '/ticket': { |
| 93 | // target: 'http://192.168.1.118:8098/', | 93 | target: 'http://192.168.1.118:8098/', |
| 94 | // target: 'http://192.168.1.131:8081/', | 94 | // target: 'http://192.168.1.131:8081/', |
| 95 | target: 'https://jijin.wtwuxicenter.com/h5', | 95 | // target: 'https://jijin.wtwuxicenter.com/h5', |
| 96 | // target: 'https://ticketh5.wdsfwuxicenter.com/h5/stage-api', | 96 | // target: 'https://ticketh5.wdsfwuxicenter.com/h5/stage-api', |
| 97 | changeOrigin: true, | 97 | changeOrigin: true, |
| 98 | rewrite: (p) => p.replace(/^\/ticket/, '') | 98 | rewrite: (p) => p.replace(/^\/ticket/, '') | ... | ... |
-
Please register or sign in to post a comment