Compare commits

...

2 Commits

@ -6,9 +6,11 @@
"scripts": { "scripts": {
"dev": "vite", "dev": "vite",
"build": "vite build", "build": "vite build",
"build:hot": "vite build",
"build:sta": "vite build --mode staging", "build:sta": "vite build --mode staging",
"preview": "vite preview", "preview": "vite preview",
"postbuild:sta": "scp -r ./dist/* root@207.148.89.145:/www/wwwroot/prodio.zltest.com.tw/public/admin", "postbuild:sta": "scp -r ./dist/* root@207.148.89.145:/www/wwwroot/prodio.zltest.com.tw/public/admin",
"postbuild:hot": "scp -r ./dist/* root@207.246.102.73:/opt/wwwroot/weisen/nginx/html/admin",
"postbuild": "cp -rf ./dist/* ../../prodio.prod/nginx/html/admin" "postbuild": "cp -rf ./dist/* ../../prodio.prod/nginx/html/admin"
}, },
"dependencies": { "dependencies": {

@ -1,5 +1,5 @@
let config = { let config = {
systemName: "普達後台管理系統", systemName: "後台管理系統",
theme: { theme: {
color: "#13c2c2", color: "#13c2c2",
mode: "dark", mode: "dark",

@ -1,5 +1,5 @@
export default { export default {
// lang: 'tw', //語言,可選 CN(簡體)、TW(繁體)、US(英語),也可擴充套件其它語言 // lang: 'tw', //語言,可選 CN(簡體)、TW(繁體)、US(英語),也可擴充套件其它語言
theme: { //主題 theme: { //主題
color: '#1890ff', //主題色 color: '#1890ff', //主題色
mode: 'dark', //主題模式 可選 dark、 light 和 night mode: 'dark', //主題模式 可選 dark、 light 和 night
@ -16,8 +16,8 @@ export default {
multiPage: false, //多頁籤模式true:開啟false:不開啟 multiPage: false, //多頁籤模式true:開啟false:不開啟
cachePage: true, //是否快取頁面資料僅多頁籤模式下生效true 快取, false 不快取 cachePage: true, //是否快取頁面資料僅多頁籤模式下生效true 快取, false 不快取
hideSetting: true, //隱藏設定抽屜true:隱藏false:不隱藏 hideSetting: true, //隱藏設定抽屜true:隱藏false:不隱藏
systemName: '管理系統', //系統名稱 systemName: '管理系統', //系統名稱
copyright: '2023 ZL corp.', //copyright copyright: '2023 corp.', //copyright
asyncRoutes: false, //非同步載入路由true:開啟false:不開啟 asyncRoutes: false, //非同步載入路由true:開啟false:不開啟
showPageTitle: true, //是否顯示頁面標題PageLayout 佈局中的頁面標題true:顯示false:不顯示 showPageTitle: true, //是否顯示頁面標題PageLayout 佈局中的頁面標題true:顯示false:不顯示
filterMenu: true, //根據許可權過濾選單true:過濾false:不過濾 filterMenu: true, //根據許可權過濾選單true:過濾false:不過濾

@ -66,7 +66,7 @@ const handleClick = () => {
</ul> </ul>
<ul class="header-nav"> <ul class="header-nav">
<li class="header-nav-item header-flexible" style="cursor: pointer"> <li class="header-nav-item header-flexible" style="cursor: pointer">
<el-dropdown @click="handleClick"> <!-- <el-dropdown @click="handleClick">
<div class="header-avatar" :style="{marginRight:'5px'}"> <div class="header-avatar" :style="{marginRight:'5px'}">
<el-icon :size="13" :style="{marginRight:'5px'}"> <el-icon :size="13" :style="{marginRight:'5px'}">
<Help /> <Help />
@ -80,7 +80,7 @@ const handleClick = () => {
<el-dropdown-item @click="setLocale('en')">EN</el-dropdown-item> <el-dropdown-item @click="setLocale('en')">EN</el-dropdown-item>
</el-dropdown-menu> </el-dropdown-menu>
</template> </template>
</el-dropdown> </el-dropdown> -->
<el-dropdown :hide-on-click="false"> <el-dropdown :hide-on-click="false">
<div class="header-avatar" > <div class="header-avatar" >
<el-icon :size="13" :style="{marginRight:'5px'}"> <el-icon :size="13" :style="{marginRight:'5px'}">

@ -36,14 +36,14 @@ const menuData = ([
title: "首頁輪播", title: "首頁輪播",
path: "/index/banner", path: "/index/banner",
}, },
{ // {
title: "供應商", // title: "",
path: "/index/supplier", // path: "/index/supplier",
} // }
], ],
}, },
{ {
title: "關於普達", title: "關於我們",
icon: Tickets, icon: Tickets,
path: "/about", path: "/about",
children: [ children: [
@ -51,10 +51,10 @@ const menuData = ([
title: "公司簡介", title: "公司簡介",
path: "/about/company", path: "/about/company",
}, },
{ // {
title: "經營理念", // title: "",
path: "/about/concept", // path: "/about/concept",
} // }
], ],
}, },
{ {
@ -81,14 +81,14 @@ const menuData = ([
title: "產業動態", title: "產業動態",
path: "/news/list", path: "/news/list",
}, },
{ // {
title: "公司活動", // title: "",
path: "/news/activity", // path: "/news/activity",
}, // },
{ // {
title: "ESG", // title: "ESG",
path: "/news/esg", // path: "/news/esg",
} // }
], ],
}, },
{ {
@ -145,7 +145,7 @@ const handleSelect = (key, keyPath) => {
:default-active="$route.path" :default-active="$route.path"
@select="handleSelect" @select="handleSelect"
> >
<div class="logo"><el-image style="width: 100px;" :src="logoImg" /></div> <div class="logo">WEISEN</div>
<template v-for="(menu, index) in menuData" :key="index"> <template v-for="(menu, index) in menuData" :key="index">
<el-sub-menu <el-sub-menu

@ -12610,7 +12610,7 @@ footer.footer .dotCircle img {
height: 250px !important; height: 250px !important;
} }
.imgCnt.md { .imgCnt.md {
height: 180px !important; /* height: 180px !important; */
} }
.imgCnt.sm { .imgCnt.sm {
height: 120px !important; height: 120px !important;
@ -13095,10 +13095,10 @@ footer.footer .dotCircle img {
margin: 20px 0; margin: 20px 0;
} }
.main.products .section .content .block .cardGroup .card { .main.products .section .content .block .cardGroup .card {
-webkit-box-orient: horizontal; -webkit-box-orient: vertical;
-webkit-box-direction: normal; -webkit-box-direction: normal;
-ms-flex-direction: row; -ms-flex-direction: column;
flex-direction: row; flex-direction: column;
margin-bottom: 10px; margin-bottom: 10px;
border: none; border: none;
overflow: hidden; overflow: hidden;
@ -13107,7 +13107,7 @@ footer.footer .dotCircle img {
padding: 0; padding: 0;
} }
.main.products .section .content .block .cardGroup .card .card-body .imgCnt { .main.products .section .content .block .cardGroup .card .card-body .imgCnt {
width: 220px; /* width: 220px; */
} }
.main.products .section .content .block .cardGroup .card .card-footer { .main.products .section .content .block .cardGroup .card .card-footer {
border: none; border: none;
@ -13117,10 +13117,22 @@ footer.footer .dotCircle img {
font-size: 18px; font-size: 18px;
font-weight: bold; font-weight: bold;
color: #2c2d3b; color: #2c2d3b;
display: -webkit-box;
-webkit-line-clamp: 2;
-webkit-box-orient: vertical;
overflow: hidden;
text-overflow: ellipsis;
} }
.main.products .section .content .block .cardGroup .card .card-footer .card-desc { .main.products .section .content .block .cardGroup .card .card-footer .card-desc {
font-size: 14px; font-size: 14px;
color: #355785; color: #355785;
height: 3em;
line-height: 1.5em;
display: -webkit-box;
-webkit-line-clamp: 2;
-webkit-box-orient: vertical;
overflow: hidden;
text-overflow: ellipsis;
} }
.main.products .section .content .block .cardGroup .card .card-footer .moreBtn { .main.products .section .content .block .cardGroup .card .card-footer .moreBtn {
width: 120px; width: 120px;

Binary file not shown.

Before

Width:  |  Height:  |  Size: 456 KiB

After

Width:  |  Height:  |  Size: 81 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 446 KiB

After

Width:  |  Height:  |  Size: 182 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 867 KiB

After

Width:  |  Height:  |  Size: 201 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.4 MiB

After

Width:  |  Height:  |  Size: 100 KiB

@ -8,7 +8,7 @@
.card-body{ .card-body{
padding: 0; padding: 0;
.imgCnt{ .imgCnt{
width:100%; // width:100%;
} }
} }
.card-footer{ .card-footer{

@ -50,9 +50,9 @@ watch(locale, (nVal,oVal) => {
<div class="container"> <div class="container">
<a class="navbar-brand" href="javascript:;"> <a class="navbar-brand" href="javascript:;">
<div class="logo" @click="router.push(localeLocation('/'))"> <div class="logo" @click="router.push(localeLocation('/'))">
<img :src="logoImg" alt="prodio"> <!-- <img :src="logoImg" alt="prodio"> -->
WEISEN
</div> </div>
<p>since 2002</p>
</a> </a>
<button ref="navbarToggler" class="navbar-toggler" type="button" data-bs-toggle="collapse" <button ref="navbarToggler" class="navbar-toggler" type="button" data-bs-toggle="collapse"
data-bs-target="#navbarText" aria-controls="navbarText" aria-expanded="false" aria-label="Toggle navigation"> data-bs-target="#navbarText" aria-controls="navbarText" aria-expanded="false" aria-label="Toggle navigation">
@ -61,13 +61,7 @@ watch(locale, (nVal,oVal) => {
<div class="collapse navbar-collapse" id="navbarText"> <div class="collapse navbar-collapse" id="navbarText">
<ul class="navbar-nav ms-auto"> <ul class="navbar-nav ms-auto">
<li class="nav-item"> <li class="nav-item">
<div class="nav-link">{{ $t('aboutus') }}</div> <div class="nav-link" @click="goRoute(localeLocation('/about/company'))">{{ $t('aboutus') }}</div>
<ul class="dropdown-menu">
<li><a class="dropdown-item" href="javascript:;" @click="goRoute(localeLocation('/about/company'))">{{
$t('About.company') }}</a></li>
<li><a class="dropdown-item" href="javascript:;" @click="goRoute(localeLocation('/about/concept'))">{{
$t('About.concept') }}</a></li>
</ul>
</li> </li>
<li class="nav-item"> <li class="nav-item">
<div class="nav-link" data-toggle="dropdown" data-submenu>{{ $t('products') }}</div> <div class="nav-link" data-toggle="dropdown" data-submenu>{{ $t('products') }}</div>
@ -86,15 +80,7 @@ watch(locale, (nVal,oVal) => {
</div> </div>
</li> </li>
<li class="nav-item"> <li class="nav-item">
<div class="nav-link">{{ $t('news') }}</div> <div class="nav-link" @click="goRoute(localeLocation('/social/news'))">{{ $t('news') }}</div>
<ul class="dropdown-menu">
<li><a class="dropdown-item" @click="goRoute(localeLocation('/social/news'))">{{ $t('Social.news')
}}</a></li>
<li><a class="dropdown-item" @click="goRoute(localeLocation('/social/activity'))">{{
$t('Social.activity') }}</a></li>
<li><a class="dropdown-item" @click="goRoute(localeLocation('/social/esg'))">{{
$t('Social.esg') }}</a></li>
</ul>
</li> </li>
<li class="nav-item"> <li class="nav-item">
<div class="nav-link">{{ $t('contact') }}</div> <div class="nav-link">{{ $t('contact') }}</div>
@ -106,11 +92,11 @@ watch(locale, (nVal,oVal) => {
</ul> </ul>
</li> </li>
</ul> </ul>
<div class="landBtnGroup btn-group"> <!-- <div class="landBtnGroup btn-group">
<NuxtLink class="btn chBtn" :class="{ active: locale === 'tw' }" :to="switchLocalePath('tw')"></NuxtLink> <NuxtLink class="btn chBtn" :class="{ active: locale === 'tw' }" :to="switchLocalePath('tw')"></NuxtLink>
<NuxtLink class="btn chBtn" :class="{ active: locale === 'cn' }" :to="switchLocalePath('cn')"></NuxtLink> <NuxtLink class="btn chBtn" :class="{ active: locale === 'cn' }" :to="switchLocalePath('cn')"></NuxtLink>
<NuxtLink class="btn chBtn" :class="{ active: locale === 'en' }" :to="switchLocalePath('en')">EN</NuxtLink> <NuxtLink class="btn chBtn" :class="{ active: locale === 'en' }" :to="switchLocalePath('en')">EN</NuxtLink>
</div> </div> -->
<form class="searchBar" @submit="handleSearchSubmit"> <form class="searchBar" @submit="handleSearchSubmit">
<input class="form-control form-control-sm bg-silver border-0" type="search" <input class="form-control form-control-sm bg-silver border-0" type="search"
placeholder="產品搜尋" placeholder="產品搜尋"
@ -131,8 +117,10 @@ watch(locale, (nVal,oVal) => {
<div class="row gx-lg-5 justify-content-between mb-5"> <div class="row gx-lg-5 justify-content-between mb-5">
<div class="col-12 col-lg-auto"> <div class="col-12 col-lg-auto">
<a class="logoGroup" href="javascript:;" @click="router.push(localeLocation('/'))"> <a class="logoGroup" href="javascript:;" @click="router.push(localeLocation('/'))">
<div class="logo"><img :src="logoImg" alt=""></div> <div class="logo">
<p>since 2002</p> <!-- <img :src="logoImg" alt=""> -->
WEISEN
</div>
</a> </a>
<!-- <div class="share_link"> <!-- <div class="share_link">
<a href="#"><div class="item fb"><i class="fa-brands fa-facebook-f"></i></div></a> <a href="#"><div class="item fb"><i class="fa-brands fa-facebook-f"></i></div></a>
@ -183,6 +171,6 @@ watch(locale, (nVal,oVal) => {
</div> </div>
</div> </div>
</div> </div>
<div class="copyright">{{ $t('copyright') }}</div> <div class="copyright">{{ config[locale].copyright }}</div>
</footer> </footer>
</template> </template>

@ -13,7 +13,6 @@ export default {
searchResult: '搜寻结果', searchResult: '搜寻结果',
total: '共', total: '共',
num: '笔', num: '笔',
copyright: '普达国际 版权所有 © All Rights Reserved Copyright © 2013. All rights reserved.',
Form: { Form: {
submit: '确认送出', submit: '确认送出',
}, },

@ -13,7 +13,6 @@ export default {
searchResult: 'Search Results', searchResult: 'Search Results',
total: 'Total', total: 'Total',
num: 'Results', num: 'Results',
copyright: 'Puda International. All Rights Reserved © Copyright 2013. All rights reserved.',
Form: { Form: {
submit: 'Submit', submit: 'Submit',
}, },

@ -3,7 +3,7 @@ export default {
description: '普達國際企業有限公司為多家知名化工及電子材料廠商代理暨分銷商。主要服務行業包括:塗料、膠粘劑、高分子聚合、電子陶瓷、電子材料、電子化學品、複合材料、表面處理及新能源材料等。', description: '普達國際企業有限公司為多家知名化工及電子材料廠商代理暨分銷商。主要服務行業包括:塗料、膠粘劑、高分子聚合、電子陶瓷、電子材料、電子化學品、複合材料、表面處理及新能源材料等。',
keywords: '乳化劑,分散劑,抗凍劑,環氧樹脂,固化劑,銅箔基板,阻燃劑,PVA 表面活性劑', keywords: '乳化劑,分散劑,抗凍劑,環氧樹脂,固化劑,銅箔基板,阻燃劑,PVA 表面活性劑',
aboutus: '關於我們', aboutus: '關於我們',
products: '產品應用資訊', products: '產品介紹',
news: '最新消息', news: '最新消息',
contact: '聯絡我們', contact: '聯絡我們',
branch: '公司據點', branch: '公司據點',
@ -13,7 +13,6 @@ export default {
searchResult: '搜尋結果', searchResult: '搜尋結果',
total: '共', total: '共',
num: '筆', num: '筆',
copyright: '普達國際 版權所有 © All Rights Reserved Copyright © 2013. All rights reserved.',
Form: { Form: {
submit: '確認送出', submit: '確認送出',
}, },

@ -4,12 +4,14 @@
"type": "module", "type": "module",
"scripts": { "scripts": {
"build": "nuxt build --dotenv .env", "build": "nuxt build --dotenv .env",
"build:hot": "nuxt build --dotenv .env",
"build:sta": "nuxt build --dotenv .env.staging", "build:sta": "nuxt build --dotenv .env.staging",
"dev": "nuxt dev --dotenv .env.development", "dev": "nuxt dev --dotenv .env.development",
"generate": "nuxt generate --dotenv .env.staging", "generate": "nuxt generate --dotenv .env.staging",
"preview": "nuxt preview", "preview": "nuxt preview",
"postinstall": "nuxt prepare", "postinstall": "nuxt prepare",
"postbuild:sta": "cp -rf .output/* ../nuxt/app && scp -r ../nuxt/app/* root@test:/www/wwwroot/prodio.zltest.com.tw/nuxt/app", "postbuild:sta": "cp -rf .output/* ../nuxt/app && scp -r ../nuxt/app/* root@test:/www/wwwroot/prodio.zltest.com.tw/nuxt/app",
"postbuild:hot": "scp -r .output/* root@h888.fun:/opt/wwwroot/weisen/web/app",
"postbuild": "rm -rf ../../prodio.prod/web/app/* && cp -rf .output/* ../../prodio.prod/web/app" "postbuild": "rm -rf ../../prodio.prod/web/app/* && cp -rf .output/* ../../prodio.prod/web/app"
}, },
"devDependencies": { "devDependencies": {

@ -30,10 +30,6 @@ const menuList = [
"name": t('About.company'), "name": t('About.company'),
"path": "/about/company" "path": "/about/company"
}, },
{
"name": t('About.concept'),
"path": "/about/concept"
},
] ]
const currentRoute = ref(''); const currentRoute = ref('');

@ -15,11 +15,11 @@ const { config } = storeToRefs(store);
const bannerData = computed(() => bannerRes.value.data); const bannerData = computed(() => bannerRes.value.data);
const cateData = computed(() => cateRes.value.data); const cateData = computed(() => cateRes.value.data);
const supplierData = computed(() => supplierRes.value.data); // const supplierData = computed(() => supplierRes.value.data);
const { data: bannerRes } = await useMyFetch('/index/getBannerList', "GET") const { data: bannerRes } = await useMyFetch('/index/getBannerList', "GET")
const { data: cateRes } = await useMyFetch('/index/getParentCateList', "GET") const { data: cateRes } = await useMyFetch('/index/getParentCateList', "GET")
const { data: supplierRes } = await useMyFetch('/index/getSupplierList', "GET") // const { data: supplierRes } = await useMyFetch('/index/getSupplierList', "GET")
onMounted(async () => { onMounted(async () => {
@ -130,7 +130,7 @@ const goProd = (cid) => {
</div> </div>
</section> </section>
<section class="section supplier"> <!-- <section class="section supplier">
<div class="container-fluid"> <div class="container-fluid">
<div class="swiper"> <div class="swiper">
<div class="swiper-wrapper"> <div class="swiper-wrapper">
@ -140,7 +140,7 @@ const goProd = (cid) => {
</div> </div>
</div> </div>
</div> </div>
</section> </section> -->
</div> </div>
</div> </div>
</template> </template>

@ -32,20 +32,21 @@ watch(()=>route.params.cat_id,(nVal)=>{
<!-- <span>{{ props.pData.nameEn }}</span> --> <!-- <span>{{ props.pData.nameEn }}</span> -->
</div> </div>
<div class="bDesc">{{ cateData.description }}</div> <div class="bDesc">{{ cateData.description }}</div>
<div class="cardGroup"> <div class="cardGroup row g-3">
<NuxtLinkLocale class="card" v-for="(prod, i) in productList" :key="i" <NuxtLinkLocale class="card col-6 col-md-6 col-lg-3" v-for="(prod, i) in productList" :key="i"
:to="{path: '/products/detail/'+prod.id}"> :to="{path: '/products/detail/'+prod.id}">
<div class="card-body"> <div class="card-body">
<div class="imgCnt md"> <div class="imgCnt md">
<img :src="prod.imageurl" :alt="prod.name"> <img :src="prod.imageurl" :alt="prod.name">
</div> </div>
</div> </div>
<div class="card-footer"> <!-- <div class="card-footer">
<div class="card-title">{{ prod.name }}</div> <div class="card-title">{{ prod.name }}</div>
<div class="card-desc">{{ prod.description }}</div> <div class="card-desc">{{ prod.description }}</div>
<div class="moreBtn">more</div> <div class="moreBtn">more</div>
</div> </div> -->
</NuxtLinkLocale> </NuxtLinkLocale>
</div> </div>
</div> </div>
</div> </div>

@ -39,14 +39,6 @@ const menuList = [
"name":t('Social.news'), "name":t('Social.news'),
"path":"/social/news" "path":"/social/news"
}, },
{
"name":t('Social.activity'),
"path":"/social/activity"
},
{
"name":t('Social.esg'),
"path":"/social/esg"
},
] ]
const currentRoute = ref(''); const currentRoute = ref('');

Loading…
Cancel
Save