feat: 调整项目结构

This commit is contained in:
duanshuwen
2025-09-21 17:25:09 +08:00
parent 0b66462d16
commit 9f23854ad5
410 changed files with 3806 additions and 1668 deletions

View File

@@ -1,105 +0,0 @@
{
"name" : "YGTianmuCS",
"appid" : "__UNI__BB03E8A",
"description" : "",
"versionName" : "1.0.0",
"versionCode" : "100",
"transformPx" : false,
/* 5+App */
"app-plus" : {
"usingComponents" : true,
"nvueStyleCompiler" : "uni-app",
"compilerVersion" : 3,
"splashscreen" : {
"alwaysShowBeforeRender" : true,
"waiting" : true,
"autoclose" : true,
"delay" : 0
},
"safearea" : {
"bottom" : {
"offset" : "auto" // 自动适配安全区域
}
},
/* */
"modules" : {},
/* */
"distribute" : {
/* android */
"android" : {
"permissions" : [
"<uses-permission android:name=\"android.permission.CHANGE_NETWORK_STATE\"/>",
"<uses-permission android:name=\"android.permission.MOUNT_UNMOUNT_FILESYSTEMS\"/>",
"<uses-permission android:name=\"android.permission.VIBRATE\"/>",
"<uses-permission android:name=\"android.permission.READ_LOGS\"/>",
"<uses-permission android:name=\"android.permission.ACCESS_WIFI_STATE\"/>",
"<uses-feature android:name=\"android.hardware.camera.autofocus\"/>",
"<uses-permission android:name=\"android.permission.ACCESS_NETWORK_STATE\"/>",
"<uses-permission android:name=\"android.permission.CAMERA\"/>",
"<uses-permission android:name=\"android.permission.GET_ACCOUNTS\"/>",
"<uses-permission android:name=\"android.permission.READ_PHONE_STATE\"/>",
"<uses-permission android:name=\"android.permission.CHANGE_WIFI_STATE\"/>",
"<uses-permission android:name=\"android.permission.WAKE_LOCK\"/>",
"<uses-permission android:name=\"android.permission.FLASHLIGHT\"/>",
"<uses-feature android:name=\"android.hardware.camera\"/>",
"<uses-permission android:name=\"android.permission.WRITE_SETTINGS\"/>"
]
},
/* ios */
"ios" : {},
/* SDK */
"sdkConfigs" : {
"oauth" : {}
}
}
},
/* */
"quickapp" : {},
/* project.config.json
wx5e79df5996572539
wx23f86d809ae80259
*/
"mp-weixin" : {
"appid" : "wx0be424e1d22065a9",
"setting" : {
"urlCheck" : false
},
"usingComponents" : true,
"requiredPrivateInfos" : [ "getLocation" ],
"permission" : {
"scope.userLocation" : {
"desc" : "用于获取当前所在城市信息"
}
},
"plugins" : {
"WechatSI" : {
"version" : "0.3.6",
"provider" : "wx069ba97219f66d99"
}
},
"__usePrivacyCheck__" : true
},
"mp-alipay" : {
"usingComponents" : true
},
"mp-baidu" : {
"usingComponents" : true
},
"mp-toutiao" : {
"usingComponents" : true,
"usePrivacyCheck" : true
},
"uniStatistics" : {
"enable" : false
},
"vueVersion" : "3",
"h5" : {
"router" : {
"base" : "./",
"mode" : "hash"
},
"devServer" : {
"https" : false
}
}
}

View File

