82d86ec5 by zhangmeng

票务

1 parent 9503459c
1
2
3 /** 1 /**
4 * 通用js方法封装处理 2 * 通用js方法封装处理
5 * Copyright (c) 2019 ruoyi 3 * Copyright (c) 2019 ruoyi
...@@ -37,7 +35,9 @@ export function parseTime(time, pattern) { ...@@ -37,7 +35,9 @@ export function parseTime(time, pattern) {
37 const time_str = format.replace(/{(y|m|d|h|i|s|a)+}/g, (result, key) => { 35 const time_str = format.replace(/{(y|m|d|h|i|s|a)+}/g, (result, key) => {
38 let value = formatObj[key] 36 let value = formatObj[key]
39 // Note: getDay() returns 0 on Sunday 37 // Note: getDay() returns 0 on Sunday
40 if (key === 'a') { return ['日', '一', '二', '三', '四', '五', '六'][value] } 38 if (key === 'a') {
39 return ['日', '一', '二', '三', '四', '五', '六'][value]
40 }
41 if (result.length > 0 && value < 10) { 41 if (result.length > 0 && value < 10) {
42 value = '0' + value 42 value = '0' + value
43 } 43 }
...@@ -114,8 +114,10 @@ export function selectDictLabels(datas, value, separator) { ...@@ -114,8 +114,10 @@ export function selectDictLabels(datas, value, separator) {
114 114
115 // 字符串格式化(%s ) 115 // 字符串格式化(%s )
116 export function sprintf(str) { 116 export function sprintf(str) {
117 var args = arguments; var flag = true; var i = 1 117 var args = arguments;
118 str = str.replace(/%s/g, function() { 118 var flag = true;
119 var i = 1
120 str = str.replace(/%s/g, function () {
119 var arg = args[i++] 121 var arg = args[i++]
120 if (typeof arg === 'undefined') { 122 if (typeof arg === 'undefined') {
121 flag = false 123 flag = false
...@@ -148,7 +150,7 @@ export function mergeRecursive(source, target) { ...@@ -148,7 +150,7 @@ export function mergeRecursive(source, target) {
148 } 150 }
149 } 151 }
150 return source 152 return source
151 }; 153 }
152 154
153 /** 155 /**
154 * 构造树型结构数据 156 * 构造树型结构数据
...@@ -198,13 +200,14 @@ export function handleTree(data, id, parentId, children) { ...@@ -198,13 +200,14 @@ export function handleTree(data, id, parentId, children) {
198 } 200 }
199 } 201 }
200 } 202 }
203
201 return tree 204 return tree
202 } 205 }
203 206
204 /** 207 /**
205 * 参数处理 208 * 参数处理
206 * @param {*} params 参数 209 * @param {*} params 参数
207 */ 210 */
208 export function tansParams(params) { 211 export function tansParams(params) {
209 let result = '' 212 let result = ''
210 for (const propName of Object.keys(params)) { 213 for (const propName of Object.keys(params)) {
...@@ -232,7 +235,8 @@ export function tansParams(params) { ...@@ -232,7 +235,8 @@ export function tansParams(params) {
232 export function getNormalPath(p) { 235 export function getNormalPath(p) {
233 if (p.length === 0 || !p || p == 'undefined') { 236 if (p.length === 0 || !p || p == 'undefined') {
234 return p 237 return p
235 }; 238 }
239
236 const res = p.replace('//', '/') 240 const res = p.replace('//', '/')
237 if (res[res.length - 1] === '/') { 241 if (res[res.length - 1] === '/') {
238 return res.slice(0, res.length - 1) 242 return res.slice(0, res.length - 1)
...@@ -311,3 +315,11 @@ export function downloadFile(filePath, prefix) { ...@@ -311,3 +315,11 @@ export function downloadFile(filePath, prefix) {
311 return `${prefix}/upload/getFile?fileUrl=${encodeURIComponent(filePath)}` 315 return `${prefix}/upload/getFile?fileUrl=${encodeURIComponent(filePath)}`
312 } 316 }
313 } 317 }
318
319 export function triggerLanguage(fn, cn, en) {
320 if (fn) {
321 return en
322 } else {
323 return cn
324 }
325 }
......
...@@ -21,7 +21,7 @@ ...@@ -21,7 +21,7 @@
21 </div> 21 </div>
22 22
23 <div class="form"> 23 <div class="form">
24 <el-form ref="formRef" :model="orderForm" :rules="rules" label-width="100px"> 24 <el-form ref="formRef" :model="orderForm" :rules="rules" label-width="120px">
25 <!-- <el-form-item--> 25 <!-- <el-form-item-->
26 <!-- :label="language == 0 ? '联系人' : 'contact'" prop="contacts"--> 26 <!-- :label="language == 0 ? '联系人' : 'contact'" prop="contacts"-->
27 <!-- >--> 27 <!-- >-->
...@@ -145,9 +145,12 @@ import { ...@@ -145,9 +145,12 @@ import {
145 import {ElMessage} from "element-plus"; 145 import {ElMessage} from "element-plus";
146 import {languageFormat} from "@/viewsPc/seat/utils/language.js"; 146 import {languageFormat} from "@/viewsPc/seat/utils/language.js";
147 import useUserStore from "/@/store/modules/user"; 147 import useUserStore from "/@/store/modules/user";
148 import {useStorage} from "@vueuse/core/index";
148 149
149 const useStore = useUserStore() 150 const useStore = useUserStore()
150 const language = useStore.language; 151
152
153 const language = useStorage('language', 0)
151 console.log(language) 154 console.log(language)
152 const loading = ref(false); 155 const loading = ref(false);
153 const route = useRoute(); 156 const route = useRoute();
......
...@@ -6,7 +6,7 @@ ...@@ -6,7 +6,7 @@
6 <div class="info"> 6 <div class="info">
7 <div class="title">{{ matchForm.name }}</div> 7 <div class="title">{{ matchForm.name }}</div>
8 <div class="time"> 8 <div class="time">
9 {{ languageFormat(language, "时间", "Event Date & Time") }}{{ 9 {{ triggerLanguage(language, "时间", "Event Date & Time") }}{{
10 matchForm.ticketStart 10 matchForm.ticketStart
11 ? dayjs(matchForm.ticketStart).format("YYYY.MM.DD") 11 ? dayjs(matchForm.ticketStart).format("YYYY.MM.DD")
12 : "" 12 : ""
...@@ -35,14 +35,14 @@ ...@@ -35,14 +35,14 @@
35 }} 35 }}
36 </div> 36 </div>
37 <div class="address"> 37 <div class="address">
38 {{ languageFormat(language, "地址", "Location") }}{{ 38 {{ triggerLanguage(language, "地址", "Location") }}{{
39 matchForm.address 39 matchForm.address
40 }} 40 }}
41 </div> 41 </div>
42 <!-- 时间 --> 42 <!-- 时间 -->
43 <div class="select_item_box"> 43 <div class="select_item_box">
44 <div class="label"> 44 <div class="label">
45 {{ languageFormat(language, "票档", "Tickets") }} 45 {{ triggerLanguage(language, "票档", "Tickets") }}
46 </div> 46 </div>
47 <div class="select_item"> 47 <div class="select_item">
48 <div 48 <div
...@@ -60,7 +60,7 @@ ...@@ -60,7 +60,7 @@
60 <!-- 时间 --> 60 <!-- 时间 -->
61 <div class="select_item_box"> 61 <div class="select_item_box">
62 <div class="label"> 62 <div class="label">
63 {{ languageFormat(language, "时间", "Event Date & Time") }} 63 {{ triggerLanguage(language, "时间", "Event Date & Time") }}
64 </div> 64 </div>
65 <div class="select_item"> 65 <div class="select_item">
66 <div 66 <div
...@@ -77,8 +77,8 @@ ...@@ -77,8 +77,8 @@
77 </div> 77 </div>
78 78
79 <!-- button --> 79 <!-- button -->
80 <div class="btn forPc" @click="toSelectSeat()"> 80 <div class="btn forPc" style="margin-left: 40px" @click="toSelectSeat()">
81 {{ languageFormat(language, "添加观影人", "Add Moviegoers") }} 81 {{ triggerLanguage(language, "添加观影人", "Add Moviegoers") }}
82 </div> 82 </div>
83 </div> 83 </div>
84 </div> 84 </div>
...@@ -91,7 +91,7 @@ ...@@ -91,7 +91,7 @@
91 91
92 92
93 <script setup> 93 <script setup>
94 import {ref, reactive, onMounted, watch} from "vue"; 94 import {ref, reactive, onMounted, watch, computed} from "vue";
95 import {listApi, getTicketInfoByActivityId, getTicketListApi} from '@/apiPc/booking' 95 import {listApi, getTicketInfoByActivityId, getTicketListApi} from '@/apiPc/booking'
96 96
97 import {dayjs} from "element-plus"; 97 import {dayjs} from "element-plus";
...@@ -99,10 +99,12 @@ import {ElMessageBox, ElMessage} from "element-plus"; ...@@ -99,10 +99,12 @@ import {ElMessageBox, ElMessage} from "element-plus";
99 import {languageFormat, getDayName} from "@/viewsPc/seat/utils/language"; 99 import {languageFormat, getDayName} from "@/viewsPc/seat/utils/language";
100 import {fillImgUrl} from "/@/utils/ruoyi"; 100 import {fillImgUrl} from "/@/utils/ruoyi";
101 import useUserStore from "/@/store/modules/user"; 101 import useUserStore from "/@/store/modules/user";
102 import {triggerLanguage} from '@/utils/ruoyi'
103 import {useStorage} from "@vueuse/core/index";
102 104
105 const language = useStorage('language', 0)
103 const useStore = useUserStore() 106 const useStore = useUserStore()
104 const language = useStore.language; 107 const user = computed(() => useUserStore().user)
105 const user = useStore.user
106 const route = useRoute(); 108 const route = useRoute();
107 const router = useRouter(); 109 const router = useRouter();
108 const activeId = ref(route.params.activeId) 110 const activeId = ref(route.params.activeId)
...@@ -152,10 +154,10 @@ function selectTick(v) { ...@@ -152,10 +154,10 @@ function selectTick(v) {
152 } 154 }
153 155
154 function toSelectSeat() { 156 function toSelectSeat() {
155 if (!selectForm.value.latId) return ElMessage.error(language.value == 0 ? "请选择票档" : 'Please select a ticket file') 157 if (!selectForm.value.latId) return ElMessage.error(language == 0 ? "请选择票档" : 'Please select a ticket file')
156 if (!selectForm.value.id) return ElMessage.error(language.value == 0 ? "请选择时间" : 'Please select time') 158 if (!selectForm.value.id) return ElMessage.error(language == 0 ? "请选择时间" : 'Please select time')
157 console.log(user) 159 console.log(user.value)
158 if (!user) { 160 if (!user.value) {
159 useStore().setVisitor() 161 useStore().setVisitor()
160 return 162 return
161 } 163 }
......
...@@ -27,7 +27,7 @@ ...@@ -27,7 +27,7 @@
27 center 27 center
28 width="700" 28 width="700"
29 > 29 >
30 <el-form ref="formRef" :model="form" :rules="rules" label-width="80px" size="large" style="margin: 80px"> 30 <el-form ref="formRef" :model="form" :rules="rules" label-width="100px" size="large" style="margin: 80px">
31 <el-form-item :label="language==0?'姓名':'name'" prop="name" required> 31 <el-form-item :label="language==0?'姓名':'name'" prop="name" required>
32 <el-input v-model="form.name" :placeholder="language==0?'请输入':'Please input'"/> 32 <el-input v-model="form.name" :placeholder="language==0?'请输入':'Please input'"/>
33 </el-form-item> 33 </el-form-item>
...@@ -66,23 +66,28 @@ import {aadCustomer, customerListApi, delCustomer} from '@/apiPc/booking' ...@@ -66,23 +66,28 @@ import {aadCustomer, customerListApi, delCustomer} from '@/apiPc/booking'
66 import {ElMessage, ElMessageBox} from "element-plus"; 66 import {ElMessage, ElMessageBox} from "element-plus";
67 import {languageFormat} from "@/viewsPc/seat/utils/language.js"; 67 import {languageFormat} from "@/viewsPc/seat/utils/language.js";
68 import useUserStore from "/@/store/modules/user"; 68 import useUserStore from "/@/store/modules/user";
69 import {useStorage} from "@vueuse/core/index";
70 import {triggerLanguage} from '@/utils/ruoyi'
69 71
70 const useStore = useUserStore() 72 const useStore = useUserStore()
71 const language = useStore.language; 73 const language = useStorage('language', 0)
72
73 const personnelList = ref([]) 74 const personnelList = ref([])
74 const show = ref(false) 75 const show = ref(false)
75 const form = ref({}) 76 const form = ref({})
76 const formRef = ref(null) 77 const formRef = ref(null)
77 const rules = ref({ 78 const rules = ref({
78 name: [ 79 name: [
79 {required: true, message: "请输入姓名", trigger: "blur"}, 80 {required: true, message: triggerLanguage(language.value, '请输入姓名', 'Please input'), trigger: "blur"},
80 ], 81 ],
81 idCard: [ 82 idCard: [
82 {required: true, message: "请输入证件号", trigger: "blur"}, 83 {
84 required: true,
85 message: triggerLanguage(language.value, '请输入证件号', 'Please enter the ID after ah'),
86 trigger: "blur"
87 },
83 ], 88 ],
84 idcType: [ 89 idcType: [
85 {required: true, message: "请选择证件类型", trigger: "blur"}, 90 {required: true, message: triggerLanguage(language.value, '请选择证件类型', 'Please choose'), trigger: "blur"},
86 ], 91 ],
87 }) 92 })
88 93
......
Styling with Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!