Compare commits
No commits in common. "585a0582b823b6868cfec6bc81e9d66b0ff1d437" and "4cdff7a594a803aa9c3a34c93679f03a39b82bd2" have entirely different histories.
585a0582b8
...
4cdff7a594
@ -15,6 +15,8 @@ onHide(() => {
|
|||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="scss">
|
<style lang="scss">
|
||||||
|
@import "@/static/fonts/iconfont.css";
|
||||||
|
|
||||||
/* 添加全局样式 */
|
/* 添加全局样式 */
|
||||||
page,
|
page,
|
||||||
body,
|
body,
|
||||||
@ -33,4 +35,24 @@ body,
|
|||||||
.mb12 {
|
.mb12 {
|
||||||
margin-bottom: 12px;
|
margin-bottom: 12px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 重置按钮样式
|
||||||
|
.reset-btn {
|
||||||
|
position: absolute;
|
||||||
|
left: 0;
|
||||||
|
top: 0;
|
||||||
|
right: 0;
|
||||||
|
bottom: 0;
|
||||||
|
z-index: 1000;
|
||||||
|
background: none;
|
||||||
|
border: none;
|
||||||
|
outline: none;
|
||||||
|
padding: 0;
|
||||||
|
margin: 0;
|
||||||
|
|
||||||
|
&::after {
|
||||||
|
border: none;
|
||||||
|
content: " ";
|
||||||
|
}
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
Before Width: | Height: | Size: 4.1 KiB After Width: | Height: | Size: 4.1 KiB |
@ -25,5 +25,5 @@ const props = defineProps({
|
|||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped>
|
||||||
@use "./styles/index.scss";
|
@import "./styles/index.scss";
|
||||||
</style>
|
</style>
|
||||||
|
Before Width: | Height: | Size: 100 KiB After Width: | Height: | Size: 100 KiB |
@ -474,5 +474,5 @@ onBeforeUnmount(() => {
|
|||||||
|
|
||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped>
|
||||||
// 引入样式文件
|
// 引入样式文件
|
||||||
@use "./styles/index.scss";
|
@import "./styles/index.scss";
|
||||||
</style>
|
</style>
|
||||||
@ -40,5 +40,5 @@ const onChange = () => {
|
|||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style scoped lang="scss">
|
<style scoped lang="scss">
|
||||||
@use "./styles/index.scss";
|
@import "./styles/index.scss";
|
||||||
</style>
|
</style>
|
||||||
|
Before Width: | Height: | Size: 13 KiB After Width: | Height: | Size: 13 KiB |
@ -14,5 +14,5 @@ defineProps({
|
|||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style scoped lang="scss">
|
<style scoped lang="scss">
|
||||||
@use "./styles/index.scss";
|
@import "./styles/index.scss";
|
||||||
</style>
|
</style>
|
||||||
|
Before Width: | Height: | Size: 122 KiB After Width: | Height: | Size: 122 KiB |
|
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 1.2 KiB |
|
Before Width: | Height: | Size: 844 B After Width: | Height: | Size: 844 B |
@ -6,16 +6,16 @@
|
|||||||
</view>
|
</view>
|
||||||
<view class="order-content">
|
<view class="order-content">
|
||||||
<view class="order-item">
|
<view class="order-item">
|
||||||
<image src="./images/icon_service.png" class="order-icon"></image>
|
<image src="./images/icon_service.png" class="order-icon"></image>
|
||||||
<uni-data-select
|
<uni-data-select
|
||||||
v-if="!isCallSuccess && workOrderTypeList.length > 0"
|
v-if="!isCallSuccess && workOrderTypeList.length > 0"
|
||||||
class="order-select"
|
class="order-select"
|
||||||
placeholder="请选择服务工单"
|
placeholder="请选择服务工单"
|
||||||
v-model="workOrderTypeName"
|
v-model="workOrderTypeName"
|
||||||
:localdata="workOrderTypeListSelectData"
|
:localdata="workOrderTypeListSelectData"
|
||||||
@change="changeWorkOrderType"
|
@change="changeWorkOrderType"
|
||||||
></uni-data-select>
|
></uni-data-select>
|
||||||
<text v-else class="order-description">{{ workOrderTypeName }}</text>
|
<text v-else class="order-description">{{ workOrderTypeName }}</text>
|
||||||
</view>
|
</view>
|
||||||
<view class="order-line"></view>
|
<view class="order-line"></view>
|
||||||
<view class="order-details">
|
<view class="order-details">
|
||||||
@ -67,11 +67,7 @@
|
|||||||
<button class="order-button-secondary" @click="viewWorkOrder">
|
<button class="order-button-secondary" @click="viewWorkOrder">
|
||||||
查看工单
|
查看工单
|
||||||
</button>
|
</button>
|
||||||
<button
|
<button v-if="!isMarkCompleted" class="order-button-primary" @click="markCompleted">
|
||||||
v-if="!isMarkCompleted"
|
|
||||||
class="order-button-primary"
|
|
||||||
@click="markCompleted"
|
|
||||||
>
|
|
||||||
已完成
|
已完成
|
||||||
</button>
|
</button>
|
||||||
</view>
|
</view>
|
||||||
@ -90,127 +86,125 @@
|
|||||||
import { ref, onMounted, nextTick } from "vue";
|
import { ref, onMounted, nextTick } from "vue";
|
||||||
import { SCROLL_TO_BOTTOM } from "@/constant/constant";
|
import { SCROLL_TO_BOTTOM } from "@/constant/constant";
|
||||||
|
|
||||||
import {
|
|
||||||
createWorkOrder,
|
import { createWorkOrder, workOrderTypeListForBiz } from "@/request/api/OrderApi";
|
||||||
workOrderTypeListForBiz,
|
const workOrderTypeId = ref('')
|
||||||
} from "@/request/api/OrderApi";
|
const workOrderTypeName = ref('')
|
||||||
const workOrderTypeId = ref("");
|
const roomId = ref('')
|
||||||
const workOrderTypeName = ref("");
|
|
||||||
const roomId = ref("");
|
|
||||||
const contactName = ref("");
|
const contactName = ref("");
|
||||||
const contactPhone = ref("");
|
const contactPhone = ref("");
|
||||||
const isCallSuccess = ref(false); // 呼叫成功状态
|
const isCallSuccess = ref(false); // 呼叫成功状态
|
||||||
const workOrderId = ref(0); // 工单ID
|
const workOrderId = ref(0); // 工单ID
|
||||||
const workOrderTypeList = ref([]);
|
const workOrderTypeList = ref([])
|
||||||
const workOrderTypeListSelectData = ref([]);
|
const workOrderTypeListSelectData = ref([])
|
||||||
const isMarkCompleted = ref(false);
|
const isMarkCompleted = ref(false)
|
||||||
|
|
||||||
const changeWorkOrderType = (index) => {
|
const changeWorkOrderType = (index) => {
|
||||||
if (index < 0 || index >= workOrderTypeListSelectData.value.length) {
|
if (index < 0 || index >= workOrderTypeListSelectData.value.length) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
const item = workOrderTypeList.value[index];
|
const item = workOrderTypeList.value[index]
|
||||||
console.log("item:", item);
|
console.log("item:", item)
|
||||||
workOrderTypeId.value = item.id;
|
workOrderTypeId.value = item.id
|
||||||
workOrderTypeName.value = item.workOrderTypeName;
|
workOrderTypeName.value = item.workOrderTypeName
|
||||||
};
|
}
|
||||||
|
|
||||||
const handleCall = async () => {
|
const handleCall = async () => {
|
||||||
// 验证输入
|
// 验证输入
|
||||||
if (!roomId.value.trim()) {
|
if (!roomId.value.trim()) {
|
||||||
uni.showToast({
|
uni.showToast({
|
||||||
title: "请填写房间号",
|
title: '请填写房间号',
|
||||||
icon: "none",
|
icon: 'none',
|
||||||
duration: 2000,
|
duration: 2000
|
||||||
});
|
});
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!contactName.value.trim()) {
|
if (!contactName.value.trim()) {
|
||||||
uni.showToast({
|
uni.showToast({
|
||||||
title: "请填写联系人",
|
title: '请填写联系人',
|
||||||
icon: "none",
|
icon: 'none',
|
||||||
duration: 2000,
|
duration: 2000
|
||||||
});
|
});
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!contactPhone.value.trim()) {
|
if (!contactPhone.value.trim()) {
|
||||||
uni.showToast({
|
uni.showToast({
|
||||||
title: "请填写联系电话",
|
title: '请填写联系电话',
|
||||||
icon: "none",
|
icon: 'none',
|
||||||
duration: 2000,
|
duration: 2000
|
||||||
});
|
});
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
sendCreateWorkOrder();
|
sendCreateWorkOrder()
|
||||||
};
|
};
|
||||||
|
|
||||||
/// 创建工单
|
/// 创建工单
|
||||||
const sendCreateWorkOrder = async () => {
|
const sendCreateWorkOrder = async () => {
|
||||||
try {
|
try {
|
||||||
const res = await createWorkOrder({
|
const res = await createWorkOrder({
|
||||||
contactName: contactName.value,
|
contactName: contactName.value,
|
||||||
contactPhone: contactPhone.value,
|
contactPhone: contactPhone.value,
|
||||||
workOrderTypeId: workOrderTypeId.value,
|
workOrderTypeId: workOrderTypeId.value,
|
||||||
roomId: roomId.value,
|
roomId: roomId.value,
|
||||||
});
|
|
||||||
|
|
||||||
if (res.code === 0) {
|
|
||||||
// 保存工单ID
|
|
||||||
workOrderId.value = res.data?.id || "";
|
|
||||||
|
|
||||||
// 设置呼叫成功状态
|
|
||||||
isCallSuccess.value = true;
|
|
||||||
|
|
||||||
uni.showToast({
|
|
||||||
title: "工单创建成功",
|
|
||||||
icon: "success",
|
|
||||||
duration: 2000,
|
|
||||||
});
|
});
|
||||||
} else {
|
|
||||||
|
if (res.code === 0) {
|
||||||
|
// 保存工单ID
|
||||||
|
workOrderId.value = res.data?.id || "";
|
||||||
|
|
||||||
|
// 设置呼叫成功状态
|
||||||
|
isCallSuccess.value = true;
|
||||||
|
|
||||||
|
uni.showToast({
|
||||||
|
title: '工单创建成功',
|
||||||
|
icon: 'success',
|
||||||
|
duration: 2000
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
uni.showToast({
|
||||||
|
title: res.message || '创建工单失败',
|
||||||
|
icon: 'none',
|
||||||
|
duration: 2000
|
||||||
|
});
|
||||||
|
}
|
||||||
|
} catch (error) {
|
||||||
|
console.error('创建工单失败:', error);
|
||||||
uni.showToast({
|
uni.showToast({
|
||||||
title: res.message || "创建工单失败",
|
title: '网络错误,请重试',
|
||||||
icon: "none",
|
icon: 'none',
|
||||||
duration: 2000,
|
duration: 2000
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
} catch (error) {
|
}
|
||||||
console.error("创建工单失败:", error);
|
|
||||||
uni.showToast({
|
|
||||||
title: "网络错误,请重试",
|
|
||||||
icon: "none",
|
|
||||||
duration: 2000,
|
|
||||||
});
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
/// 获取工单类型
|
/// 获取工单类型
|
||||||
const getWorkOrderType = async () => {
|
const getWorkOrderType = async () => {
|
||||||
const res = await workOrderTypeListForBiz();
|
const res = await workOrderTypeListForBiz()
|
||||||
if (res.code === 0) {
|
if (res.code === 0) {
|
||||||
workOrderTypeList.value = res.data;
|
workOrderTypeList.value = res.data
|
||||||
workOrderTypeList.value.forEach((item, index) => {
|
workOrderTypeList.value.forEach((item, index) => {
|
||||||
workOrderTypeListSelectData.value.push({
|
workOrderTypeListSelectData.value.push({
|
||||||
value: index,
|
value: index,
|
||||||
text: item.workOrderTypeName,
|
text: item.workOrderTypeName,
|
||||||
});
|
})
|
||||||
});
|
})
|
||||||
|
|
||||||
if (workOrderTypeList.value.length > 0) {
|
if (workOrderTypeList.value.length > 0) {
|
||||||
workOrderTypeId.value = workOrderTypeList.value[0].id;
|
workOrderTypeId.value = workOrderTypeList.value[0].id
|
||||||
workOrderTypeName.value = workOrderTypeList.value[0].workOrderTypeName;
|
workOrderTypeName.value = workOrderTypeList.value[0].workOrderTypeName
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
|
||||||
|
|
||||||
// 查看工单
|
// 查看工单
|
||||||
const viewWorkOrder = () => {
|
const viewWorkOrder = () => {
|
||||||
console.log("查看工单:", workOrderId.value);
|
console.log("查看工单:", workOrderId.value);
|
||||||
// 这里可以跳转到工单详情页面
|
// 这里可以跳转到工单详情页面
|
||||||
uni.navigateTo({
|
uni.navigateTo({
|
||||||
url: `/pages-order/order/list?id=${workOrderId.value}`,
|
url: `/pages/order/list?id=${workOrderId.value}`
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -218,19 +212,19 @@ const viewWorkOrder = () => {
|
|||||||
const markCompleted = () => {
|
const markCompleted = () => {
|
||||||
console.log("标记工单已完成:", workOrderId.value);
|
console.log("标记工单已完成:", workOrderId.value);
|
||||||
uni.showModal({
|
uni.showModal({
|
||||||
title: "确认完成",
|
title: '确认完成',
|
||||||
content: "确认标记此工单为已完成吗?",
|
content: '确认标记此工单为已完成吗?',
|
||||||
success: (res) => {
|
success: (res) => {
|
||||||
if (res.confirm) {
|
if (res.confirm) {
|
||||||
isMarkCompleted.value = true;
|
isMarkCompleted.value = true
|
||||||
// 这里可以调用API标记工单完成
|
// 这里可以调用API标记工单完成
|
||||||
uni.showToast({
|
uni.showToast({
|
||||||
title: "工单已完成",
|
title: '工单已完成',
|
||||||
icon: "success",
|
icon: 'success',
|
||||||
duration: 2000,
|
duration: 2000
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
},
|
}
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -242,15 +236,15 @@ const makePhoneCall = () => {
|
|||||||
};
|
};
|
||||||
|
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
getWorkOrderType();
|
getWorkOrderType()
|
||||||
nextTick(() => {
|
nextTick(() => {
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
uni.$emit(SCROLL_TO_BOTTOM, true);
|
uni.$emit(SCROLL_TO_BOTTOM, true)
|
||||||
}, 200);
|
}, 200)
|
||||||
});
|
});
|
||||||
});
|
})
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style scoped lang="scss">
|
<style scoped lang="scss">
|
||||||
@use "./styles/index.scss";
|
@import "./styles/index.scss";
|
||||||
</style>
|
</style>
|
||||||
@ -3,5 +3,5 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<style scoped lang="scss">
|
<style scoped lang="scss">
|
||||||
@use "./styles/index.scss";
|
@import "./styles/index.scss";
|
||||||
</style>
|
</style>
|
||||||
|
Before Width: | Height: | Size: 844 B After Width: | Height: | Size: 844 B |
@ -122,7 +122,7 @@ const viewWorkOrder = () => {
|
|||||||
console.log("查看工单:", workOrderId.value);
|
console.log("查看工单:", workOrderId.value);
|
||||||
// 这里可以跳转到工单详情页面
|
// 这里可以跳转到工单详情页面
|
||||||
uni.navigateTo({
|
uni.navigateTo({
|
||||||
url: `/pages-order/order/list?id=${workOrderId.value}`,
|
url: `/pages/order/list?id=${workOrderId.value}`,
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -136,5 +136,5 @@ onMounted(() => {
|
|||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style scoped lang="scss">
|
<style scoped lang="scss">
|
||||||
@use "./styles/index.scss";
|
@import "./styles/index.scss";
|
||||||
</style>
|
</style>
|
||||||
|
Before Width: | Height: | Size: 17 KiB After Width: | Height: | Size: 17 KiB |
|
Before Width: | Height: | Size: 764 B After Width: | Height: | Size: 764 B |
@ -175,5 +175,5 @@ defineExpose({
|
|||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style scoped lang="scss">
|
<style scoped lang="scss">
|
||||||
@use "./styles/index.scss";
|
@import "./styles/index.scss";
|
||||||
</style>
|
</style>
|
||||||
@ -58,5 +58,49 @@ const props = defineProps({
|
|||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style scoped lang="scss">
|
<style scoped lang="scss">
|
||||||
@use './styles/index.scss';
|
@font-face {
|
||||||
|
font-family: znicons;
|
||||||
|
src: url("@/static/fonts/znicons.ttf");
|
||||||
|
}
|
||||||
|
|
||||||
|
// 使用须知样式
|
||||||
|
.use-notice {
|
||||||
|
margin: 16px 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.use-notice-content {
|
||||||
|
.module-item {
|
||||||
|
display: flex;
|
||||||
|
align-items: flex-start;
|
||||||
|
flex-direction: column;
|
||||||
|
padding: 12px 0;
|
||||||
|
|
||||||
|
.module-icon {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: row;
|
||||||
|
align-items: center;
|
||||||
|
margin-right: 8px;
|
||||||
|
flex-shrink: 0;
|
||||||
|
|
||||||
|
.module-title {
|
||||||
|
font-size: 14px;
|
||||||
|
color: #333;
|
||||||
|
text-align: center;
|
||||||
|
word-wrap: break-word;
|
||||||
|
margin-left: 4px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.module-desc {
|
||||||
|
flex: 1;
|
||||||
|
font-size: 12px;
|
||||||
|
color: #666;
|
||||||
|
line-height: 1.5;
|
||||||
|
margin-top: 4px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.border-bottom {
|
||||||
|
border-bottom: 1px solid #f0f0f0;
|
||||||
|
}
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
Before Width: | Height: | Size: 130 KiB After Width: | Height: | Size: 130 KiB |
@ -14,11 +14,7 @@
|
|||||||
v-for="(item, index) in thumbnails"
|
v-for="(item, index) in thumbnails"
|
||||||
:key="index"
|
:key="index"
|
||||||
>
|
>
|
||||||
<image
|
<image :src="item.photoUrl" mode="aspectFill"></image>
|
||||||
class="swiper-item-image"
|
|
||||||
:src="item.photoUrl"
|
|
||||||
mode="aspectFill"
|
|
||||||
></image>
|
|
||||||
</swiper-item>
|
</swiper-item>
|
||||||
</swiper>
|
</swiper>
|
||||||
|
|
||||||
@ -47,7 +43,7 @@
|
|||||||
:id="`thumbnail-${index}`"
|
:id="`thumbnail-${index}`"
|
||||||
@click="handleThumbnailClick(index)"
|
@click="handleThumbnailClick(index)"
|
||||||
>
|
>
|
||||||
<image class="thumbnail-image" :src="thumb.photoUrl" mode="aspectFill"></image>
|
<image :src="thumb.photoUrl" mode="aspectFill"></image>
|
||||||
<text>{{ thumb.photoName }}</text>
|
<text>{{ thumb.photoName }}</text>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
@ -159,5 +155,5 @@ const handleSwiperChange = (e) => {
|
|||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style scoped lang="scss">
|
<style scoped lang="scss">
|
||||||
@use "./styles/index.scss";
|
@import "./styles/index.scss";
|
||||||
</style>
|
</style>
|
||||||
80
components/ImageSwiper/styles/index.scss
Normal file
@ -0,0 +1,80 @@
|
|||||||
|
.image-swiper {
|
||||||
|
position: relative;
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.swiper-box {
|
||||||
|
overflow: hidden;
|
||||||
|
// 高度和圆角通过内联样式动态设置
|
||||||
|
}
|
||||||
|
|
||||||
|
.swiper-item image {
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.custom-indicator {
|
||||||
|
position: absolute;
|
||||||
|
top: 8px;
|
||||||
|
right: 8px;
|
||||||
|
z-index: 10;
|
||||||
|
background: rgba(0, 0, 0, 0.5);
|
||||||
|
border-radius: 50px;
|
||||||
|
padding: 3px 8px;
|
||||||
|
font-size: 8px;
|
||||||
|
color: #fff;
|
||||||
|
}
|
||||||
|
|
||||||
|
.thumbnail-box {
|
||||||
|
position: absolute;
|
||||||
|
left: 12px;
|
||||||
|
right: 12px;
|
||||||
|
height: 60px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.thumbnail-scroll {
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
white-space: nowrap;
|
||||||
|
}
|
||||||
|
|
||||||
|
.thumbnail-list {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
gap: 10px;
|
||||||
|
padding: 0 5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.thumbnail-item {
|
||||||
|
flex-shrink: 0;
|
||||||
|
text-align: center;
|
||||||
|
transition: all 0.3s ease;
|
||||||
|
|
||||||
|
&.active {
|
||||||
|
image {
|
||||||
|
border: 1px solid #fff;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.thumbnail-item image {
|
||||||
|
width: 48px;
|
||||||
|
height: 38px;
|
||||||
|
border-radius: 4px;
|
||||||
|
box-sizing: border-box;
|
||||||
|
border: 1px solid transparent;
|
||||||
|
transition: all 0.3s ease;
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
|
||||||
|
.thumbnail-item text {
|
||||||
|
color: #fff;
|
||||||
|
font-size: 8px;
|
||||||
|
display: block;
|
||||||
|
margin-top: 4px;
|
||||||
|
transition: all 0.3s ease;
|
||||||
|
white-space: nowrap;
|
||||||
|
overflow: hidden;
|
||||||
|
text-overflow: ellipsis;
|
||||||
|
max-width: 48px;
|
||||||
|
}
|
||||||
|
Before Width: | Height: | Size: 38 KiB After Width: | Height: | Size: 38 KiB |
|
Before Width: | Height: | Size: 4.1 KiB After Width: | Height: | Size: 4.1 KiB |
@ -48,5 +48,5 @@ const openMap = () => {
|
|||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style scoped lang="scss">
|
<style scoped lang="scss">
|
||||||
@use "./styles/index.scss";
|
@import "./styles/index.scss";
|
||||||
</style>
|
</style>
|
||||||
@ -42,5 +42,5 @@ const openMap = () => {
|
|||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style scoped lang="scss">
|
<style scoped lang="scss">
|
||||||
@use "./styles/index.scss";
|
@import "./styles/index.scss";
|
||||||
</style>
|
</style>
|
||||||
|
Before Width: | Height: | Size: 4.5 KiB After Width: | Height: | Size: 4.5 KiB |
|
Before Width: | Height: | Size: 3.1 KiB After Width: | Height: | Size: 3.1 KiB |
@ -15,5 +15,5 @@ defineProps({
|
|||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style scoped lang="scss">
|
<style scoped lang="scss">
|
||||||
@use "./styles/index.scss";
|
@import './styles/index.scss';
|
||||||
</style>
|
</style>
|
||||||
@ -6,6 +6,7 @@
|
|||||||
|
|
||||||
.module-title {
|
.module-title {
|
||||||
font-size: 18px;
|
font-size: 18px;
|
||||||
|
font-family: PingFang SC, PingFang SC;
|
||||||
color: #000;
|
color: #000;
|
||||||
position: relative;
|
position: relative;
|
||||||
z-index: 1;
|
z-index: 1;
|
||||||
|
Before Width: | Height: | Size: 39 KiB After Width: | Height: | Size: 39 KiB |
|
Before Width: | Height: | Size: 917 B After Width: | Height: | Size: 917 B |
@ -48,5 +48,5 @@ const orderStatusText = computed(() => {
|
|||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style scoped lang="scss">
|
<style scoped lang="scss">
|
||||||
@use "./styles/index.scss";
|
@import "./styles/index.scss";
|
||||||
</style>
|
</style>
|
||||||
@ -75,5 +75,5 @@ const handleOpenPrivacyContract = () => {
|
|||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style scoped lang="scss">
|
<style scoped lang="scss">
|
||||||
@use "./styles/index.scss";
|
@import './styles/index.scss'
|
||||||
</style>
|
</style>
|
||||||
|
Before Width: | Height: | Size: 72 KiB After Width: | Height: | Size: 72 KiB |
@ -17,5 +17,5 @@ defineProps({
|
|||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style scoped lang="scss">
|
<style scoped lang="scss">
|
||||||
@use "./styles/index.scss";
|
@import "./styles/index.scss";
|
||||||
</style>
|
</style>
|
||||||
@ -7,5 +7,5 @@
|
|||||||
<script setup></script>
|
<script setup></script>
|
||||||
|
|
||||||
<style scoped lang="scss">
|
<style scoped lang="scss">
|
||||||
@use "./styles/index.scss";
|
@import "./styles/index.scss";
|
||||||
</style>
|
</style>
|
||||||
|
Before Width: | Height: | Size: 16 KiB After Width: | Height: | Size: 16 KiB |
|
Before Width: | Height: | Size: 494 B After Width: | Height: | Size: 494 B |
@ -36,5 +36,5 @@ const handleClick = (type) => {
|
|||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style scoped lang="scss">
|
<style scoped lang="scss">
|
||||||
@use "./styles/index.scss";
|
@import "./styles/index.scss";
|
||||||
</style>
|
</style>
|
||||||
|
Before Width: | Height: | Size: 5.8 KiB After Width: | Height: | Size: 5.8 KiB |
@ -59,5 +59,5 @@ const increase = () => {
|
|||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style scoped lang="scss">
|
<style scoped lang="scss">
|
||||||
@use "./styles/index.scss";
|
@import "./styles/index.scss";
|
||||||
</style>
|
</style>
|
||||||
|
Before Width: | Height: | Size: 15 KiB After Width: | Height: | Size: 15 KiB |
@ -25,5 +25,5 @@ defineProps({
|
|||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style scoped lang="scss">
|
<style scoped lang="scss">
|
||||||
@use "./styles/index.scss";
|
@import "./styles/index.scss";
|
||||||
</style>
|
</style>
|
||||||
|
Before Width: | Height: | Size: 5.0 KiB After Width: | Height: | Size: 5.0 KiB |
@ -7,9 +7,13 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup>
|
<script setup>
|
||||||
const tags = ["门票套餐", "民俗活动", "车程路况"];
|
const tags = [
|
||||||
|
'门票套餐',
|
||||||
|
'民俗活动',
|
||||||
|
'车程路况'
|
||||||
|
];
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style scoped lang="scss">
|
<style scoped>
|
||||||
@use "./styles/index.scss";
|
@import './styles/index.scss';
|
||||||
</style>
|
</style>
|
||||||
@ -129,5 +129,5 @@ const handleBack = () => {
|
|||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style scoped lang="scss">
|
<style scoped lang="scss">
|
||||||
@use "./styles/index.scss";
|
@import "./styles/index.scss";
|
||||||
</style>
|
</style>
|
||||||
28
constant/base.js
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
// 小程序特有相关: 同时更改manifest.json和 project.config.json文件中的appid;
|
||||||
|
// 所有用户端的配置
|
||||||
|
export const CLIENT_CONFIGS = {
|
||||||
|
// 智念用户端
|
||||||
|
zhinian: {
|
||||||
|
clientId: '2',
|
||||||
|
appId: 'wx5e79df5996572539'
|
||||||
|
},
|
||||||
|
// 朵花用户端
|
||||||
|
duohua: {
|
||||||
|
clientId: '2',
|
||||||
|
appId: 'wx23f86d809ae80259'
|
||||||
|
},
|
||||||
|
// 天沐用户端
|
||||||
|
tianmu: {
|
||||||
|
clientId: '4',
|
||||||
|
appId: 'wx0be424e1d22065a9'
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
// 获取当前用户端配置
|
||||||
|
const getCurrentConfig = () => {
|
||||||
|
return CLIENT_CONFIGS.zhinian;
|
||||||
|
};
|
||||||
|
|
||||||
|
export const clientId = getCurrentConfig().clientId;
|
||||||
|
export const appId = getCurrentConfig().appId;
|
||||||
|
|
||||||
@ -2,7 +2,7 @@ import App from "./App";
|
|||||||
|
|
||||||
// #ifndef VUE3
|
// #ifndef VUE3
|
||||||
import Vue from "vue";
|
import Vue from "vue";
|
||||||
import "../uni.promisify.adaptor";
|
import "./uni.promisify.adaptor";
|
||||||
Vue.config.productionTip = false;
|
Vue.config.productionTip = false;
|
||||||
App.mpType = "app";
|
App.mpType = "app";
|
||||||
const app = new Vue({
|
const app = new Vue({
|
||||||