@@ -40,33 +40,38 @@
"build:quickapp-webview-union": "uni build -p quickapp-webview-union"
},
"dependencies": {
"@dcloudio/uni-app": "3.0.0-4000720240327002",
"@dcloudio/uni-app-plus": "3.0.0-4000720240327002",
"@dcloudio/uni-components": "3.0.0-4000720240327002",
"@dcloudio/uni-h5": "3.0.0-4000720240327002",
"@dcloudio/uni-mp-alipay": "3.0.0-4000720240327002",
"@dcloudio/uni-mp-baidu": "3.0.0-4000720240327002",
"@dcloudio/uni-mp-jd": "3.0.0-4000720240327002",
"@dcloudio/uni-mp-kuaishou": "3.0.0-4000720240327002",
"@dcloudio/uni-mp-lark": "3.0.0-4000720240327002",
"@dcloudio/uni-mp-qq": "3.0.0-4000720240327002",
"@dcloudio/uni-mp-toutiao": "3.0.0-4000720240327002",
"@dcloudio/uni-mp-weixin": "3.0.0-4000720240327002",
"@dcloudio/uni-mp-xhs": "3.0.0-4000720240327002",
"@dcloudio/uni-quickapp-webview": "3.0.0-4000720240327002",
"@dcloudio/uni-app": "3.0.0-4070620250821001",
"@dcloudio/uni-app-harmony": "3.0.0-4070620250821001",
"@dcloudio/uni-app-plus": "3.0.0-4070620250821001",
"@dcloudio/uni-components": "3.0.0-4070620250821001",
"@dcloudio/uni-h5": "3.0.0-4070620250821001",
"@dcloudio/uni-mp-alipay": "3.0.0-4070620250821001",
"@dcloudio/uni-mp-baidu": "3.0.0-4070620250821001",
"@dcloudio/uni-mp-harmony": "3.0.0-4070620250821001",
"@dcloudio/uni-mp-jd": "3.0.0-4070620250821001",
"@dcloudio/uni-mp-kuaishou": "3.0.0-4070620250821001",
"@dcloudio/uni-mp-lark": "3.0.0-4070620250821001",
"@dcloudio/uni-mp-qq": "3.0.0-4070620250821001",
"@dcloudio/uni-mp-toutiao": "3.0.0-4070620250821001",
"@dcloudio/uni-mp-weixin": "3.0.0-4070620250821001",
"@dcloudio/uni-mp-xhs": "3.0.0-4070620250821001",
"@dcloudio/uni-quickapp-webview": "3.0.0-4070620250821001",
"glob": "^11.0.3",
"md5-hash": "^1.0.1",
"pinia": "^3.0.3",
"pinia-plugin-unistorage": "^0.1.2",
"vue": "^3.4.21",
"vue-i18n": "^9.1.9"
},
"devDependencies": {
"@dcloudio/types": "^3.4.8",
"@dcloudio/uni-automator": "3.0.0-4000720240327002",
"@dcloudio/uni-cli-shared": "3.0.0-4000720240327002",
"@dcloudio/uni-stacktracey": "3.0.0-4000720240327002",
"@dcloudio/vite-plugin-uni": "3.0.0-4000720240327002",
"@dcloudio/uni-automator": "3.0.0-4070620250821001",
"@dcloudio/uni-cli-shared": "3.0.0-4070620250821001",
"@dcloudio/uni-stacktracey": "3.0.0-4070620250821001",
"@dcloudio/vite-plugin-uni": "3.0.0-4070620250821001",
"@vue/runtime-core": "^3.4.21",
"@vue/tsconfig": "^0.1.3",
"sass": "^1.93.0",
"vite": "5.2.8"
}
}

View File

Before

Width:  |  Height:  |  Size: 4.1 KiB

After

Width:  |  Height:  |  Size: 4.1 KiB

View File

