6/27更新依赖,更新vite分包打包

This commit is contained in:
Zy
2026-06-27 08:42:02 +08:00
parent 4e2ae414c4
commit dff51dd4d4
6 changed files with 59 additions and 13 deletions

View File

@@ -15,14 +15,14 @@ VITE_APP_MONITOR_ADMIN = '/admin/applications'
VITE_APP_SNAILJOB_ADMIN = '/snail-job' VITE_APP_SNAILJOB_ADMIN = '/snail-job'
# 生产环境 # 生产环境
VITE_APP_BASE_API = 'https://wuyeapi.bugtc.com' # VITE_APP_BASE_API = 'https://wuyeapi.bugtc.com'
# VITE_APP_BASE_API = 'http://192.168.0.222:8080' VITE_APP_BASE_API = 'http://wuyeapi.ckdzkj.com'
# 登录成功跳转地址 # 登录成功跳转地址
# VITE_LOGIN_BACK_URL = '/equipment/WaterDevice' # VITE_LOGIN_BACK_URL = '/equipment/WaterDevice'
VITE_LOGIN_BACK_URL = '/index' VITE_LOGIN_BACK_URL = '/index'
# 工作台正式内容:false 假内容true # 工作台正式内容:false 假内容true
VITE_LOGIN_BACK_URL_WORKBENCH_TRUE= true VITE_LOGIN_BACK_URL_WORKBENCH_TRUE= false
# 是否展示工作台 # 是否展示工作台
VITE_APP_SHOW_WORK_PLATFORM = true VITE_APP_SHOW_WORK_PLATFORM = true

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.9 KiB

After

Width:  |  Height:  |  Size: 2.4 KiB

View File

@@ -7,7 +7,7 @@ import TdtMap from './TDT.vue';
const emits = defineEmits<MapEmits>(); const emits = defineEmits<MapEmits>();
const props = defineProps<MapBaseProps>(); const props = defineProps<MapBaseProps>();
const GDorTDT = import.meta.env.VITE_APP_MAP_TYPE !== 'GCJ02'; const GDorTDT = import.meta.env.VITE_APP_MAP_TYPE === 'GCJ02';
// 实例绑定 // 实例绑定
const GDRef = ref<InstanceType<typeof GDMap>>(); const GDRef = ref<InstanceType<typeof GDMap>>();

View File

