Merge remote-tracking branch 'origin/dev' into dev
# Conflicts: # src/routerPc/en.js # src/viewsPc/booking/addInvoice.vue # vite.config.js
Showing
12 changed files
with
221 additions
and
515 deletions
| ... | @@ -7,15 +7,13 @@ | ... | @@ -7,15 +7,13 @@ |
| 7 | <el-col :lg="5"> | 7 | <el-col :lg="5"> |
| 8 | <div class="leftNav"> | 8 | <div class="leftNav"> |
| 9 | <ul> | 9 | <ul> |
| 10 | <li :class="activeIndex==0?'active':''" @click="activeIndex=0">{{ language==0?'组织机构':'Organizer' }}</li> | 10 | <li v-for="(item,index) in menu" :class="activeIndex==index?'active':''" @click="activeIndex=index">{{ language==0?item.name:item.ename }}</li> |
| 11 | <li :class="activeIndex==1?'active':''" @click="activeIndex=1">{{ language==0?'无锡WDSF亚洲体育舞蹈节':'WUXI WDSF ASIAN DANCESPORT FESTIVAL' }}</li> | ||
| 12 | <!-- <li :class="activeIndex==2?'active':''" @click="activeIndex=2">{{ language==0?'体育舞蹈项目':'About Sports Dance' }}</li>--> | ||
| 13 | </ul> | 11 | </ul> |
| 14 | </div> | 12 | </div> |
| 15 | </el-col> | 13 | </el-col> |
| 16 | <el-col :lg="19"> | 14 | <el-col :lg="19"> |
| 17 | <div class="infoPart pd20" v-if="activeIndex==0"> | 15 | <div class="infoPart pd20" v-if="activeIndex==0"> |
| 18 | <h3 class="leftboderTT">{{ language==0?'组织机构':'Organizer' }}</h3> | 16 | <h3 class="leftboderTT">{{ language==0?menu[activeIndex].name:menu[activeIndex].ename }}</h3> |
| 19 | <div class="content" v-if="language==0"> | 17 | <div class="content" v-if="language==0"> |
| 20 | <h4>(一) 主办单位</h4> | 18 | <h4>(一) 主办单位</h4> |
| 21 | 19 | ||
| ... | @@ -38,71 +36,10 @@ | ... | @@ -38,71 +36,10 @@ |
| 38 | <p>Jiangsu Provincial Sports Federation</p> | 36 | <p>Jiangsu Provincial Sports Federation</p> |
| 39 | <p>Wuxi Municipal People's Government</p> | 37 | <p>Wuxi Municipal People's Government</p> |
| 40 | </div> | 38 | </div> |
| 41 | <div class="content" hidden> | ||
| 42 | <p>现场,由世界体育舞蹈联合设立的,集世界、洲际、中国三位一体的联合总部基地——世界体育舞蹈(无锡)中心正式揭牌。未来,无锡将以总部基地落户为契机,启动培育自主品牌赛事中国无锡体育舞蹈节,持续拓展交流合作、赛事研发、教育培训等领域,致力打造全球体育舞蹈地标城市和独具魅力的国际赛事名城。 | ||
| 43 | </p> | ||
| 44 | <p>本次亚洲体育舞蹈节以“三赛合一”创新形式落地无锡,为期四天的时间内,将举行世界标准舞锦标赛、世界体育舞蹈大奖赛(无锡站)两项国际级赛事,以及中国体育舞蹈公开系列赛(无锡站)一项国家级赛事,共吸引来自39个国家和地区1700多名选手参赛。 | ||
| 45 | </p> | ||
| 46 | <p>体育舞蹈分为两个项目群、十个舞种,其中标准舞(也称摩登舞)项目群包括华尔兹、维也纳华尔兹、探戈、狐步和快步舞。拉丁舞项项目群包括伦巴、恰恰、桑巴、牛仔和斗牛舞。据不完全统计,目前中国体育舞蹈爱好者已超过5000万人。 | ||
| 47 | </p> | ||
| 48 | <p>现场,拉丁舞蹈演出Latin Girl、体育舞蹈舞服秀精彩上演。国内外顶尖选手燃情竞技,参赛“绅士”与“美女”们尽情展示华丽妆容和舞姿。 | ||
| 49 | </p> | ||
| 50 | <p>“最美”体育项目在太湖之滨耀眼绽放,造就年度全球体育舞蹈领域高光场景,打出了无锡体育的又一张闪亮名片。 | ||
| 51 | </p> | ||
| 52 | <p>本次亚洲体育舞蹈节面向公众开放VIP和看台两类观赛票。同时,赛事还将通过奥林匹克频道、人民日报视界、咪咕、中国体育舞蹈联合会官网和抖音号、亚洲体育舞蹈节微信视频号、虎牙、企鹅、微博等平台在线直播。 | ||
| 53 | </p> | ||
| 54 | |||
| 55 | <img src="@/assets/zhinan/photo.png"/> | ||
| 56 | |||
| 57 | </div> | ||
| 58 | </div> | 39 | </div> |
| 59 | 40 | ||
| 60 | <div class="infoPart pd20" v-if="activeIndex==1"> | 41 | <div class="infoPart pd20" v-if="activeIndex==1"> |
| 61 | <h3 class="leftboderTT">{{ language==0?'无锡WDSF亚洲体育舞蹈节':'WUXI WDSF ASIAN DANCESPORT FESTIVAL' }}</h3> | 42 | <h3 class="leftboderTT">{{ language==0?menu[activeIndex].name:menu[activeIndex].ename }}</h3> |
| 62 | <!-- <div class="content" v-if="language==0">--> | ||
| 63 | <!-- 无锡WDSF亚洲体育舞蹈节是由世界体育舞蹈(无锡)中心(世界体育舞蹈联合、亚洲体育舞蹈联合、中国体育舞蹈联合会和无锡市人民政府共建)打造面向全球的、长期落户的、城市自主的品牌赛事。--> | ||
| 64 | <!-- <br/>--> | ||
| 65 | |||
| 66 | <!--     2023年7月首次举办无锡2023年WDSF亚洲体育舞蹈节,包括2023年WDSF世界标准舞锦标赛、2023年WDSF世界体育舞蹈大奖赛(中国无锡)、2023年全国体育舞蹈公开系列赛(无锡站),共吸引来自全球39个国家及地区的1,716名顶级舞者参与。同时,并将世界体育舞蹈(无锡)中心成功落户中国无锡,以“节日有竞赛、竞赛节日化”为发展指导原则,“四方”共同努力服务全球舞者。--> | ||
| 67 | <!-- <br/>--> | ||
| 68 | |||
| 69 | <!--     2024年7月17日至21日将继续举办第二届无锡2024年WDSF亚洲体育舞蹈节,包括2024年WDSF世界拉丁舞锦标赛、2024年WDSF世界青年标准舞锦标赛、2024年WDSF世界少年Ⅱ拉丁舞锦标赛、2024年WDSF大奖赛(标准舞、拉丁舞)、--> | ||
| 70 | <!-- 2024年WDSF职业标准舞/拉丁舞世界杯、2024年WDSF公开赛(标准舞/拉丁舞)以及2024年全国青少年体育舞蹈锦标赛等一系列重点赛事。--> | ||
| 71 | <!-- 预计届时会吸引约40个国家和地区的3000名优秀体育舞蹈选手参赛,将为全球体育舞蹈爱好者呈现一场精彩绝伦的视觉盛宴。--> | ||
| 72 | |||
| 73 | <!-- <div class="imgbox">--> | ||
| 74 | <!-- <img src="/img/123.png"/>--> | ||
| 75 | <!-- </div>--> | ||
| 76 | <!-- </div>--> | ||
| 77 | <!-- <div class="content" v-else>--> | ||
| 78 | <!-- Wuxi WDSF Asian DanceSport Festival is a globally oriented, permanently settled,--> | ||
| 79 | <!-- city-owned brand event created by the World DanceSport (Wuxi) Center (jointly--> | ||
| 80 | <!-- established by the World DanceSport Federation, DanceSport Asia, Chinese--> | ||
| 81 | <!-- DanceSport Federation, and Wuxi Municipal People’s Government).--> | ||
| 82 | <!-- <br/><br/>--> | ||
| 83 | <!--     In July 2023, the WDSF Asian DanceSport Festival·Wuxi 2023 was held for the first--> | ||
| 84 | <!-- time, including the 2023 WDSF World Championship Standard, 2023 WDSF--> | ||
| 85 | <!-- DanceSport Grand Slam (Wuxi), 2023 China DanceSport Open Series (Wuxi), which--> | ||
| 86 | <!-- attracted a total of 1,716 top-level dancers from 39 countries and regions around the--> | ||
| 87 | <!-- globe. Meanwhile, the WDSF World DanceSport (Wuxi) Center was successfully--> | ||
| 88 | <!-- established in Wuxi, China, with the guiding principle of "festivals with competitions--> | ||
| 89 | <!-- and competitions becoming festivals", and the "four parties" working together to serve--> | ||
| 90 | <!-- dancers from all over the world.--> | ||
| 91 | <!-- <br/><br/>--> | ||
| 92 | <!--     The 2nd WDSF Asian DanceSport Festival·Wuxi 2024 will be organized from 17th to--> | ||
| 93 | <!-- 21st July 2024, including a series of key events such as the WDSF World--> | ||
| 94 | <!-- Championship Latin 2024, WDSF World Championship Youth Standard 2024, WDSF--> | ||
| 95 | <!-- World Championship Junior II Latin 2024, WDSF Grand Slam Latin & Standard 2024,--> | ||
| 96 | <!-- WDSF PD World Cup Latin & Standard 2024, WDSF Open Latin & Standard 2024--> | ||
| 97 | <!-- and 2024 National Youth DanceSport Championships etc. It is expected to attract--> | ||
| 98 | <!-- 3,000 outstanding dancers from about 40 countries and regions to participate in the--> | ||
| 99 | <!-- event, which will present a wonderful visual feast for global DanceSport fans.--> | ||
| 100 | <!-- </div>--> | ||
| 101 | |||
| 102 | <!-- </div>--> | ||
| 103 | |||
| 104 | <!-- <div class="infoPart pd20" v-if="activeIndex==2">--> | ||
| 105 | <!-- <h3 class="leftboderTT">{{ language==0?'体育舞蹈项目':'About Sports Dance' }}</h3>--> | ||
| 106 | <div class="content" v-if="language==0"> | 43 | <div class="content" v-if="language==0"> |
| 107 |     WDSF亚洲体育舞蹈节,创办于2023年,是世界体育舞蹈联合会(WDSF)、亚洲体育舞蹈联合会(DSA)、中国体育舞蹈联合会(CDSF)和无锡市四方共同打造的世界级体育舞蹈IP。该项盛会采用“多赛合办、赛会一体”的创新模式,于每年7月,在无锡开展为期一周的体育舞蹈顶级赛事、职业培训、博览盛会、主题展览、行业会议等赛事活动,围绕“节日有竞赛、竞赛节日化”的指导原则,让7月的无锡成为体育舞蹈创意的栖息地、体育舞蹈艺术家的乐土和体育舞蹈文化旅游的热土,有效启动并积极推动世界体育舞蹈中心从欧洲向中国的长期转移,在中国无锡打造“东方舞都”和“世界体育舞蹈第三极”。 | 44 |     WDSF亚洲体育舞蹈节,创办于2023年,是世界体育舞蹈联合会(WDSF)、亚洲体育舞蹈联合会(DSA)、中国体育舞蹈联合会(CDSF)和无锡市四方共同打造的世界级体育舞蹈IP。该项盛会采用“多赛合办、赛会一体”的创新模式,于每年7月,在无锡开展为期一周的体育舞蹈顶级赛事、职业培训、博览盛会、主题展览、行业会议等赛事活动,围绕“节日有竞赛、竞赛节日化”的指导原则,让7月的无锡成为体育舞蹈创意的栖息地、体育舞蹈艺术家的乐土和体育舞蹈文化旅游的热土,有效启动并积极推动世界体育舞蹈中心从欧洲向中国的长期转移,在中国无锡打造“东方舞都”和“世界体育舞蹈第三极”。 |
| 108 | <br/> | 45 | <br/> |
| ... | @@ -151,45 +88,21 @@ | ... | @@ -151,45 +88,21 @@ |
| 151 | 2024, WDSF Open Latin & Standard 2024 and 2024 National Youth DanceSport | 88 | 2024, WDSF Open Latin & Standard 2024 and 2024 National Youth DanceSport |
| 152 | Championships etc.<br/> | 89 | Championships etc.<br/> |
| 153 | </div> | 90 | </div> |
| 154 | |||
| 155 | </div> | 91 | </div> |
| 156 | </el-col> | 92 | </el-col> |
| 157 | </el-row> | 93 | </el-row> |
| 158 | </el-card> | 94 | </el-card> |
| 159 | 95 | ||
| 160 | <div class="indexTitle" hidden> | 96 | <div class="indexTitle" v-if="false"> |
| 161 | <h3 class="leftboderTT">{{ language==0?'联系我们':'CONTACT' }}</h3> | 97 | <h3 class="leftboderTT">{{ language==0?'联系我们':'CONTACT' }}</h3> |
| 162 | </div> | 98 | </div> |
| 163 | <div class="mapBox mb20" v-if="false"> | 99 | <div class="mapBox mb20" v-if="false"> |
| 164 | <div class="content" v-if="language==0"> | 100 | <div class="content"> |
| 165 | <div class="phone"> | 101 | <div :class="index==0?'phone':index==1?'address':'email'" v-for="(item,index) in contact"> |
| 166 | <h4>电话</h4> | 102 | <h4>{{language==1?item.ename:item.name}}</h4> |
| 167 | <p>武先生:15606190026</p> | 103 | <p>{{language==0?item.value:item.evalue}}</p> |
| 168 | </div> | 104 | </div> |
| 169 | <div class="address"> | ||
| 170 | <h4>地址</h4> | ||
| 171 | <p>江苏省 无锡市太湖新城和风路与清舒交叉口东北100米</p> | ||
| 172 | </div> | 105 | </div> |
| 173 | <div class="email"> | ||
| 174 | <h4>邮箱</h4> | ||
| 175 | <p>info@wdsfwuxicenter.com</p> | ||
| 176 | </div> | ||
| 177 | </div> | ||
| 178 | <div class="content" v-else> | ||
| 179 | <div class="phone"> | ||
| 180 | <h4>Phone</h4> | ||
| 181 | <p>Mr.WU:15606190026</p> | ||
| 182 | </div> | ||
| 183 | <div class="address"> | ||
| 184 | <h4>Address</h4> | ||
| 185 | <p>No.88 Qingshu Road,Economic Development District, Wuxi City,Jiangsu Province,China</p> | ||
| 186 | </div> | ||
| 187 | <div class="email"> | ||
| 188 | <h4>Email</h4> | ||
| 189 | <p>info@wdsfwuxicenter.com</p> | ||
| 190 | </div> | ||
| 191 | </div> | ||
| 192 | |||
| 193 | </div> | 106 | </div> |
| 194 | </div> | 107 | </div> |
| 195 | 108 | ||
| ... | @@ -203,6 +116,19 @@ import {useStorage} from "@vueuse/core"; | ... | @@ -203,6 +116,19 @@ import {useStorage} from "@vueuse/core"; |
| 203 | const language = useStorage('language', 0) | 116 | const language = useStorage('language', 0) |
| 204 | 117 | ||
| 205 | const activeIndex = ref(0) | 118 | const activeIndex = ref(0) |
| 119 | |||
| 120 | const menu = ref([ | ||
| 121 | {name:'组织机构',ename:'Organizer'}, | ||
| 122 | {name:'无锡WDSF亚洲体育舞蹈节',ename:'WUXI WDSF ASIAN DANCESPORT FESTIVAL'}, | ||
| 123 | // {name:'体育舞蹈项目',ename:''}, | ||
| 124 | ]) | ||
| 125 | |||
| 126 | const contact = ref([ | ||
| 127 | {name:'电话',ename:'Phone',value:'武先生:15606190026',evalue:'Mr.WU:15606190026'}, | ||
| 128 | {name:'地址',ename:'Address',value:'江苏省 无锡市太湖新城和风路与清舒交叉口东北100米', | ||
| 129 | evalue:'No.88 Qingshu Road,Economic Development District, Wuxi City,Jiangsu Province,China'}, | ||
| 130 | {name:'邮箱',ename:'Email',value:'info@wdsfwuxicenter.com',evalue:'info@wdsfwuxicenter.com'}, | ||
| 131 | ]) | ||
| 206 | </script> | 132 | </script> |
| 207 | 133 | ||
| 208 | <style scoped lang="scss"> | 134 | <style scoped lang="scss"> | ... | ... |
src/viewsPc/about/wudao_en.vue
deleted
100644 → 0
| 1 | <template> | ||
| 2 | <div> | ||
| 3 | <div class="mt20" /> | ||
| 4 | <div class="box"> | ||
| 5 | <el-card> | ||
| 6 | <el-row :gutter="20"> | ||
| 7 | <el-col :lg="5"> | ||
| 8 | <div class="leftNav"> | ||
| 9 | <ul> | ||
| 10 | <li>About the Organizer</li> | ||
| 11 | <li class="active">WDSF Asian Dancesport Festival</li> | ||
| 12 | <li>About Sports Dance</li> | ||
| 13 | </ul> | ||
| 14 | </div> | ||
| 15 | </el-col> | ||
| 16 | <el-col :lg="19"> | ||
| 17 | <div class="infoPart pd20" hidden> | ||
| 18 | <h3 class="leftboderTT">About the organizer</h3> | ||
| 19 | <div class="content"> | ||
| 20 | <p>On site, the World Sports Dance (Wuxi) Center, a joint headquarters base established by the World Sports Dance Federation that integrates the world, intercontinental, and China, was officially unveiled. In the future, Wuxi will take the settlement of its headquarters as an opportunity to launch and cultivate its own brand event, the China Wuxi Sports and Dance Festival, and continue to expand communication and cooperation, event research and development, education and training and other fields, committed to creating a global sports and dance landmark city and a unique and charming international event city.</p> | ||
| 21 | <p>The Asian Sports Dance Festival has landed in Wuxi in an innovative form of "three competitions in one". Over a period of four days, it will hold two international level events, the World Standard Dance Championships and the World Sports Dance Grand Prix (Wuxi Station), as well as a national level event, the China Sports Dance Open Series (Wuxi Station), attracting more than 1700 participants from 39 countries and regions to participate.</p> | ||
| 22 | <p>Sports dance is divided into two groups and ten dance genres, among which the standard dance (also known as modern dance) group includes waltz, Viennese waltz, tango, foxtrot, and brisk step. The Latin dance project group includes rumba, cha cha, samba, cowboy, and bullfighting dance. According to incomplete statistics, there are currently over 50 million sports dance enthusiasts in China.</p> | ||
| 23 | <p>On site, Latin Girl dance performance and sports dance costume show were performed brilliantly. Top domestic and foreign athletes compete passionately, showcasing their gorgeous makeup and dance moves to the heart of the "gentlemen" and "beauties" participating in the competition.</p> | ||
| 24 | <p>The "most beautiful" sports project is shining on the shore of the Taihu Lake Lake, creating the highlight scene of the annual global sports dance field, and giving another shining card of Wuxi sports. | ||
| 25 | </p> | ||
| 26 | <p>The Asian Sports Dance Festival is open to the public with two types of tickets: VIP and stand tickets. At the same time, the event will also be broadcast online through the Olympic Channel, People's Daily Vision, Migu, the official website of China Sports Dance Federation and Tiktok, Asia Sports Dance Festival WeChat video number, Tiger Teeth, Penguin, Weibo and other platforms.</p> | ||
| 27 | |||
| 28 | <img src="@/assets/zhinan/photo.png"/> | ||
| 29 | |||
| 30 | </div> | ||
| 31 | </div> | ||
| 32 | <div class="infoPart pd20"> | ||
| 33 | <h3 class="leftboderTT">WUXI WDSF ASIAN DANCESPORT FESTIVAL</h3> | ||
| 34 | </div> | ||
| 35 | </el-col> | ||
| 36 | </el-row> | ||
| 37 | </el-card> | ||
| 38 | |||
| 39 | <div class="indexTitle"> | ||
| 40 | <h3 class="leftboderTT">CONTACT</h3> | ||
| 41 | </div> | ||
| 42 | <div class="mapBox mb20"> | ||
| 43 | <div class="content"> | ||
| 44 | <div class="phone"> | ||
| 45 | <h4>Phone</h4> | ||
| 46 | <p>Mr.WU:15606190026</p> | ||
| 47 | </div> | ||
| 48 | <div class="address"> | ||
| 49 | <h4>Address</h4> | ||
| 50 | <p>No.88 Qingshu Road,Economic Development District, Wuxi City,Jiangsu Province,China</p> | ||
| 51 | </div> | ||
| 52 | <div class="email"> | ||
| 53 | <h4>Email</h4> | ||
| 54 | <p>8888989@163.com</p> | ||
| 55 | </div> | ||
| 56 | </div> | ||
| 57 | </div> | ||
| 58 | </div> | ||
| 59 | </div> | ||
| 60 | </template> | ||
| 61 | |||
| 62 | <script setup> | ||
| 63 | |||
| 64 | </script> | ||
| 65 | |||
| 66 | <style scoped lang="scss"> | ||
| 67 | .leftNav{ | ||
| 68 | ul{border-right: 2px solid #E5E5E5;padding:0 20px 0 0;} | ||
| 69 | li{margin: 30px 0;padding: 10px;text-align: right; | ||
| 70 | border-radius: 2px;position: relative; | ||
| 71 | font-weight: 600; | ||
| 72 | font-size: 18px; | ||
| 73 | background: linear-gradient(90deg, rgba(134, 35, 252, 0.1), rgba(69, 61, 234, 0.1));} | ||
| 74 | li::after{content: '';position: absolute;background: #898989;width: 8px;height: 8px; | ||
| 75 | border-radius: 50%;right: -29px;border: 4px solid #fff;outline: 2px solid #898989; | ||
| 76 | box-sizing: content-box;top: 0;bottom: 0;margin: auto;} | ||
| 77 | li.active{color: #fff; | ||
| 78 | background: linear-gradient(90deg, #8623FC, #453DEA); | ||
| 79 | &::after{outline: 2px solid #453DEA;background: #453DEA;} | ||
| 80 | } | ||
| 81 | } | ||
| 82 | .infoPart{ | ||
| 83 | .leftboderTT{font-size:20px;color: var(--el-color-primary); } | ||
| 84 | } | ||
| 85 | .content{margin: 20px 0 0;text-indent: 2em; | ||
| 86 | line-height: 1.8; | ||
| 87 | font-weight: 400; | ||
| 88 | font-size: 16px; | ||
| 89 | color: #29343C; | ||
| 90 | img{max-width: 100%;margin: 20px auto;display: block;} | ||
| 91 | h4{text-indent: 0} | ||
| 92 | } | ||
| 93 | .mapBox{background: url("@/assets/zhinan/map.png") no-repeat right;height: 375px; | ||
| 94 | background-size: cover;padding: 1px;position: relative;display: flex; | ||
| 95 | .content{background: #fff;width: 60%;left: 40px;padding: 30px;text-indent: 0; | ||
| 96 | line-height: 1; | ||
| 97 | position: absolute;height: 90%;top: 0;bottom: 0;margin: auto; | ||
| 98 | } | ||
| 99 | div{padding-left: 60px;} | ||
| 100 | .phone{background: url("@/assets/dance/map01.png") no-repeat left;background-size: 30px;} | ||
| 101 | .address{background: url("@/assets/dance/map02.png") no-repeat left;background-size: 30px; | ||
| 102 | margin:50px 0; | ||
| 103 | } | ||
| 104 | .email{background: url("@/assets/dance/map03.png") no-repeat left;background-size: 30px;} | ||
| 105 | h4{margin: 0; | ||
| 106 | font-size: 16px; | ||
| 107 | color: #AAAAAA;} | ||
| 108 | p{margin: 13px 0 0;} | ||
| 109 | } | ||
| 110 | @media (max-width: 800px) { | ||
| 111 | .mapBox { | ||
| 112 | div { | ||
| 113 | padding-left: 40px; | ||
| 114 | } | ||
| 115 | |||
| 116 | .content { | ||
| 117 | width: 80%; | ||
| 118 | left: 10%; | ||
| 119 | padding: 10px 20px 0 20px; | ||
| 120 | } | ||
| 121 | |||
| 122 | .address { | ||
| 123 | margin: 30px 0; | ||
| 124 | } | ||
| 125 | |||
| 126 | p { | ||
| 127 | text-align: left; | ||
| 128 | word-break: break-all; | ||
| 129 | } | ||
| 130 | } | ||
| 131 | } | ||
| 132 | </style> |
| ... | @@ -6,176 +6,149 @@ | ... | @@ -6,176 +6,149 @@ |
| 6 | <div slot="header"> | 6 | <div slot="header"> |
| 7 | <div class="bg-lineg"> | 7 | <div class="bg-lineg"> |
| 8 | <div class="pl-back" @click="goBack"> | 8 | <div class="pl-back" @click="goBack"> |
| 9 | <el-icon> | 9 | <el-icon><ArrowLeftBold /></el-icon> 返回 |
| 10 | <ArrowLeftBold/> | ||
| 11 | </el-icon> | ||
| 12 | 返回 | ||
| 13 | </div> | 10 | </div> |
| 14 | {{ language == 0 ? '发票开具' : 'Invoice application' }} | 11 | {{ language == 0 ? '发票开具' : 'Invoice application' }}</div> |
| 15 | </div> | 12 | </div> |
| 16 | </div> | 13 | <el-row class="pd20" :gutter="20"> |
| 17 | <el-row :gutter="20" class="pd20"> | ||
| 18 | <el-col :span="24"> | 14 | <el-col :span="24"> |
| 19 | <!--已选订单--> | 15 | <!--已选订单--> |
| 20 | <div v-for="b in list" v-if="orderType!=6" :key="b.id" class="border-info"> | 16 | <div v-if="orderType!=6" class="border-info" v-for="b in list" :key="b.id"> |
| 21 | <label v-if="orderType == 0" class="blueTag"> {{ language == 0 ? '酒店订单' : 'HOTEL' }}</label> | 17 | <label class="blueTag" v-if="orderType == 0"> {{ language==0?'酒店订单':'HOTEL' }}</label> |
| 22 | <label v-if="b.orderType == 1" class="orangeTag"> {{ | 18 | <label class="orangeTag" v-if="b.orderType == 1"> {{ language==0?'车辆订单':'TRANSPORTATION' }}</label> |
| 23 | language == 0 ? '车辆订单' : 'TRANSPORTATION' | 19 | <label class="purpleTag" v-if="b.orderType == 2"> {{ language==0?'餐饮订单':'DINING' }}</label> |
| 24 | }}</label> | 20 | <label class="pinkTag" v-if="b.orderType == 3"> {{ language==0?'化妆订单':'MakeUp' }}</label> |
| 25 | <label v-if="b.orderType == 2" class="purpleTag"> {{ language == 0 ? '餐饮订单' : 'DINING' }}</label> | 21 | <label class="yellowTag" v-if="b.orderType == 4"> {{ language==0?'拍摄订单':'Shooting'}}</label> |
| 26 | <label v-if="b.orderType == 3" class="pinkTag"> {{ language == 0 ? '化妆订单' : 'MakeUp' }}</label> | 22 | <label class="yellowTag" v-if="!b.orderType&&orderType==5">{{ language==0?'赛事报名':'REGISTRATION' }}</label> |
| 27 | <label v-if="b.orderType == 4" class="yellowTag"> {{ language == 0 ? '拍摄订单' : 'Shooting' }}</label> | ||
| 28 | <label v-if="!b.orderType&&orderType==5" class="yellowTag">{{ | ||
| 29 | language == 0 ? '赛事报名' : 'REGISTRATION' | ||
| 30 | }}</label> | ||
| 31 | <h3 v-if="b.name">{{ b.name }}</h3> | 23 | <h3 v-if="b.name">{{ b.name }}</h3> |
| 32 | <h3 v-if="b.cptName">{{ b.cptName }}</h3> | 24 | <h3 v-if="b.cptName">{{ b.cptName }}</h3> |
| 33 | 25 | ||
| 34 | <div v-if="!b.orderType&&orderType==5"> | 26 | <div v-if="!b.orderType&&orderType==5"> |
| 35 | <p v-if="b.groupName">{{ language == 0 ? '团队名称' : 'Team name' }}:{{ b.groupName }}</p> | 27 | <p v-if="b.groupName">{{ language==0?'团队名称':'Team name' }}:{{b.groupName}}</p> |
| 36 | <p v-if="b.payTime">{{ language == 0 ? '支付时间' : 'Payment time' }}:{{ b.payTime }}</p> | 28 | <p v-if="b.payTime">{{ language==0?'支付时间':'Payment time' }}:{{b.payTime}}</p> |
| 37 | <p v-if="b.totalPayAmount" class="poPrice">{{ paymentType != 2 ? '¥' : '€' }} {{ b.totalPayAmount }}</p> | 29 | <p class="poPrice" v-if="b.totalPayAmount">{{paymentType!=2?'¥':'€'}} {{b.totalPayAmount}}</p> |
| 38 | </div> | 30 | </div> |
| 39 | <!-- 酒店订单--> | 31 | <!-- 酒店订单--> |
| 40 | <div v-if="b.orderType == 0"> | 32 | <div v-if="b.orderType == 0"> |
| 41 | <p>{{ b.messageObj.roomInfo }}</p> | 33 | <p>{{b.messageObj.roomInfo}}</p> |
| 42 | <p>{{ b.messageObj.roomStayDate }}</p> | 34 | <p>{{b.messageObj.roomStayDate}}</p> |
| 43 | <p v-if="b.totalStr" class="poPrice">{{ b.paymentType == 3 ? '€' : '¥' }}{{ b.totalStr }}</p> | 35 | <p class="poPrice" v-if="b.totalStr">{{ b.paymentType==3?'€' :'¥' }}{{b.totalStr}}</p> |
| 44 | </div> | 36 | </div> |
| 45 | <!-- 接送订单--> | 37 | <!-- 接送订单--> |
| 46 | <div v-if="b.orderType == 1"> | 38 | <div v-if="b.orderType == 1"> |
| 47 | <p v-for="(car,index) in b.messageObj.carsList" v-show="car.num>0" :key="index"> | 39 | <p v-for="(car,index) in b.messageObj.carsList" :key="index" v-show="car.num>0"> |
| 48 | <span>{{ car.name }}:{{ car.num }} 辆</span> | 40 | <span>{{car.name}}:{{car.num}} 辆</span> |
| 49 | </p> | 41 | </p> |
| 50 | <p v-if="b.total" class="poPrice">{{ b.paymentType == 3 ? '€' : '¥' }}{{ b.totalStr }}</p> | 42 | <p class="poPrice" v-if="b.total">{{ b.paymentType==3?'€' :'¥' }}{{b.totalStr}}</p> |
| 51 | </div> | 43 | </div> |
| 52 | <!-- 餐饮订单--> | 44 | <!-- 餐饮订单--> |
| 53 | <div v-if="b.orderType == 2"> | 45 | <div v-if="b.orderType == 2"> |
| 54 | <p v-for="(n,index) in b.messageObj.foodsList" :key="index"> | 46 | <p v-for="(n,index) in b.messageObj.foodsList" :key="index"> |
| 55 | <span v-if="n.num > 0"> | 47 | <span v-if="n.num > 0"> |
| 56 | {{ n.name }}({{ n.categoryName }}) <span>{{ n.num }} 份</span> | 48 | {{n.name}}({{n.categoryName}}) <span>{{n.num}} 份</span> |
| 57 | </span> | 49 | </span> |
| 58 | </p> | 50 | </p> |
| 59 | <p v-if="b.total" class="poPrice">{{ b.paymentType == 3 ? '€' : '¥' }}{{ b.total }}</p> | 51 | <p class="poPrice" v-if="b.total">{{ b.paymentType==3?'€' :'¥' }}{{b.total}}</p> |
| 60 | </div> | 52 | </div> |
| 61 | <div v-if="b.orderType == 3 || b.orderType == 4"> | 53 | <div v-if="b.orderType == 3 || b.orderType == 4"> |
| 62 | <div> | 54 | <div> |
| 63 | {{ language == 0 ? '套餐名称:' : '' }}{{ b.messageObj.packageName }} | 55 | {{language==0?'套餐名称:':''}}{{b.messageObj.packageName}} |
| 64 | </div> | 56 | </div> |
| 65 | <div> | 57 | <div> |
| 66 | {{ language == 0 ? '预约时间:' : '' }}{{ b.deliveryTime.slice(0, 10) }} {{ b.messageObj.timePeriod }} | 58 | {{language==0?'预约时间:':''}}{{b.deliveryTime.slice(0,10)}} {{b.messageObj.timePeriod}} |
| 67 | </div> | 59 | </div> |
| 68 | <p v-if="b.total" class="poPrice">{{ b.paymentType == 3 ? '€' : '¥' }}{{ b.totalStr }}</p> | 60 | <p class="poPrice" v-if="b.total">{{ b.paymentType==3?'€' :'¥' }}{{b.totalStr}}</p> |
| 69 | </div> | 61 | </div> |
| 70 | </div> | 62 | </div> |
| 71 | 63 | ||
| 72 | <div v-if="orderType==6" class="border-info"> | 64 | <div class="border-info" v-if="orderType==6"> |
| 73 | <label class="blueTag">{{ language == 0 ? '票务订单' : 'Ticket' }}</label> | 65 | <label class="blueTag" >{{language==0?'票务订单':'Ticket'}}</label> |
| 74 | <h3>{{ matchForm.name }}</h3> | 66 | <h3>{{ formDate.name }}</h3> |
| 75 | <div> | 67 | <div> |
| 76 | <p>地址:{{ matchForm.address }}</p> | 68 | <p>地点:{{formDate.placeName}}</p> |
| 77 | <p>票档:{{ ticketForm.extJson?.ticketType?.name }}</p> | 69 | <p>单价:{{paymentType!=2?'¥':'€'}}{{formDate.singlePrice}}</p> |
| 78 | <p>日期:{{ ticketForm.extJson?.ticketDate.name }}</p> | 70 | <p>数量:{{formDate.seatList?.length}}张</p> |
| 79 | <p>单价:{{ paymentType != 2 ? '¥' : '€' }}{{ ticketForm.extJson?.ticketDate.price }}/1张</p> | 71 | <p class="poPrice">{{paymentType!=2?'¥':'€'}}{{formDate.payAmount}}</p> |
| 80 | <p>数量:{{ ticketForm.num }}张</p> | ||
| 81 | |||
| 82 | <p class="poPrice">{{ paymentType != 2 ? '¥' : '€' }}{{ ticketForm.total }}</p> | ||
| 83 | </div> | 72 | </div> |
| 84 | </div> | 73 | </div> |
| 85 | 74 | ||
| 86 | <!-- <div class="border-info" v-if="orderType==6">--> | ||
| 87 | <!-- <label class="blueTag" >{{language==0?'票务订单':'Ticket'}}</label>--> | ||
| 88 | <!-- <h3>{{ formDate.name }}</h3>--> | ||
| 89 | <!-- <div>--> | ||
| 90 | <!-- <p>地点:{{formDate.placeName}}</p>--> | ||
| 91 | <!-- <p>单价:{{paymentType!=2?'¥':'€'}}{{formDate.singlePrice}}</p>--> | ||
| 92 | <!-- <p>数量:{{formDate.seatList?.length}}张</p>--> | ||
| 93 | <!-- <p class="poPrice">{{paymentType!=2?'¥':'€'}}{{formDate.payAmount}}</p>--> | ||
| 94 | <!-- </div>--> | ||
| 95 | <!-- </div>--> | ||
| 96 | |||
| 97 | <div class="leftboderTT">{{ language == 0 ? '开票信息' : 'Invoice information' }}</div> | 75 | <div class="leftboderTT">{{ language == 0 ? '开票信息' : 'Invoice information' }}</div> |
| 98 | <div class="border-rr mt20 pd20"> | 76 | <div class="border-rr mt20 pd20"> |
| 99 | <el-form ref="formRef" :label-width="language == 0 ?'100':'150'" :model="form" :rules="rules" | 77 | <el-form class="mw500" :model="form" :label-width="language == 0 ?'100':'150'" :rules="rules" ref="formRef"> |
| 100 | class="mw500"> | ||
| 101 | <el-form-item :label="language == 0 ?'开票金额':'Amount'"> | 78 | <el-form-item :label="language == 0 ?'开票金额':'Amount'"> |
| 102 | <span v-if="orderType==5||orderType==6" | 79 | <span v-if="orderType==5||orderType==6" class="bigprice">{{paymentType!=2?'¥':'€'}}{{totalMoney}}</span> |
| 103 | class="bigprice">{{ paymentType != 2 ? '¥' : '€' }}{{ totalMoney }}</span> | 80 | <span v-else class="bigprice">{{paymentType!=3?'¥':'€'}}{{totalMoney}}</span> |
| 104 | <span v-else class="bigprice">{{ paymentType != 3 ? '¥' : '€' }}{{ totalMoney }}</span> | ||
| 105 | </el-form-item> | 81 | </el-form-item> |
| 106 | 82 | ||
| 107 | <el-form-item :label="language == 0 ?`发票形式`:'Invoice Form'" prop="invoiceForm" required> | 83 | <el-form-item :label="language == 0 ?`发票形式`:'Invoice Form'" required prop="invoiceForm"> |
| 108 | <el-radio-group v-model="form.invoiceForm"> | 84 | <el-radio-group v-model="form.invoiceForm"> |
| 109 | <el-radio value="1">{{ language == 0 ? '电子发票' : 'E-invoice' }}</el-radio> | 85 | <el-radio value="1">{{ language == 0 ? '电子发票' : 'E-invoice' }}</el-radio> |
| 110 | <!-- <el-radio value="2" v-if="kpType.indexOf('2')!=-1">{{ language == 0 ? '纸质普票' : 'Paper-invoice' }}</el-radio>--> | 86 | <!-- <el-radio value="2" v-if="kpType.indexOf('2')!=-1">{{ language == 0 ? '纸质普票' : 'Paper-invoice' }}</el-radio>--> |
| 111 | <!-- <el-radio value="3" v-if="kpType.indexOf('3')!=-1">{{ language == 0 ? '纸质专票' : 'Paper-special-invoice' }}</el-radio>--> | 87 | <!-- <el-radio value="3" v-if="kpType.indexOf('3')!=-1">{{ language == 0 ? '纸质专票' : 'Paper-special-invoice' }}</el-radio>--> |
| 112 | </el-radio-group> | 88 | </el-radio-group> |
| 113 | </el-form-item> | 89 | </el-form-item> |
| 114 | 90 | ||
| 115 | <!-- <el-form-item :label="`邮寄地址`" v-else required>--> | 91 | <!-- <el-form-item :label="`邮寄地址`" v-else required>--> |
| 116 | <!-- <el-button plain type="primary" size="small" v-if="addrList.length==0" @click="goEditAddress">--> | 92 | <!-- <el-button plain type="primary" size="small" v-if="addrList.length==0" @click="goEditAddress">--> |
| 117 | <!-- +{{ language==0?'添加地址':'Add' }}--> | 93 | <!-- +{{ language==0?'添加地址':'Add' }}--> |
| 118 | <!-- </el-button>--> | 94 | <!-- </el-button>--> |
| 119 | <!-- <div v-else class="flexCenter">--> | 95 | <!-- <div v-else class="flexCenter">--> |
| 120 | <!-- <div>--> | 96 | <!-- <div>--> |
| 121 | <!-- <div class="bigSize">{{nowAddress.contact}} {{nowAddress.phone}}</div>--> | 97 | <!-- <div class="bigSize">{{nowAddress.contact}} {{nowAddress.phone}}</div>--> |
| 122 | <!-- <div class="smallSize">{{nowAddress.addName}}</div>--> | 98 | <!-- <div class="smallSize">{{nowAddress.addName}}</div>--> |
| 123 | <!-- </div>--> | 99 | <!-- </div>--> |
| 124 | <!-- <a @click="goEditAddress" class="text-primary">--> | 100 | <!-- <a @click="goEditAddress" class="text-primary">--> |
| 125 | <!-- <el-icon><Switch /></el-icon>切换--> | 101 | <!-- <el-icon><Switch /></el-icon>切换--> |
| 126 | <!-- </a>--> | 102 | <!-- </a>--> |
| 127 | <!-- </div>--> | 103 | <!-- </div>--> |
| 128 | <!-- </el-form-item>--> | 104 | <!-- </el-form-item>--> |
| 129 | <el-form-item :label="language == 0 ?`发票类型`:'Invoice Type'" prop="invoiceType" required> | 105 | <el-form-item :label="language == 0 ?`发票类型`:'Invoice Type'" required prop="invoiceType"> |
| 130 | <el-radio-group v-model="form.invoiceType"> | 106 | <el-radio-group v-model="form.invoiceType"> |
| 131 | <el-radio value="0">{{ language == 0 ? '企业' : 'Company' }}</el-radio> | 107 | <el-radio value="0">{{ language == 0 ? '企业' : 'Company' }}</el-radio> |
| 132 | <el-radio value="1">{{ language == 0 ? '个人非企业' : 'Individual' }}</el-radio> | 108 | <el-radio value="1">{{ language == 0 ? '个人非企业' : 'Individual' }}</el-radio> |
| 133 | </el-radio-group> | 109 | </el-radio-group> |
| 134 | </el-form-item> | 110 | </el-form-item> |
| 135 | <el-form-item v-if="form.invoiceType=='0'" :label="language == 0 ?`发票抬头`:'Invoice Title'" | 111 | <el-form-item v-if="form.invoiceType=='0'" :label="language == 0 ?`发票抬头`:'Invoice Title'" required prop="invoiceTitle"> |
| 136 | prop="invoiceTitle" | ||
| 137 | required> | ||
| 138 | <el-input v-model="form.invoiceTitle"/> | 112 | <el-input v-model="form.invoiceTitle"/> |
| 139 | </el-form-item> | 113 | </el-form-item> |
| 140 | <el-form-item v-if="form.invoiceType=='0'" :label="language == 0 ?`税号`:'Duty Paragraph'" | 114 | <el-form-item :label="language == 0 ?`税号`:'Duty Paragraph'" required v-if="form.invoiceType=='0'" prop="invoiceTfn"> |
| 141 | prop="invoiceTfn" | ||
| 142 | required> | ||
| 143 | <el-input v-model="form.invoiceTfn"/> | 115 | <el-input v-model="form.invoiceTfn"/> |
| 144 | </el-form-item> | 116 | </el-form-item> |
| 145 | <el-form-item v-if="form.invoiceForm=='1'" :label="`邮箱`" prop="invoiceEmail" required> | 117 | <el-form-item :label="`邮箱`" v-if="form.invoiceForm=='1'" required> |
| 146 | <el-input v-model="form.invoiceEmail"/> | 118 | <el-input v-if="orderType==6" v-model="form.invoiceEmail"/> |
| 119 | <el-input v-else v-model="form.address"/> | ||
| 147 | </el-form-item> | 120 | </el-form-item> |
| 148 | <el-form-item label="备注" prop="remarks"> | 121 | <el-form-item label="备注" prop="remarks"> |
| 149 | <el-input v-model="form.remarks" type="textarea"/> | 122 | <el-input type="textarea" v-model="form.remarks"/> |
| 150 | </el-form-item> | 123 | </el-form-item> |
| 151 | <div v-if="form.invoiceForm=='3'&&form.invoiceType=='0'"> | 124 | <div v-if="form.invoiceForm=='3'&&form.invoiceType=='0'"> |
| 152 | <el-form-item :label="`地址`" prop="invoiceAddress" required> | 125 | <el-form-item :label="`地址`" required prop="invoiceAddress"> |
| 153 | <el-input v-model="form.invoiceAddress"/> | 126 | <el-input v-model="form.invoiceAddress"/> |
| 154 | </el-form-item> | 127 | </el-form-item> |
| 155 | <el-form-item :label="`电话`" prop="invoicePhone" required> | 128 | <el-form-item :label="`电话`" required prop="invoicePhone"> |
| 156 | <el-input v-model="form.invoicePhone"/> | 129 | <el-input v-model="form.invoicePhone"/> |
| 157 | </el-form-item> | 130 | </el-form-item> |
| 158 | <el-form-item :label="`开户行`" prop="invoiceBank" required> | 131 | <el-form-item :label="`开户行`" required prop="invoiceBank"> |
| 159 | <el-input v-model="form.invoiceBank"/> | 132 | <el-input v-model="form.invoiceBank"/> |
| 160 | </el-form-item> | 133 | </el-form-item> |
| 161 | <el-form-item :label="`账户`" prop="invoiceAccount" required> | 134 | <el-form-item :label="`账户`" required prop="invoiceAccount"> |
| 162 | <el-input v-model="form.invoiceAccount"/> | 135 | <el-input v-model="form.invoiceAccount"/> |
| 163 | </el-form-item> | 136 | </el-form-item> |
| 164 | </div> | 137 | </div> |
| 165 | </el-form> | 138 | </el-form> |
| 166 | 139 | ||
| 167 | <div v-if="remark" class="tip"> | 140 | <div class="tip" v-if="remark"> |
| 168 | <label>{{ language == 0 ? '开票须知' : 'Invoice Notice' }}:</label> | 141 | <label>{{ language == 0 ?'开票须知':'Invoice Notice' }}:</label> |
| 169 | <div v-html="remark"></div> | 142 | <div v-html="remark"></div> |
| 170 | </div> | 143 | </div> |
| 171 | </div> | 144 | </div> |
| 172 | </el-col> | 145 | </el-col> |
| 173 | </el-row> | 146 | </el-row> |
| 174 | 147 | ||
| 175 | <el-row align="middle" class="pd20" justify="center"> | 148 | <el-row justify="center" align="middle" class="pd20"> |
| 176 | <el-col :span="12" class="text-center"> | 149 | <el-col :span="12" class="text-center"> |
| 177 | <el-button class="btn-lineG w200px" round size="large" type="primary" @click="submit"> | 150 | <el-button type="primary" class="btn-lineG w200px" size="large" round @click="submit"> |
| 178 | {{ language == 0 ? '提交' : 'Submit' }} | 151 | {{ language==0?'提交':'Submit' }} |
| 179 | </el-button> | 152 | </el-button> |
| 180 | </el-col> | 153 | </el-col> |
| 181 | </el-row> | 154 | </el-row> |
| ... | @@ -185,7 +158,7 @@ | ... | @@ -185,7 +158,7 @@ |
| 185 | </div> | 158 | </div> |
| 186 | </div> | 159 | </div> |
| 187 | <address-list-dialog ref="dialogAddressListRef" @submit="getAddress"/> | 160 | <address-list-dialog ref="dialogAddressListRef" @submit="getAddress"/> |
| 188 | <!-- 开票须知 --> | 161 | <!-- 开票须知 --> |
| 189 | </template> | 162 | </template> |
| 190 | 163 | ||
| 191 | <script setup> | 164 | <script setup> |
| ... | @@ -194,7 +167,7 @@ import {ref, reactive, onMounted} from "vue"; | ... | @@ -194,7 +167,7 @@ import {ref, reactive, onMounted} from "vue"; |
| 194 | import {useStorage} from "@vueuse/core/index"; | 167 | import {useStorage} from "@vueuse/core/index"; |
| 195 | import AddressListDialog from "./component/addressList" | 168 | import AddressListDialog from "./component/addressList" |
| 196 | import dayjs from 'dayjs' | 169 | import dayjs from 'dayjs' |
| 197 | import {ElMessage, ElMessageBox} from "element-plus"; | 170 | import {ElMessage,ElMessageBox} from "element-plus"; |
| 198 | import useUserStore from "@/store/modules/user"; | 171 | import useUserStore from "@/store/modules/user"; |
| 199 | import {getCurrentInstance} from "@vue/runtime-core"; | 172 | import {getCurrentInstance} from "@vue/runtime-core"; |
| 200 | import {submitTitckInvoice, invoice, TitckUpdateInvoice} from '@/viewsPc/seat/api/index' | 173 | import {submitTitckInvoice, invoice, TitckUpdateInvoice} from '@/viewsPc/seat/api/index' |
| ... | @@ -205,13 +178,7 @@ import { | ... | @@ -205,13 +178,7 @@ import { |
| 205 | submitInvoice, | 178 | submitInvoice, |
| 206 | getInvoiceDetailBills, | 179 | getInvoiceDetailBills, |
| 207 | getInvoiceDetail, | 180 | getInvoiceDetail, |
| 208 | submitCptInvoice, | 181 | submitCptInvoice, getBaseInfoByActiveId, getLeagueInvoiceDetail, getLeagueInvoiceDetailPC,getInvoiceDetailMatch |
| 209 | getBaseInfoByActiveId, | ||
| 210 | getLeagueInvoiceDetail, | ||
| 211 | getLeagueInvoiceDetailPC, | ||
| 212 | getInvoiceDetailMatch, | ||
| 213 | getTicketOrderInfo, | ||
| 214 | getTicketInfoByActivityId, | ||
| 215 | } from "@/apiPc/booking"; | 182 | } from "@/apiPc/booking"; |
| 216 | import {getOrderDetail} from "@/viewsPc/seat/api/index"; | 183 | import {getOrderDetail} from "@/viewsPc/seat/api/index"; |
| 217 | 184 | ||
| ... | @@ -227,8 +194,8 @@ const form = ref({ | ... | @@ -227,8 +194,8 @@ const form = ref({ |
| 227 | invoiceType: '0' | 194 | invoiceType: '0' |
| 228 | }) | 195 | }) |
| 229 | const formDate = ref({}) | 196 | const formDate = ref({}) |
| 230 | const orderType = ref(1) | 197 | const orderType=ref(1) |
| 231 | const paymentType = ref(1) | 198 | const paymentType=ref(1) |
| 232 | const list = ref([]) | 199 | const list = ref([]) |
| 233 | const addrList = ref([]) | 200 | const addrList = ref([]) |
| 234 | const nowAddress = ref({}) | 201 | const nowAddress = ref({}) |
| ... | @@ -237,57 +204,54 @@ const kpType = ref('1') | ... | @@ -237,57 +204,54 @@ const kpType = ref('1') |
| 237 | const remark = ref('') | 204 | const remark = ref('') |
| 238 | const rules = ref({ | 205 | const rules = ref({ |
| 239 | invoiceType: [ | 206 | invoiceType: [ |
| 240 | {required: true, message: language.value == 0 ? '请选择发票类型' : 'Please select invoice type', trigger: 'change'} | 207 | {required: true, message: language.value==0?'请选择发票类型':'Please select invoice type', trigger: 'change'} |
| 241 | ], | ||
| 242 | invoiceEmail: [ | ||
| 243 | {required: true, message: language.value == 0 ? '请输入邮箱' : 'Please enter email', trigger: 'blur'} | ||
| 244 | ], | 208 | ], |
| 245 | invoiceForm: [ | 209 | invoiceForm: [ |
| 246 | {required: true, message: language.value == 0 ? '请选择发票形式' : 'Please select invoice form', trigger: 'change'} | 210 | {required: true, message: language.value==0?'请选择发票形式':'Please select invoice form', trigger: 'change'} |
| 247 | ], | 211 | ], |
| 248 | invoiceTitle: [ | 212 | invoiceTitle: [ |
| 249 | {required: true, message: language.value == 0 ? '请输入发票抬头' : 'Please enter invoice title', trigger: 'blur'} | 213 | {required: true, message: language.value==0?'请输入发票抬头':'Please enter invoice title', trigger: 'blur'} |
| 250 | ], | 214 | ], |
| 251 | invoiceTfn: [ | 215 | invoiceTfn: [ |
| 252 | {required: true, message: language.value == 0 ? '请输入税号' : 'Please enter TFN', trigger: 'blur'} | 216 | {required: true, message: language.value==0?'请输入税号':'Please enter TFN', trigger: 'blur'} |
| 253 | ], | 217 | ], |
| 254 | invoiceAddress: [ | 218 | invoiceAddress: [ |
| 255 | {required: true, message: language.value == 0 ? '请输入地址' : 'Please enter address', trigger: 'blur'} | 219 | {required: true, message: language.value==0?'请输入地址':'Please enter address', trigger: 'blur'} |
| 256 | ], | 220 | ], |
| 257 | invoicePhone: [ | 221 | invoicePhone: [ |
| 258 | {required: true, message: language.value == 0 ? '请输入电话' : 'Please enter phone', trigger: 'blur'} | 222 | {required: true, message: language.value==0?'请输入电话':'Please enter phone', trigger: 'blur'} |
| 259 | ], | 223 | ], |
| 260 | invoiceBank: [ | 224 | invoiceBank: [ |
| 261 | {required: true, message: language.value == 0 ? '请输入开户行' : 'Please enter bank', trigger: 'blur'} | 225 | {required: true, message: language.value==0?'请输入开户行':'Please enter bank', trigger: 'blur'} |
| 262 | ], | 226 | ], |
| 263 | invoiceAccount: [ | 227 | invoiceAccount: [ |
| 264 | {required: true, message: language.value == 0 ? '请输入账户' : 'Please enter account', trigger: 'blur'} | 228 | {required: true, message: language.value==0?'请输入账户':'Please enter account', trigger: 'blur'} |
| 265 | ], | 229 | ], |
| 266 | }) | 230 | }) |
| 267 | const isEdit = ref(false) | 231 | const isEdit = ref(false) |
| 268 | const ticketForm = ref({}) | ||
| 269 | const matchForm = ref({}) | ||
| 270 | let invoiceId | 232 | let invoiceId |
| 271 | let cptId | 233 | let cptId |
| 272 | 234 | ||
| 273 | 235 | ||
| 274 | onMounted(() => { | 236 | onMounted(() => { |
| 275 | orderType.value = route.query.orderType | 237 | orderType.value=route.query.orderType |
| 276 | paymentType.value = route.query.paymentType | 238 | paymentType.value=route.query.paymentType |
| 277 | if (route.query.orders) { | 239 | if(route.query.orders){ |
| 278 | let obj = JSON.parse(decodeURIComponent(route.query.orders)) || {} | 240 | let obj = JSON.parse(decodeURIComponent(route.query.orders)) || {} |
| 279 | if (obj.cptId) { | 241 | if(obj.cptId){ |
| 280 | cptId = obj.cptId | 242 | cptId = obj.cptId |
| 281 | } else if (obj.activeId) { | 243 | }else if(obj.activeId){ |
| 282 | cptId = obj.activeId | 244 | cptId = obj.activeId |
| 283 | } else { | 245 | }else{ |
| 284 | cptId = '1778253367748993026' | 246 | cptId = '1778253367748993026' |
| 285 | } | 247 | } |
| 248 | |||
| 249 | console.log(obj) | ||
| 286 | getRemark() | 250 | getRemark() |
| 287 | let arr = [] | 251 | let arr = [] |
| 288 | list.value.push(obj) | 252 | list.value.push(obj) |
| 289 | for (let bill of list.value) { | 253 | for (let bill of list.value) { |
| 290 | if (bill?.message) { | 254 | if(bill?.message){ |
| 291 | bill.messageObj = JSON.parse(bill.message) | 255 | bill.messageObj = JSON.parse(bill.message) |
| 292 | } | 256 | } |
| 293 | arr.push(bill.id) | 257 | arr.push(bill.id) |
| ... | @@ -295,7 +259,7 @@ onMounted(() => { | ... | @@ -295,7 +259,7 @@ onMounted(() => { |
| 295 | form.value.orders = arr.toString() | 259 | form.value.orders = arr.toString() |
| 296 | console.log(list.value) | 260 | console.log(list.value) |
| 297 | } | 261 | } |
| 298 | if (route.query.activeId) { | 262 | if(route.query.activeId){ |
| 299 | cptId = route.query.activeId | 263 | cptId = route.query.activeId |
| 300 | } | 264 | } |
| 301 | if (route.query.totalMoney) { | 265 | if (route.query.totalMoney) { |
| ... | @@ -317,66 +281,34 @@ onMounted(() => { | ... | @@ -317,66 +281,34 @@ onMounted(() => { |
| 317 | getList() | 281 | getList() |
| 318 | } | 282 | } |
| 319 | 283 | ||
| 320 | if (user.userName.indexOf('@') > -1) { | 284 | if(user.userName.indexOf('@')>-1){ |
| 321 | form.value.address = user.userName | 285 | form.value.address = user.userName |
| 322 | } | 286 | } |
| 323 | route.query.orderSn && getDataInfo() | 287 | route.query.orderSn&&getDataInfo() |
| 324 | |||
| 325 | // 获取票务订单信息 | ||
| 326 | route.query.orderType == 6 && getTickInfo() | ||
| 327 | console.log(route.query) | ||
| 328 | }) | 288 | }) |
| 329 | 289 | ||
| 330 | // 票务订单详情 | 290 | async function getDataInfo(){ |
| 331 | async function getTickInfo() { | 291 | const res =await getOrderDetail({orderSn:route.query.orderSn}) |
| 332 | const res = await getTicketOrderInfo({orderId: route.query.orderId}) | 292 | formDate.value=res.data |
| 333 | ticketForm.value = res.data | ||
| 334 | console.log(res.data) | ||
| 335 | try { | ||
| 336 | ticketForm.value.extJson = JSON.parse(ticketForm.value.extJson) | ||
| 337 | ticketForm.value.extJson.ticketDate = JSON.parse(ticketForm.value.extJson.ticketDate) | ||
| 338 | ticketForm.value.extJson.ticketType = JSON.parse(ticketForm.value.extJson.ticketType) | ||
| 339 | cptId = ticketForm.value.extJson.ticketDate.activityId | ||
| 340 | totalMoney.val = ticketForm.value.extJson.total | ||
| 341 | await getDetail(ticketForm.value.extJson.ticketDate.activityId) | ||
| 342 | } catch (e) { | ||
| 343 | console.log(e) | ||
| 344 | } finally { | ||
| 345 | |||
| 346 | } | ||
| 347 | console.log(form.value) | ||
| 348 | |||
| 349 | } | ||
| 350 | |||
| 351 | async function getDetail(activeId) { | ||
| 352 | const res = await getTicketInfoByActivityId({activityId: activeId}) | ||
| 353 | matchForm.value = res.data | ||
| 354 | console.log(matchForm.value) | ||
| 355 | } | ||
| 356 | |||
| 357 | |||
| 358 | async function getDataInfo() { | ||
| 359 | const res = await getOrderDetail({orderSn: route.query.orderSn}) | ||
| 360 | formDate.value = res.data | ||
| 361 | } | 293 | } |
| 362 | 294 | ||
| 363 | function getList() { | 295 | function getList() { |
| 364 | if (route.query.type == '5') { | 296 | if(route.query.type=='5'){ |
| 365 | getLeagueInvoiceDetailPC(invoiceId).then(res => { | 297 | getLeagueInvoiceDetailPC(invoiceId).then(res => { |
| 366 | // 订单 | 298 | // 订单 |
| 367 | list.value = res.rows | 299 | list.value = res.rows |
| 368 | console.log(list.value) | 300 | console.log(list.value) |
| 369 | cptId = res.rows[0].activeId || res.rows[0].cptId | 301 | cptId = res.rows[0].activeId||res.rows[0].cptId |
| 370 | getRemark() | 302 | getRemark() |
| 371 | for (var bill of list.value) { | 303 | for (var bill of list.value) { |
| 372 | if (bill.messageObj) bill.messageObj = JSON.parse(bill.message) | 304 | if (bill.messageObj)bill.messageObj = JSON.parse(bill.message) |
| 373 | } | 305 | } |
| 374 | }); | 306 | }); |
| 375 | } else { | 307 | } else { |
| 376 | getInvoiceDetailBills(invoiceId).then(res => { | 308 | getInvoiceDetailBills(invoiceId).then(res => { |
| 377 | // 订单 | 309 | // 订单 |
| 378 | list.value = res.rows; | 310 | list.value = res.rows; |
| 379 | cptId = res.rows[0].activeId || res.rows[0].cptId | 311 | cptId = res.rows[0].activeId||res.rows[0].cptId |
| 380 | getRemark() | 312 | getRemark() |
| 381 | for (var bill of list.value) { | 313 | for (var bill of list.value) { |
| 382 | bill.messageObj = JSON.parse(bill.message) | 314 | bill.messageObj = JSON.parse(bill.message) |
| ... | @@ -385,14 +317,14 @@ function getList() { | ... | @@ -385,14 +317,14 @@ function getList() { |
| 385 | } | 317 | } |
| 386 | 318 | ||
| 387 | // 回显 | 319 | // 回显 |
| 388 | if (orderType.value == 6) { | 320 | if (orderType.value==6){ |
| 389 | invoice(invoiceId).then(res => { | 321 | invoice(invoiceId).then(res=>{ |
| 390 | // console.log(res) | 322 | // console.log(res) |
| 391 | form.value = res.data; | 323 | form.value = res.data; |
| 392 | form.value.invoiceForm = '1' | 324 | form.value.invoiceForm='1' |
| 393 | totalMoney.value = form.value.total | 325 | totalMoney.value = form.value.total |
| 394 | }) | 326 | }) |
| 395 | } else if (orderType.value == 5) { | 327 | }else if(orderType.value==5){ |
| 396 | getInvoiceDetailMatch(invoiceId).then(res => { | 328 | getInvoiceDetailMatch(invoiceId).then(res => { |
| 397 | form.value = res.data; | 329 | form.value = res.data; |
| 398 | totalMoney.value = form.value.total | 330 | totalMoney.value = form.value.total |
| ... | @@ -401,7 +333,7 @@ function getList() { | ... | @@ -401,7 +333,7 @@ function getList() { |
| 401 | // } | 333 | // } |
| 402 | // getAddrList() | 334 | // getAddrList() |
| 403 | }); | 335 | }); |
| 404 | } else { | 336 | }else{ |
| 405 | getInvoiceDetail(invoiceId).then(res => { | 337 | getInvoiceDetail(invoiceId).then(res => { |
| 406 | form.value = res.data; | 338 | form.value = res.data; |
| 407 | totalMoney.value = form.value.total | 339 | totalMoney.value = form.value.total |
| ... | @@ -416,39 +348,43 @@ function getList() { | ... | @@ -416,39 +348,43 @@ function getList() { |
| 416 | 348 | ||
| 417 | function goEditAddress(id) { | 349 | function goEditAddress(id) { |
| 418 | var obj = { | 350 | var obj = { |
| 419 | title: language.value == 0 ? '地址列表' : 'Address list', | 351 | title: language.value==0?'地址列表':'Address list', |
| 420 | show: true, | 352 | show: true, |
| 421 | id: id | 353 | id: id |
| 422 | } | 354 | } |
| 423 | proxy.$refs['dialogAddressListRef'].open(obj) | 355 | proxy.$refs['dialogAddressListRef'].open(obj) |
| 424 | } | 356 | } |
| 425 | |||
| 426 | function getRemark() { | 357 | function getRemark() { |
| 427 | getBaseInfoByActiveId(cptId).then(res => { | 358 | getBaseInfoByActiveId(cptId).then(res=>{ |
| 428 | if (res.data) { | 359 | if(res.data){ |
| 429 | // remark.value = res.data.remarks | 360 | // remark.value = res.data.remarks |
| 430 | remark.value = res.data.remarks.replace(/\n/g, '<br>') | 361 | remark.value = res.data.remarks.replace(/\n/g, '<br>') |
| 431 | } | 362 | } |
| 432 | }) | 363 | }) |
| 433 | } | 364 | } |
| 434 | |||
| 435 | function getAddrList() { | 365 | function getAddrList() { |
| 436 | addressList(user.userId).then(res => { | 366 | addressList(user.userId).then(res=>{ |
| 437 | addrList.value = res.rows | 367 | addrList.value = res.rows |
| 438 | if (addrList.value.length > 0) { | 368 | if(addrList.value.length>0){ |
| 439 | nowAddress.value = addrList.value[0] | 369 | nowAddress.value = addrList.value[0] |
| 440 | } | 370 | } |
| 441 | }) | 371 | }) |
| 442 | } | 372 | } |
| 443 | |||
| 444 | function getAddress(obj) { | 373 | function getAddress(obj) { |
| 445 | getAddrList() | 374 | getAddrList() |
| 446 | nowAddress.value = obj | 375 | nowAddress.value = obj |
| 447 | } | 376 | } |
| 448 | |||
| 449 | function submit() { | 377 | function submit() { |
| 378 | if(orderType.value==6 && !form.value.invoiceEmail){ | ||
| 379 | ElMessage.warning(language.value == 0 ?'请输入邮箱':'Please enter email') | ||
| 380 | return | ||
| 381 | } | ||
| 382 | if(orderType.value!=6 && !form.value.address){ | ||
| 383 | ElMessage.warning(language.value == 0 ?'请输入邮箱':'Please enter email') | ||
| 384 | return | ||
| 385 | } | ||
| 450 | proxy.$refs['formRef'].validate((valid) => { | 386 | proxy.$refs['formRef'].validate((valid) => { |
| 451 | if (valid) { | 387 | if(valid){ |
| 452 | // 提交确认 | 388 | // 提交确认 |
| 453 | ElMessageBox.confirm(language.value == 0 ? '确认提交吗?' : 'Confirm to submit ?', { | 389 | ElMessageBox.confirm(language.value == 0 ? '确认提交吗?' : 'Confirm to submit ?', { |
| 454 | confirmButtonText: language.value == 0 ? '确定' : 'Confirm', | 390 | confirmButtonText: language.value == 0 ? '确定' : 'Confirm', |
| ... | @@ -458,8 +394,8 @@ function submit() { | ... | @@ -458,8 +394,8 @@ function submit() { |
| 458 | form.value.activeId = cptId | 394 | form.value.activeId = cptId |
| 459 | form.value.total = totalMoney.value | 395 | form.value.total = totalMoney.value |
| 460 | form.value.version = 2 | 396 | form.value.version = 2 |
| 461 | form.value.invoicePhone = paymentType.value | 397 | form.value.invoicePhone=paymentType.value |
| 462 | if (orderType.value == 6) form.value.orders = route.query.orderSn | 398 | if (orderType.value==6) form.value.orders=route.query.orderSn |
| 463 | if (isEdit.value) { | 399 | if (isEdit.value) { |
| 464 | update() | 400 | update() |
| 465 | } else { | 401 | } else { |
| ... | @@ -471,37 +407,36 @@ function submit() { | ... | @@ -471,37 +407,36 @@ function submit() { |
| 471 | } | 407 | } |
| 472 | 408 | ||
| 473 | function update() { | 409 | function update() { |
| 474 | if (orderType.value == 6) { | 410 | if (orderType.value==6){ |
| 475 | TitckUpdateInvoice(form.value).then(res => { | 411 | TitckUpdateInvoice(form.value).then(res=>{ |
| 476 | //返回列表 | 412 | //返回列表 |
| 477 | backList() | 413 | backList() |
| 478 | }) | 414 | }) |
| 479 | } else if (orderType.value == 5) { | 415 | }else if(orderType.value==5){ |
| 480 | editInvoiceMatch(form.value).then(res => { | 416 | editInvoiceMatch(form.value).then(res=>{ |
| 481 | //返回列表 | 417 | //返回列表 |
| 482 | backList() | 418 | backList() |
| 483 | }) | 419 | }) |
| 484 | } else { | 420 | }else{ |
| 485 | editInvoice(form.value).then(res => { | 421 | editInvoice(form.value).then(res=>{ |
| 486 | //返回列表 | 422 | //返回列表 |
| 487 | backList() | 423 | backList() |
| 488 | }) | 424 | }) |
| 489 | } | 425 | } |
| 490 | 426 | ||
| 491 | } | 427 | } |
| 492 | |||
| 493 | function add() { | 428 | function add() { |
| 494 | if (orderType.value == 6) { | 429 | if(orderType.value==6){ |
| 495 | submitTitckInvoice(form.value).then((res) => { | 430 | submitTitckInvoice(form.value).then((res)=>{ |
| 496 | backList() | 431 | backList() |
| 497 | }) | 432 | }) |
| 498 | } else if (list.value[0].orderType || list.value[0].orderType == 0) { | 433 | }else if(list.value[0].orderType||list.value[0].orderType==0){ |
| 499 | submitInvoice(form.value).then(res => { | 434 | submitInvoice(form.value).then(res=>{ |
| 500 | //返回列表 | 435 | //返回列表 |
| 501 | backList() | 436 | backList() |
| 502 | }) | 437 | }) |
| 503 | } else { | 438 | } else { |
| 504 | submitCptInvoice(form.value).then(res => { | 439 | submitCptInvoice(form.value).then(res=>{ |
| 505 | //返回列表 | 440 | //返回列表 |
| 506 | backList() | 441 | backList() |
| 507 | }) | 442 | }) |
| ... | @@ -509,73 +444,38 @@ function add() { | ... | @@ -509,73 +444,38 @@ function add() { |
| 509 | 444 | ||
| 510 | 445 | ||
| 511 | } | 446 | } |
| 512 | |||
| 513 | function backList() { | 447 | function backList() { |
| 514 | router.push({ | 448 | router.push({ |
| 515 | // name: 'invoice' | 449 | // name: 'invoice' |
| 516 | name: 'myKP' | 450 | name: 'myKP' |
| 517 | }) | 451 | }) |
| 518 | } | 452 | } |
| 519 | |||
| 520 | function goBack() { | 453 | function goBack() { |
| 521 | router.go(-1) | 454 | router.go(-1) |
| 522 | } | 455 | } |
| 523 | |||
| 524 | // 获取票务订单详情 | ||
| 525 | function getTicketOrderDetail() { | ||
| 526 | |||
| 527 | } | ||
| 528 | </script> | 456 | </script> |
| 529 | 457 | ||
| 530 | <style lang="scss" scoped> | 458 | <style scoped lang="scss"> |
| 531 | .pl-back { | 459 | .pl-back{position: absolute;padding: 0 15px;display: flex;align-items: center;cursor: pointer} |
| 532 | position: absolute; | ||
| 533 | padding: 0 15px; | ||
| 534 | display: flex; | ||
| 535 | align-items: center; | ||
| 536 | cursor: pointer | ||
| 537 | } | ||
| 538 | |||
| 539 | .bigMoney { | 460 | .bigMoney { |
| 540 | font-size: 36px !important; | 461 | font-size: 36px !important; |
| 541 | font-family: 'DIN Alternate'; | 462 | font-family: 'DIN Alternate'; |
| 542 | font-weight: bold; | 463 | font-weight: bold; |
| 543 | } | 464 | } |
| 544 | 465 | .btn-lineG{font-size: 16px} | |
| 545 | .btn-lineG { | ||
| 546 | font-size: 16px | ||
| 547 | } | ||
| 548 | |||
| 549 | .bg-lineg { | 466 | .bg-lineg { |
| 550 | height: 40px; | 467 | height: 40px; |
| 551 | line-height: 40px; | 468 | line-height: 40px; |
| 552 | font-size: 18px; | 469 | font-size: 18px; |
| 553 | text-align: center; | 470 | text-align: center; |
| 554 | } | 471 | } |
| 555 | 472 | .border-info{position: relative; | |
| 556 | .border-info { | 473 | &>label{position: absolute;right: 0;top: 0;margin: 0;border-radius: 0 0 0px 15px; |
| 557 | position: relative; | 474 | padding: 5px 15px;font-size: 14px; |
| 558 | |||
| 559 | & > label { | ||
| 560 | position: absolute; | ||
| 561 | right: 0; | ||
| 562 | top: 0; | ||
| 563 | margin: 0; | ||
| 564 | border-radius: 0 0 0px 15px; | ||
| 565 | padding: 5px 15px; | ||
| 566 | font-size: 14px; | ||
| 567 | } | ||
| 568 | |||
| 569 | .poPrice { | ||
| 570 | position: absolute; | ||
| 571 | bottom: 0px; | ||
| 572 | right: 10px; | ||
| 573 | font-size: 24px; | ||
| 574 | line-height: 1; | ||
| 575 | font-family: "DIN Alternate" | ||
| 576 | } | 475 | } |
| 476 | .poPrice{position: absolute;bottom: 0px;right: 10px;font-size: 24px; | ||
| 477 | line-height: 1;font-family: "DIN Alternate"} | ||
| 577 | } | 478 | } |
| 578 | |||
| 579 | .blueTag { | 479 | .blueTag { |
| 580 | color: #fff; | 480 | color: #fff; |
| 581 | background-color: #1EC886; | 481 | background-color: #1EC886; |
| ... | @@ -590,7 +490,6 @@ function getTicketOrderDetail() { | ... | @@ -590,7 +490,6 @@ function getTicketOrderDetail() { |
| 590 | color: #fff; | 490 | color: #fff; |
| 591 | background-color: #ff8124; | 491 | background-color: #ff8124; |
| 592 | } | 492 | } |
| 593 | |||
| 594 | .pinkTag { | 493 | .pinkTag { |
| 595 | color: #fff; | 494 | color: #fff; |
| 596 | background-color: #f55497; | 495 | background-color: #f55497; |
| ... | @@ -600,7 +499,6 @@ function getTicketOrderDetail() { | ... | @@ -600,7 +499,6 @@ function getTicketOrderDetail() { |
| 600 | color: #fff; | 499 | color: #fff; |
| 601 | background-color: #bad814; | 500 | background-color: #bad814; |
| 602 | } | 501 | } |
| 603 | |||
| 604 | .leftboderTT { | 502 | .leftboderTT { |
| 605 | font-weight: 600; | 503 | font-weight: 600; |
| 606 | font-size: 16px; | 504 | font-size: 16px; |
| ... | @@ -654,18 +552,8 @@ function getTicketOrderDetail() { | ... | @@ -654,18 +552,8 @@ function getTicketOrderDetail() { |
| 654 | .red { | 552 | .red { |
| 655 | color: #FF8124; | 553 | color: #FF8124; |
| 656 | } | 554 | } |
| 657 | 555 | .tip{font-size: 14px;color: #666;padding: 0 10px;} | |
| 658 | .tip { | 556 | .mw500{max-width: 500px;margin: auto} |
| 659 | font-size: 14px; | ||
| 660 | color: #666; | ||
| 661 | padding: 0 10px; | ||
| 662 | } | ||
| 663 | |||
| 664 | .mw500 { | ||
| 665 | max-width: 500px; | ||
| 666 | margin: auto | ||
| 667 | } | ||
| 668 | |||
| 669 | .bigSize { | 557 | .bigSize { |
| 670 | font-size: 16px; | 558 | font-size: 16px; |
| 671 | margin-bottom: 5px; | 559 | margin-bottom: 5px; |
| ... | @@ -685,10 +573,8 @@ function getTicketOrderDetail() { | ... | @@ -685,10 +573,8 @@ function getTicketOrderDetail() { |
| 685 | padding: 10px; | 573 | padding: 10px; |
| 686 | box-sizing: border-box; | 574 | box-sizing: border-box; |
| 687 | } | 575 | } |
| 688 | |||
| 689 | .bigprice { | 576 | .bigprice { |
| 690 | font-size: 26px; | 577 | font-size: 26px; |
| 691 | line-height: 1; | 578 | line-height: 1;font-family: "DIN Alternate"; |
| 692 | font-family: "DIN Alternate"; | ||
| 693 | } | 579 | } |
| 694 | </style> | 580 | </style> | ... | ... |
| ... | @@ -92,8 +92,9 @@ | ... | @@ -92,8 +92,9 @@ |
| 92 | <el-form-item :label="`税号`" required v-if="form.invoiceType=='0'" prop="invoiceTfn"> | 92 | <el-form-item :label="`税号`" required v-if="form.invoiceType=='0'" prop="invoiceTfn"> |
| 93 | {{form.invoiceTfn}} | 93 | {{form.invoiceTfn}} |
| 94 | </el-form-item> | 94 | </el-form-item> |
| 95 | <el-form-item :label="`邮箱`" v-if="form.invoiceForm=='1'" required prop="invoiceEmail"> | 95 | <el-form-item :label="`邮箱`" v-if="form.invoiceForm=='1'" required> |
| 96 | {{form.invoiceEmail}} | 96 | <view v-if="form.address">{{form.address}}</view> |
| 97 | <view v-else-if="form.invoiceEmail">{{form.invoiceEmail}}</view> | ||
| 97 | </el-form-item> | 98 | </el-form-item> |
| 98 | <el-form-item label="备注" prop="remarks"> | 99 | <el-form-item label="备注" prop="remarks"> |
| 99 | {{form.remarks}} | 100 | {{form.remarks}} | ... | ... |
| ... | @@ -252,7 +252,7 @@ | ... | @@ -252,7 +252,7 @@ |
| 252 | <el-card> | 252 | <el-card> |
| 253 | <el-row :gutter="20"> | 253 | <el-row :gutter="20"> |
| 254 | <el-col :lg="8"> | 254 | <el-col :lg="8"> |
| 255 | <a class="liveImgbox" target="_blank" href="https://wx.vzan.com/live/page/1151815649?v=1720589464698"> | 255 | <a class="liveImgbox" target="_blank" @click="golive(livelist[0])"> |
| 256 | <div class="livetimecount" v-if="time>0"> | 256 | <div class="livetimecount" v-if="time>0"> |
| 257 | <van-count-down :time="time" format="DD 天 HH 时 mm 分 ss 秒"> | 257 | <van-count-down :time="time" format="DD 天 HH 时 mm 分 ss 秒"> |
| 258 | <template #default="timeData"> | 258 | <template #default="timeData"> |
| ... | @@ -271,12 +271,18 @@ | ... | @@ -271,12 +271,18 @@ |
| 271 | </template> | 271 | </template> |
| 272 | </van-count-down> | 272 | </van-count-down> |
| 273 | </div> | 273 | </div> |
| 274 | <!-- <i class="ii" v-else-if="etime>0&&time<=0">直播中</i>--> | 274 | <i class="ii" v-else-if="etime>0&&time<=0">直播中</i> |
| 275 | <!-- <i class="livetimecount" v-if="etime<=0">直播已结束</i>--> | 275 | <!-- <i class="livetimecount" v-if="etime<=0">直播已结束</i>--> |
| 276 | <div class="imgBox"><img src="/img/111.jpeg"/></div> | 276 | <div class="imgBox"> |
| 277 | <h3 class="esp"> | 277 | <img v-if="time>0" src="/img/111.jpeg"/> |
| 278 | <img v-else :src="fillImgUrl_webSite(livelist[0]?.picUrl)"> | ||
| 279 | </div> | ||
| 280 | <h3 class="esp" v-if="time>0"> | ||
| 278 | 2024WDSF亚洲体育舞蹈节 | 281 | 2024WDSF亚洲体育舞蹈节 |
| 279 | </h3> | 282 | </h3> |
| 283 | <h3 class="esp" v-else> | ||
| 284 | {{livelist[0]?.name }} | ||
| 285 | </h3> | ||
| 280 | </a> | 286 | </a> |
| 281 | </el-col> | 287 | </el-col> |
| 282 | <el-col :lg="16"> | 288 | <el-col :lg="16"> |
| ... | @@ -298,7 +304,7 @@ | ... | @@ -298,7 +304,7 @@ |
| 298 | </el-col> | 304 | </el-col> |
| 299 | </el-row> | 305 | </el-row> |
| 300 | <el-row class="news-l-r"> | 306 | <el-row class="news-l-r"> |
| 301 | <el-col v-for="(n,index) in livelist" :lg="8"> | 307 | <el-col v-for="(n,index) in livelist" :lg="8" v-show="index>0"> |
| 302 | <div class="item" style="padding: 0;margin: 20px 0 0" @click="goDetail(n)"> | 308 | <div class="item" style="padding: 0;margin: 20px 0 0" @click="goDetail(n)"> |
| 303 | <div class="imgbox"> | 309 | <div class="imgbox"> |
| 304 | <i class="playIcon"></i> | 310 | <i class="playIcon"></i> |
| ... | @@ -463,7 +469,7 @@ const init = () => { | ... | @@ -463,7 +469,7 @@ const init = () => { |
| 463 | etime.value = dayjs('2024-07-22 12:00:00').diff(today, 'millisecond') | 469 | etime.value = dayjs('2024-07-22 12:00:00').diff(today, 'millisecond') |
| 464 | getNewsListById( | 470 | getNewsListById( |
| 465 | { | 471 | { |
| 466 | pageSize: 3, | 472 | pageSize: time.value>0? 3:4, |
| 467 | pageNum: 1, | 473 | pageNum: 1, |
| 468 | sortId: '10000006' | 474 | sortId: '10000006' |
| 469 | } | 475 | } |
| ... | @@ -519,6 +525,15 @@ const goDetail = (n) => { | ... | @@ -519,6 +525,15 @@ const goDetail = (n) => { |
| 519 | }) | 525 | }) |
| 520 | } | 526 | } |
| 521 | } | 527 | } |
| 528 | const golive = (n) => { | ||
| 529 | if(time.value>0){ | ||
| 530 | window.open('https://wx.vzan.com/live/page/1151815649?v=1720589464698') | ||
| 531 | } else { | ||
| 532 | router.push({ | ||
| 533 | path: `/news/detail/${n.noteId}` | ||
| 534 | }) | ||
| 535 | } | ||
| 536 | } | ||
| 522 | const goLeaderInfo = (n) => { | 537 | const goLeaderInfo = (n) => { |
| 523 | // router.push({ | 538 | // router.push({ |
| 524 | // path: `/about/leaderInfo/${n.id || 0}` | 539 | // path: `/about/leaderInfo/${n.id || 0}` | ... | ... |
| ... | @@ -46,7 +46,7 @@ | ... | @@ -46,7 +46,7 @@ |
| 46 | </el-form-item> | 46 | </el-form-item> |
| 47 | </el-col> | 47 | </el-col> |
| 48 | <el-col :lg="12"> | 48 | <el-col :lg="12"> |
| 49 | <el-form-item :label="language==0?'出生日期1':'Date of Birth'" prop="birth" required> | 49 | <el-form-item :label="language==0?'出生日期':'Date of Birth'" prop="birth" required> |
| 50 | <el-date-picker | 50 | <el-date-picker |
| 51 | v-model="form.birth" :disabled="editgay&&form.labelArr.indexOf('0')>-1" | 51 | v-model="form.birth" :disabled="editgay&&form.labelArr.indexOf('0')>-1" |
| 52 | style="width: 100%;" | 52 | style="width: 100%;" |
| ... | @@ -250,9 +250,8 @@ function reset(){ | ... | @@ -250,9 +250,8 @@ function reset(){ |
| 250 | }) | 250 | }) |
| 251 | } | 251 | } |
| 252 | } | 252 | } |
| 253 | function disabledBirth(date) { | 253 | function disabledBirth(time) { |
| 254 | const today = dayjs().format('YYYY-MM-DD') | 254 | return time.getTime() > new Date().getTime() |
| 255 | return (date.getTime() >= dayjs(today).valueOf()) | ||
| 256 | } | 255 | } |
| 257 | function getCountryList() { | 256 | function getCountryList() { |
| 258 | match.countryList().then(res => { | 257 | match.countryList().then(res => { | ... | ... |
| ... | @@ -90,12 +90,12 @@ | ... | @@ -90,12 +90,12 @@ |
| 90 | :required="!form.wdsfMin&&form.labelArr.indexOf('0')>-1"> | 90 | :required="!form.wdsfMin&&form.labelArr.indexOf('0')>-1"> |
| 91 | <el-input v-model="form.idcCode" :disabled="editgay" @blur="giveBirthDay"/> | 91 | <el-input v-model="form.idcCode" :disabled="editgay" @blur="giveBirthDay"/> |
| 92 | </el-form-item> | 92 | </el-form-item> |
| 93 | <el-form-item :label="language==0?'2出生日期':'Date of Birth'" prop="birth" | 93 | <el-form-item :label="language==0?'出生日期':'Date of Birth'" prop="birth" |
| 94 | :required="!form.wdsfMin&&form.labelArr.indexOf('0')>-1" | 94 | :required="!form.wdsfMin&&form.labelArr.indexOf('0')>-1" |
| 95 | :disabled-date="disabledBirth"> | 95 | > |
| 96 | <el-date-picker | 96 | <el-date-picker |
| 97 | v-model="form.birth" :disabled="form.idcType=='0'" | 97 | v-model="form.birth" :disabled="form.idcType=='0'" |
| 98 | style="width: 100%;" | 98 | style="width: 100%;" :disabled-date="disabledBirth" |
| 99 | type="date" format="YYYY-MM-DD" value-format="YYYY-MM-DD" | 99 | type="date" format="YYYY-MM-DD" value-format="YYYY-MM-DD" |
| 100 | /> | 100 | /> |
| 101 | </el-form-item> | 101 | </el-form-item> | ... | ... |
| ... | @@ -60,7 +60,7 @@ | ... | @@ -60,7 +60,7 @@ |
| 60 | <el-form-item :label="language==0?'出生日期':'Date of Birth'" prop="birth"> | 60 | <el-form-item :label="language==0?'出生日期':'Date of Birth'" prop="birth"> |
| 61 | <el-date-picker | 61 | <el-date-picker |
| 62 | v-model="form.birth" :disabled="form.idcType=='0'" | 62 | v-model="form.birth" :disabled="form.idcType=='0'" |
| 63 | style="width: 100%;" | 63 | style="width: 100%;" :disabled-date="disabledBirth" |
| 64 | type="date" format="YYYY-MM-DD" value-format="YYYY-MM-DD" | 64 | type="date" format="YYYY-MM-DD" value-format="YYYY-MM-DD" |
| 65 | /> | 65 | /> |
| 66 | </el-form-item> | 66 | </el-form-item> |
| ... | @@ -390,6 +390,9 @@ function submitForm() { | ... | @@ -390,6 +390,9 @@ function submitForm() { |
| 390 | function cancel() { | 390 | function cancel() { |
| 391 | show.value = false | 391 | show.value = false |
| 392 | } | 392 | } |
| 393 | function disabledBirth(time) { | ||
| 394 | return time.getTime() > new Date().getTime() | ||
| 395 | } | ||
| 393 | </script> | 396 | </script> |
| 394 | 397 | ||
| 395 | <style lang="scss"> | 398 | <style lang="scss"> | ... | ... |
| ... | @@ -76,7 +76,7 @@ | ... | @@ -76,7 +76,7 @@ |
| 76 | <el-form-item :label="language==0?'出生日期':'Date of Birth'" required> | 76 | <el-form-item :label="language==0?'出生日期':'Date of Birth'" required> |
| 77 | <el-date-picker | 77 | <el-date-picker |
| 78 | v-model="form.birth" | 78 | v-model="form.birth" |
| 79 | style="width: 100%;" | 79 | style="width: 100%;" :disabled-date="disabledBirth" |
| 80 | type="date" format="YYYY-MM-DD" value-format="YYYY-MM-DD" | 80 | type="date" format="YYYY-MM-DD" value-format="YYYY-MM-DD" |
| 81 | /> | 81 | /> |
| 82 | </el-form-item> | 82 | </el-form-item> |
| ... | @@ -359,6 +359,10 @@ function codeSuccess(msg) { | ... | @@ -359,6 +359,10 @@ function codeSuccess(msg) { |
| 359 | } | 359 | } |
| 360 | }) | 360 | }) |
| 361 | } | 361 | } |
| 362 | |||
| 363 | function disabledBirth(time) { | ||
| 364 | return time.getTime() > new Date().getTime() | ||
| 365 | } | ||
| 362 | </script> | 366 | </script> |
| 363 | 367 | ||
| 364 | <style lang="scss"> | 368 | <style lang="scss"> | ... | ... |
| ... | @@ -34,6 +34,9 @@ | ... | @@ -34,6 +34,9 @@ |
| 34 | </el-form-item> | 34 | </el-form-item> |
| 35 | </el-form> | 35 | </el-form> |
| 36 | </div> | 36 | </div> |
| 37 | <p class="tip" v-if="language==0">报名单人项目只需选中需要报名的人员</p> | ||
| 38 | <p class="tip" v-if="language==1">To register for the individual project, simply select the person who needs to register</p> | ||
| 39 | |||
| 37 | <p v-if="noPhotoCanSign == 0" class="text-danger">{{ language==0?'*需上传照片才可报名':'*Please upload photo before sign up' }}</p> | 40 | <p v-if="noPhotoCanSign == 0" class="text-danger">{{ language==0?'*需上传照片才可报名':'*Please upload photo before sign up' }}</p> |
| 38 | <el-table ref="allSportmenTable" v-loading="loading" :data="tableData" height="60vh" | 41 | <el-table ref="allSportmenTable" v-loading="loading" :data="tableData" height="60vh" |
| 39 | @selection-change="handleSelectionChange" :row-key="getRowKeys"> | 42 | @selection-change="handleSelectionChange" :row-key="getRowKeys"> | ... | ... |
| 1 | import {defineConfig, loadEnv} from 'vite' | 1 | import { defineConfig, loadEnv } from 'vite' |
| 2 | import path, {resolve} from 'path' | 2 | import path, { resolve } from 'path' |
| 3 | import createVitePlugins from './vite/plugins' | 3 | import createVitePlugins from './vite/plugins' |
| 4 | import inject from '@rollup/plugin-inject' | 4 | import inject from '@rollup/plugin-inject' |
| 5 | import commonjs from '@rollup/plugin-commonjs' | 5 | import commonjs from '@rollup/plugin-commonjs' |
| 6 | // import legacy from '@vitejs/plugin-legacy' | 6 | // import legacy from '@vitejs/plugin-legacy' |
| 7 | 7 | ||
| 8 | // https://vitejs.dev/config/ | 8 | // https://vitejs.dev/config/ |
| 9 | export default defineConfig(({mode, command}) => { | 9 | export default defineConfig(({ mode, command }) => { |
| 10 | const env = loadEnv(mode, process.cwd()) | 10 | const env = loadEnv(mode, process.cwd()) |
| 11 | return { | 11 | return { |
| 12 | // 部署生产环境和开发环境下的URL。 | 12 | // 部署生产环境和开发环境下的URL。 |
| ... | @@ -70,30 +70,30 @@ export default defineConfig(({mode, command}) => { | ... | @@ -70,30 +70,30 @@ export default defineConfig(({mode, command}) => { |
| 70 | rewrite: (p) => p.replace(/^\/dev-api\/ztx-train/, '') | 70 | rewrite: (p) => p.replace(/^\/dev-api\/ztx-train/, '') |
| 71 | }, | 71 | }, |
| 72 | '/dev-api/ztx-match': { | 72 | '/dev-api/ztx-match': { |
| 73 | target: 'http://192.168.1.118:8083', | 73 | // target: 'http://192.168.1.118:8083', |
| 74 | // target: 'https://jijin.wtwuxicenter.com/stage-api', | 74 | target: 'https://jijin.wtwuxicenter.com/stage-api', |
| 75 | changeOrigin: true, | 75 | changeOrigin: true, |
| 76 | rewrite: (p) => p.replace(/^\/dev-api\/ztx-match/, '') | 76 | rewrite: (p) => p.replace(/^\/dev-api\/ztx-match/, '') |
| 77 | }, | 77 | }, |
| 78 | '/dev-api/ztx-webSite': { | 78 | '/dev-api/ztx-webSite': { |
| 79 | // target: 'https://dance.itechtop.cn/stage-api', | 79 | target: 'https://wdsfwuxicenter.com/stage-api/', |
| 80 | target: 'http://192.168.1.118:8081/', | ||
| 81 | changeOrigin: true, | 80 | changeOrigin: true, |
| 82 | rewrite: (p) => p.replace(/^\/dev-api\/ztx-webSite/, '') | 81 | rewrite: (p) => p.replace(/^\/dev-api\/ztx-webSite/, '') |
| 83 | }, | 82 | }, |
| 84 | '/dev-api': { | 83 | '/dev-api': { |
| 85 | target: 'http://192.168.1.118:8081/', | 84 | // target: 'http://192.168.1.118:8081/', |
| 86 | // target: 'http://192.168.1.131:8081/', | 85 | // target: 'http://192.168.1.131:8081/', |
| 87 | // target: 'https://jijin.wtwuxicenter.com/stage-api', | 86 | target: 'https://jijin.wtwuxicenter.com/stage-api', |
| 87 | // target: 'http://124.70.181.90:1880/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.131:8098/', |
| 94 | // target: 'http://192.168.1.131:8081/', | 94 | // target: 'http://192.168.1.131:8081/', |
| 95 | // target: 'https://jijin.wtwuxicenter.com/ticket', | 95 | target: 'https://jijin.wtwuxicenter.com/h5/', |
| 96 | // target: 'https://ticketh5.wdsfwuxicenter.com/ticket', | 96 | // target: 'https://ticketh5.wdsfwuxicenter.com/h5/', |
| 97 | changeOrigin: true, | 97 | changeOrigin: true, |
| 98 | rewrite: (p) => p.replace(/^\/ticket/, '') | 98 | rewrite: (p) => p.replace(/^\/ticket/, '') |
| 99 | } | 99 | } | ... | ... |
-
Please register or sign in to post a comment