@@ -25,5 +25,5 @@ const props = defineProps({
</script>
<style lang="scss" scoped>
@import "./styles/index.scss";
@use "./styles/index.scss";
</style>

View File

Before

Width:  |  Height:  |  Size: 100 KiB

After

Width:  |  Height:  |  Size: 100 KiB

View File

@@ -474,5 +474,5 @@ onBeforeUnmount(() => {
<style lang="scss" scoped>
//
@import "./styles/index.scss";
@use "./styles/index.scss";
</style>

View File

@@ -40,5 +40,5 @@ const onChange = () => {
</script>
<style scoped lang="scss">
@import "./styles/index.scss";
@use "./styles/index.scss";
</style>

View File

Before

Width:  |  Height:  |  Size: 13 KiB

After

Width:  |  Height:  |  Size: 13 KiB

View File

@@ -14,5 +14,5 @@ defineProps({
</script>
<style scoped lang="scss">
@import "./styles/index.scss";
@use "./styles/index.scss";
</style>

View File

Before

Width:  |  Height:  |  Size: 122 KiB

After

Width:  |  Height:  |  Size: 122 KiB

View File

Before

Width:  |  Height:  |  Size: 1.2 KiB

After

Width:  |  Height:  |  Size: 1.2 KiB

View File

Before

Width:  |  Height:  |  Size: 844 B

After

Width:  |  Height:  |  Size: 844 B

View File

@@ -6,16 +6,16 @@
</view>
<view class="order-content">
<view class="order-item">
<image src="./images/icon_service.png" class="order-icon"></image>
<uni-data-select
v-if="!isCallSuccess && workOrderTypeList.length > 0"
class="order-select"
placeholder="请选择服务工单"
v-model="workOrderTypeName"
:localdata="workOrderTypeListSelectData"
@change="changeWorkOrderType"
></uni-data-select>
<text v-else class="order-description">{{ workOrderTypeName }}</text>
<image src="./images/icon_service.png" class="order-icon"></image>
<uni-data-select
v-if="!isCallSuccess && workOrderTypeList.length > 0"
class="order-select"
placeholder="请选择服务工单"
v-model="workOrderTypeName"
:localdata="workOrderTypeListSelectData"
@change="changeWorkOrderType"
></uni-data-select>
<text v-else class="order-description">{{ workOrderTypeName }}</text>
</view>
<view class="order-line"></view>
<view class="order-details">
@@ -67,7 +67,11 @@
<button class="order-button-secondary" @click="viewWorkOrder">
查看工单
</button>
<button v-if="!isMarkCompleted" class="order-button-primary" @click="markCompleted">
<button
v-if="!isMarkCompleted"
class="order-button-primary"
@click="markCompleted"
>
已完成
</button>
</view>
@@ -86,125 +90,127 @@
import { ref, onMounted, nextTick } from "vue";
import { SCROLL_TO_BOTTOM } from "@/constant/constant";
import { createWorkOrder, workOrderTypeListForBiz } from "@/request/api/OrderApi";
const workOrderTypeId = ref('')
const workOrderTypeName = ref('')
const roomId = ref('')
import {
createWorkOrder,
workOrderTypeListForBiz,
} from "@/request/api/OrderApi";
const workOrderTypeId = ref("");
const workOrderTypeName = ref("");
const roomId = ref("");
const contactName = ref("");
const contactPhone = ref("");
const isCallSuccess = ref(false); //
const workOrderId = ref(0); // ID
const workOrderTypeList = ref([])
const workOrderTypeListSelectData = ref([])
const isMarkCompleted = ref(false)
const workOrderTypeList = ref([]);
const workOrderTypeListSelectData = ref([]);
const isMarkCompleted = ref(false);
const changeWorkOrderType = (index) => {
if (index < 0 || index >= workOrderTypeListSelectData.value.length) {
return;
}
const item = workOrderTypeList.value[index]
console.log("item:", item)
workOrderTypeId.value = item.id
workOrderTypeName.value = item.workOrderTypeName
}
const item = workOrderTypeList.value[index];
console.log("item:", item);
workOrderTypeId.value = item.id;
workOrderTypeName.value = item.workOrderTypeName;
};
const handleCall = async () => {
//
if (!roomId.value.trim()) {
uni.showToast({
title: '请填写房间号',
icon: 'none',
duration: 2000
});
return;
}
//
if (!roomId.value.trim()) {
uni.showToast({
title: "请填写房间号",
icon: "none",
duration: 2000,
});
return;
}
if (!contactName.value.trim()) {
uni.showToast({
title: '请填写联系人',
icon: 'none',
duration: 2000
});
return;
}
if (!contactName.value.trim()) {
uni.showToast({
title: "请填写联系人",
icon: "none",
duration: 2000,
});
return;
}
if (!contactPhone.value.trim()) {
uni.showToast({
title: '请填写联系电话',
icon: 'none',
duration: 2000
});
return;
}
if (!contactPhone.value.trim()) {
uni.showToast({
title: "请填写联系电话",
icon: "none",
duration: 2000,
});
return;
}
sendCreateWorkOrder()
sendCreateWorkOrder();
};
///
const sendCreateWorkOrder = async () => {
try {
const res = await createWorkOrder({
contactName: contactName.value,
contactPhone: contactPhone.value,
workOrderTypeId: workOrderTypeId.value,
roomId: roomId.value,
});
try {
const res = await createWorkOrder({
contactName: contactName.value,
contactPhone: contactPhone.value,
workOrderTypeId: workOrderTypeId.value,
roomId: roomId.value,
});
if (res.code === 0) {
// ID
workOrderId.value = res.data?.id || "";
if (res.code === 0) {
// ID
workOrderId.value = res.data?.id || "";
//
isCallSuccess.value = true;
//
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({
title: '网络错误,请重试',
icon: 'none',
duration: 2000
title: "工单创建成功",
icon: "success",
duration: 2000,
});
} else {
uni.showToast({
title: res.message || "创建工单失败",
icon: "none",
duration: 2000,
});
}
}
} catch (error) {
console.error("创建工单失败:", error);
uni.showToast({
title: "网络错误,请重试",
icon: "none",
duration: 2000,
});
}
};
///
const getWorkOrderType = async () => {
const res = await workOrderTypeListForBiz()
const res = await workOrderTypeListForBiz();
if (res.code === 0) {
workOrderTypeList.value = res.data
workOrderTypeList.value.forEach((item, index) => {
workOrderTypeListSelectData.value.push({
value: index,
text: item.workOrderTypeName,
})
})
workOrderTypeList.value = res.data;
workOrderTypeList.value.forEach((item, index) => {
workOrderTypeListSelectData.value.push({
value: index,
text: item.workOrderTypeName,
});
});
if (workOrderTypeList.value.length > 0) {
workOrderTypeId.value = workOrderTypeList.value[0].id
workOrderTypeName.value = workOrderTypeList.value[0].workOrderTypeName
}
if (workOrderTypeList.value.length > 0) {
workOrderTypeId.value = workOrderTypeList.value[0].id;
workOrderTypeName.value = workOrderTypeList.value[0].workOrderTypeName;
}
}
}
};
//
const viewWorkOrder = () => {
console.log("查看工单:", workOrderId.value);
//
uni.navigateTo({
url: `/pages/order/list?id=${workOrderId.value}`
url: `/pages-order/order/list?id=${workOrderId.value}`,
});
};
@@ -212,19 +218,19 @@ const viewWorkOrder = () => {
const markCompleted = () => {
console.log("标记工单已完成:", workOrderId.value);
uni.showModal({
title: '确认完成',
content: '确认标记此工单为已完成吗?',
title: "确认完成",
content: "确认标记此工单为已完成吗?",
success: (res) => {
if (res.confirm) {
isMarkCompleted.value = true
isMarkCompleted.value = true;
// API
uni.showToast({
title: '工单已完成',
icon: 'success',
duration: 2000
title: "工单已完成",
icon: "success",
duration: 2000,
});
}
}
},
});
};
@@ -236,15 +242,15 @@ const makePhoneCall = () => {
};
onMounted(() => {
getWorkOrderType()
nextTick(() => {
setTimeout(() => {
uni.$emit(SCROLL_TO_BOTTOM, true)
}, 200)
});
})
getWorkOrderType();
nextTick(() => {
setTimeout(() => {
uni.$emit(SCROLL_TO_BOTTOM, true);
}, 200);
});
});
</script>
<style scoped lang="scss">
@import "./styles/index.scss";
@use "./styles/index.scss";
</style>

View File

@@ -3,5 +3,5 @@
</template>
<style scoped lang="scss">
@import "./styles/index.scss";
@use "./styles/index.scss";
</style>

View File

Before

Width:  |  Height:  |  Size: 844 B

After

Width:  |  Height:  |  Size: 844 B

View File

@@ -122,7 +122,7 @@ const viewWorkOrder = () => {
console.log("查看工单:", workOrderId.value);
//
uni.navigateTo({
url: `/pages/order/list?id=${workOrderId.value}`,
url: `/pages-order/order/list?id=${workOrderId.value}`,
});
};
@@ -136,5 +136,5 @@ onMounted(() => {
</script>
<style scoped lang="scss">
@import "./styles/index.scss";
@use "./styles/index.scss";
</style>

View File

Before

Width:  |  Height:  |  Size: 17 KiB

After

Width:  |  Height:  |  Size: 17 KiB

View File

Before

Width:  |  Height:  |  Size: 764 B

After

Width:  |  Height:  |  Size: 764 B

View File

@@ -175,5 +175,5 @@ defineExpose({
</script>
<style scoped lang="scss">
@import "./styles/index.scss";
@use "./styles/index.scss";
</style>

View File

Before

Width:  |  Height:  |  Size: 130 KiB

After

Width:  |  Height:  |  Size: 130 KiB

View File

@@ -155,5 +155,5 @@ const handleSwiperChange = (e) => {
</script>
<style scoped lang="scss">
@import "./styles/index.scss";
@use "./styles/index.scss";
</style>

View File

Before

Width:  |  Height:  |  Size: 38 KiB

After

Width:  |  Height:  |  Size: 38 KiB

View File

Before

Width:  |  Height:  |  Size: 4.1 KiB

After

Width:  |  Height:  |  Size: 4.1 KiB

View File

@@ -48,5 +48,5 @@ const openMap = () => {
</script>
<style scoped lang="scss">
@import "./styles/index.scss";
@use "./styles/index.scss";
</style>

View File

@@ -42,5 +42,5 @@ const openMap = () => {
</script>
<style scoped lang="scss">
@import "./styles/index.scss";
@use "./styles/index.scss";
</style>

View File

Before

Width:  |  Height:  |  Size: 4.5 KiB

After

Width:  |  Height:  |  Size: 4.5 KiB

View File

Before

Width:  |  Height:  |  Size: 3.1 KiB

After

Width:  |  Height:  |  Size: 3.1 KiB

View File

@@ -15,5 +15,5 @@ defineProps({
</script>
<style scoped lang="scss">
@import './styles/index.scss';
@use "./styles/index.scss";
</style>

View File

Before

Width:  |  Height:  |  Size: 39 KiB

After

Width:  |  Height:  |  Size: 39 KiB

View File

Before

Width:  |  Height:  |  Size: 917 B

After

Width:  |  Height:  |  Size: 917 B

View File

@@ -48,5 +48,5 @@ const orderStatusText = computed(() => {
</script>
<style scoped lang="scss">
@import "./styles/index.scss";
@use "./styles/index.scss";
</style>

View File

@@ -75,5 +75,5 @@ const handleOpenPrivacyContract = () => {
</script>
<style scoped lang="scss">
@import './styles/index.scss'
@use "./styles/index.scss";
</style>

View File

Before

Width:  |  Height:  |  Size: 72 KiB

After

Width:  |  Height:  |  Size: 72 KiB

View File

@@ -17,5 +17,5 @@ defineProps({
</script>
<style scoped lang="scss">
@import "./styles/index.scss";
@use "./styles/index.scss";
</style>

View File

@@ -7,5 +7,5 @@
<script setup></script>
<style scoped lang="scss">
@import "./styles/index.scss";
@use "./styles/index.scss";
</style>

View File

Before

Width:  |  Height:  |  Size: 16 KiB

After

Width:  |  Height:  |  Size: 16 KiB

View File

Before

Width:  |  Height:  |  Size: 494 B

After

Width:  |  Height:  |  Size: 494 B

View File

@@ -36,5 +36,5 @@ const handleClick = (type) => {
</script>
<style scoped lang="scss">
@import "./styles/index.scss";
@use "./styles/index.scss";
</style>

View File

Before

Width:  |  Height:  |  Size: 5.8 KiB

After

Width:  |  Height:  |  Size: 5.8 KiB

View File

@@ -59,5 +59,5 @@ const increase = () => {
</script>
<style scoped lang="scss">
@import "./styles/index.scss";
@use "./styles/index.scss";
</style>

View File

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 15 KiB

View File

@@ -25,5 +25,5 @@ defineProps({
</script>
<style scoped lang="scss">
@import "./styles/index.scss";
@use "./styles/index.scss";
</style>

View File

Before

Width:  |  Height:  |  Size: 5.0 KiB

After

Width:  |  Height:  |  Size: 5.0 KiB

View File

@@ -7,13 +7,9 @@
</template>
<script setup>
const tags = [
'门票套餐',
'民俗活动',
'车程路况'
];
const tags = ["门票套餐", "民俗活动", "车程路况"];
</script>
<style scoped>
@import './styles/index.scss';
<style scoped lang="scss">
@use "./styles/index.scss";
</style>

View File

@@ -129,5 +129,5 @@ const handleBack = () => {
</script>
<style scoped lang="scss">
@import "./styles/index.scss";
@use "./styles/index.scss";
</style>

View File

@@ -36,6 +36,6 @@ export const CLIENT_CONFIGS = {
};
// 获取当前用户端配置
export const getCurrentConfig = () => CLIENT_CONFIGS.duohua;
export const getCurrentConfig = () => CLIENT_CONFIGS.tianmu;
export const clientId = getCurrentConfig().clientId;
export const appId = getCurrentConfig().appId;

Some files were not shown because too many files have changed in this diff Show More