@@ -37,6 +37,21 @@
</el-button> </el-button>
</el-form-item> </el-form-item>
</el-form> </el-form>
<footer class="footerBox" style="text-align: center; padding: 24px 16px; font-size: 14px; color: #666">
<p>&copy; 2026 山东橙空电子科技有限公司 版权所有</p>
<p style="margin-top: 10px">
<a href="https://beian.miit.gov.cn/#/Integrated/index" target="_blank" style="color: #666; text-decoration: none">鲁ICP备2024131497号-3</a>
&nbsp;|&nbsp;
<a
href="https://www.beian.gov.cn/"
target="_blank"
style="color: #666; text-decoration: none; display: inline-flex; align-items: center; gap: 4px"
>
<!-- <img src="/static/beian.png" alt="公安备案图标" style="width: 16px; height: 16px" />-->
<!-- 鲁公网安备37110198765432号-->
</a>
</p>
</footer>
</div> </div>
</template> </template>
@@ -187,6 +202,13 @@ onMounted(() => {
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
.footerBox {
position: absolute;
bottom: 0;
left: 50%;
transform: translateX(-50%);
}
:deep(.el-button.hoverbutn) { :deep(.el-button.hoverbutn) {
color: #fff; color: #fff;
&:hover { &:hover {

View File

@@ -73,7 +73,7 @@ const formRef = ref();
const userid = ref(null); const userid = ref(null);
const form = ref({ const form = ref({
'userId': null, 'userId': null,
'userName': '', // >= 4 && <= 16 账号 'userName': '', // >= 6 && <= 16 账号
'nickName': '', // >= 0 && <= 30 昵称 'nickName': '', // >= 0 && <= 30 昵称
// 'userType': '', // 用户类型sys_user系统用户 // 'userType': '', // 用户类型sys_user系统用户
'villageIds': '', // 管理小区id串 'villageIds': '', // 管理小区id串
@@ -94,17 +94,17 @@ const rules = ref({
// 登录账号:必填,长度限制,通常建议增加唯一性校验(需后端配合或异步校验) // 登录账号:必填,长度限制,通常建议增加唯一性校验(需后端配合或异步校验)
userName: [ userName: [
{ required: true, message: '请输入登录账号', trigger: 'blur' }, { required: true, message: '请输入登录账号', trigger: 'blur' },
{ min: 4, max: 16, message: '长度在 4 到 16 个字符', trigger: 'blur' } { min: 6, max: 16, message: '长度在 6 到 16 个字符', trigger: 'blur' }
], ],
// 登录密码:必填,新增时必填,编辑时可选(通常逻辑),这里暂按必填处理,建议长度限制 // 登录密码:必填,新增时必填,编辑时可选(通常逻辑),这里暂按必填处理,建议长度限制
password: [ password: [
{ required: true, message: '请输入登录密码', trigger: 'blur' }, { required: true, message: '请输入登录密码', trigger: 'blur' },
{ min: 5, max: 20, message: '长度在 520 个字符', trigger: 'blur' } { min: 6, max: 16, message: '长度在 616 个字符', trigger: 'blur' }
], ],
roleIds: [{ required: true, message: '请选择员工角色', trigger: 'change' }], roleIds: [{ required: true, message: '请选择员工角色', trigger: 'change' }],
phonenumber: [ phonenumber: [
{ {
validator: (_, val) => validator(val, 'phone'), validator: (_: any, val: string | number) => validator(val, 'phone'),
message: '请输入正确的手机号码', message: '请输入正确的手机号码',
trigger: 'blur', trigger: 'blur',
required: true required: true

View File

@@ -53,16 +53,40 @@ export default defineConfig(({ mode, command }) => {
chunkFileNames: 'static/js/[name]-[hash].js', chunkFileNames: 'static/js/[name]-[hash].js',
entryFileNames: 'static/js/[name]-[hash].js', entryFileNames: 'static/js/[name]-[hash].js',
assetFileNames: 'static/assets/[name]-[hash].[ext]', assetFileNames: 'static/assets/[name]-[hash].[ext]',
manualChunks: { // manualChunks: {
'vue-vendor': ['vue', 'vue-router', 'pinia'], // Vue 生态单独拆包 // 'vue-vendor': ['vue', 'vue-router', 'pinia'], // Vue 生态单独拆包
'element-plus': ['element-plus', '@element-plus/icons-vue'], // Element Plus 单独拆包 // 'element-plus': ['element-plus', '@element-plus/icons-vue'], // Element Plus 单独拆包
'echarts': ['echarts'], // ECharts 单独拆包 // 'echarts': ['echarts'], // ECharts 单独拆包
'utils': ['axios', '@vueuse/core', 'vue-i18n'] // 工具库单独拆包 // 'utils': ['axios', '@vueuse/core', 'vue-i18n'] // 工具库单独拆包
// }
manualChunks(id) {
// 仅对第三方依赖进行分包,业务代码走默认逻辑
if (!id.includes('node_modules')) return;
// 1. Vue 生态(对应原 vue-vendor 分组)
if (['vue', 'vue-router', 'pinia'].some((pkg) => id.includes(pkg))) {
return 'vue-vendor';
}
// 2. Element Plus 组件库(对应原 element-plus 分组)
if (id.includes('element-plus') || id.includes('@element-plus')) {
return 'element-plus';
}
// 3. ECharts 图表(对应原 echarts 分组)
if (id.includes('echarts')) {
return 'echarts';
}
// 4. 通用工具库(对应原 utils 分组)
if (['axios', '@vueuse/core', 'vue-i18n'].some((pkg) => id.includes(pkg))) {
return 'utils';
}
// 其余所有第三方依赖统一打入 vendor 包
return 'vendor';
} }
} }
} }
}, },
css: { css: {
minify: 'postcss',
preprocessorOptions: { preprocessorOptions: {
scss: { scss: {
// additionalData: '@use "@/assets/styles/variables.module.scss as *";' // additionalData: '@use "@/assets/styles/variables.module.scss as *";'