Преглед изворни кода

版本管理配置 smt配置

asd26269546 пре 1 година
родитељ
комит
1631c496c7
10 измењених фајлова са 246 додато и 27 уклоњено
  1. 3 0
      .env.prodSmt
  2. 4 1
      .env.smt
  3. 3 0
      .env.staging
  4. BIN
      src/assets/smtLogo.jpg
  5. BIN
      src/assets/smtLogo.png
  6. 7 0
      src/lang/cn.js
  7. 5 0
      src/router/index.js
  8. 11 7
      src/views/login.vue
  9. 135 0
      src/views/message/announcement.vue
  10. 78 19
      src/views/message/index.vue

+ 3 - 0
.env.prodSmt

@@ -4,6 +4,9 @@ VUE_APP_TITLE = ByteSailing
 # 生产环境配置
 VUE_APP_ENV = 'prodSmt'
 
+# 用户名
+VUE_APP_USERNAME = 'smt'
+
 # 若依管理系统/生产环境
 VUE_APP_BASE_API = '/prod-api'
 

+ 4 - 1
.env.smt

@@ -2,7 +2,10 @@
 VUE_APP_TITLE = ByteSailing
 
 # 生产环境配置
-VUE_APP_ENV = 'devSmt'
+VUE_APP_ENV = 'development'
+
+# 用户名
+VUE_APP_USERNAME = 'smt'
 
 # 若依管理系统/生产环境
 VUE_APP_BASE_API = '/test-api'

+ 3 - 0
.env.staging

@@ -4,6 +4,9 @@ VUE_APP_TITLE = ByteSailing
 # 生产环境配置
 VUE_APP_ENV = 'staging'
 
+# 用户名
+VUE_APP_USERNAME = 'smt'
+
 # 若依管理系统/生产环境
 VUE_APP_BASE_API = '/test-api'
 

BIN
src/assets/smtLogo.jpg


BIN
src/assets/smtLogo.png


+ 7 - 0
src/lang/cn.js

@@ -42,6 +42,10 @@ export const lang = {
 		equipmentParameters:"设备参数",
 		model:"型号",
 		fileUpload:"文件上传",
+		upload:"上传",
+		daysAgo:'天之前',
+		hoursAgo:'小时之前',
+		minutesAgo:'分钟之前'
 	},
 	email:{
 		//收件箱,写邮件,搜索,邮箱,所有收件箱,账户,请选择邮箱,联系人,客户,收件箱,未读邮件,草稿箱,已发送,已删除,垃圾邮箱,发件人,收件人,时间,附件,下载,
@@ -100,6 +104,9 @@ export const lang = {
 		moduleType:'模块类型',
 		remarks:'备注',
 		pictureSupplement:'图片补充',
+		daysAgo:'天之前',
+		hoursAgo:'小时之前',
+		minutesAgo:'分钟之前'
 
 	},
 	salesContract:{

+ 5 - 0
src/router/index.js

@@ -471,6 +471,11 @@ const routes = [{
 				component: () => import('../views/email/write.vue')
 			},
 			{
+				path: 'announcement',
+				name: '公告',
+				component: () => import('../views/message/announcement.vue')
+			},
+			{
 				path: "sacnTest",
 				name: "扫码页面",
 				component: () => import("../views/system/sacn/index.vue"),

+ 11 - 7
src/views/login.vue

@@ -1,8 +1,8 @@
 <template>
 	<div class="login">
 		<div class="login-header">
-			<img class="logo" src="../assets/logo.png" />
-			<h2>{{ $t('login.title') }}</h2>
+			<img class="logo" :style="VUE_APP_USERNAME == 'smt' ? 'width:200px;height:200px' : ''" :src="VUE_APP_USERNAME == 'smt' ? smtLogo : logo" />
+			<h2 v-if="VUE_APP_USERNAME != 'smt'">{{ $t('login.title') }}</h2>
 		</div> 
 		<div class="login-form">
 			<van-field
@@ -57,10 +57,12 @@
 						v-model="clause"
 					></van-checkbox>
 				</div>
-				{{ $t('login.agreement.text') }}
-				<span>{{ $t('login.agreement.clause') }}</span>
-				{{ $t('login.agreement.and') }}
-				<span>{{ $t('login.agreement.agreement') }}</span>
+				<div>
+					{{ $t('login.agreement.text') }}
+					<span>{{ $t('login.agreement.clause') }}</span>
+					{{ $t('login.agreement.and') }}
+					<span>{{ $t('login.agreement.agreement') }}</span>
+				</div>
 			</div>
 
 		</div>
@@ -127,9 +129,11 @@ import { showSuccessToast, showFailToast,showConfirmDialog } from 'vant'
 import * as dd from 'dingtalk-jsapi'
 import axios from 'axios'
 import { useRoute } from 'vue-router'
+import logo from '@/assets/logo.png'
+import smtLogo from '@/assets/smtLogo.png'
 const route = useRoute()
 const proxy = getCurrentInstance().proxy
-
+const VUE_APP_USERNAME = ref(process.env.VUE_APP_USERNAME)
 const loginForm = ref({
 	username: '',
 	password: '',

+ 135 - 0
src/views/message/announcement.vue

@@ -0,0 +1,135 @@
+<template>
+    <div class="messageList">
+        <van-nav-bar
+			title="公告"
+			:left-text="$t('common.back')"
+			left-arrow
+			@click-left="onClickLeft"
+		></van-nav-bar>
+        <ul>
+            <li v-for="i in sendMegData" :key="i.id">
+                <div class="icon-box">
+                    <i  class="iconfont icon-iconm_xitxx"></i>
+                </div>
+                <div class="text-center">
+                    <div class="title">{{i.title}}</div>
+                    <div class="content">{{i.content}}</div>
+                </div>
+                <div class="text-right">
+                    <div class="time-or-num">
+                        <div class="time">{{i.updateTime}}</div>
+                    </div>
+                    <van-icon name="arrow" size='16' />
+                </div>
+            </li>
+            
+            <!-- <li>
+                <div class="icon-box">
+                    <i  class="iconfont icon-iconm_kehd"></i>
+                </div>
+                <div class="text-center">
+                    <div class="title">李四</div>
+                    <div class="content">asdlojaskldajsdlakj</div>
+                </div>
+                <div class="text-right">
+                    <div class="time-or-num">
+                        <div class="time">12:00</div>
+                        <div class="num">122</div>
+                    </div>
+                    <van-icon name="arrow" size='16' />
+                </div>
+            </li> -->
+        </ul>
+    </div>
+</template>
+
+<script setup>
+import { ref, getCurrentInstance, onMounted } from 'vue'
+import { showSuccessToast, showFailToast } from 'vant'
+import { useRoute } from 'vue-router'
+const onClickLeft = () => history.back()
+const proxy = getCurrentInstance().proxy
+const toMessageList = () => {
+    proxy.$router.push('/main/messageList')
+}
+let sendMegData = ref([])
+proxy.post('/sendMeg/page',{type:'1',status:1}).then(res => {
+    sendMegData = res.data.rows
+   
+})
+</script>
+<style lang="scss">
+    .messageList{
+        ul{
+            margin: 12px 0 0 0;
+            padding-left: 12px;
+            background: #fff;
+            li{
+                
+                padding: 20px 12px 20px 0;
+                display: flex;
+                justify-content: space-between;
+                height: 80px;
+                box-sizing: border-box;
+                border-bottom: 1px solid #ddd;
+                .text-center{
+                    flex: 1;
+                    max-width: calc(100vw - 140px);
+                    .title{
+                        font-size: 16px;
+                        font-weight: bold;
+                        color: #333;
+                    }
+                    .content{
+                        font-size: 14px;
+                        color: #999;
+                        margin-top: 4px;
+                        //文字一行多余省略
+                        overflow: hidden;
+                        text-overflow: ellipsis;
+                        white-space: nowrap;
+
+                    }
+                }
+                .text-right{
+                    display: flex;
+                    .van-badge__wrapper{
+                        line-height: 40px;
+                    }
+                    .time-or-num {
+                        text-align: center;
+                        margin-right: 5px;
+                        .time{
+                            font-size: 12px;
+                            color: #999;
+                        }
+                        .num {
+                            
+                            height: 16px;
+                            background: #FF4D4F;
+                            border-radius: 8px;
+                            text-align: center;
+                            line-height: 16px;
+                            font-size: 12px;
+                            color: #fff;
+                            margin-top: 8px;
+                        }
+                    }
+                }
+                .icon-box{
+                    width: 40px;
+                    height: 40px;
+                    background: #ccc;
+                    border-radius: 20px;
+                    text-align: center;
+                    line-height: 40px;
+                    margin-right: 20px;
+                    i{
+                        font-size: 20px;
+                        color: #fff;
+                    }
+                }
+            }
+        }
+    }
+</style>

+ 78 - 19
src/views/message/index.vue

@@ -5,18 +5,18 @@
             <template #right> <van-icon name="more-o" /> </template>
         </van-nav-bar>
         <ul>
-            <li>
+            <li  @click="toRouter('announcement')">
                 <div class="icon-box">
                     <i  class="iconfont icon-iconm_xitxx"></i>
                 </div>
                 <div class="text-center">
                     <div class="title">{{$t('message.systemNotification')}}</div>
-                    <div class="content">啊实打实多阿萨德啊撒打说</div>
+                    <div class="content">{{sendMegData.rows.length > 0 ? sendMegData.rows[0].title : ''}}</div>
                 </div>
                 <div class="text-right">
                     <div class="time-or-num">
-                        <div class="time">12:00</div>
-                        <div class="num">122</div>
+                        <div class="time">{{sendMegTime}}</div>
+                        <div class="num">{{sendMegData.total}}</div>
                     </div>
                     <van-icon name="arrow" size='16' />
                 </div>
@@ -25,46 +25,46 @@
                 <div class="icon-box" style="background:#A06CFB">
                     <i  class="iconfont icon-iconm_yewtx"></i>
                 </div>
-                <div class="text-center">
+                <div class="text-center" style="line-height:40px">
                     <div class="title">{{$t('message.businessReminder')}}</div>
-                    <div class="content">asdlojaskldajsdlakj</div>
+                    <div class="content"></div>
                 </div>
                 <div class="text-right">
                     <div class="time-or-num">
-                        <div class="time">12:00</div>
-                        <div class="num">122</div>
+                        <div class="time"> </div>
+                        <div class="num">0</div>
                     </div>
                     <van-icon name="arrow" size='16' />
                 </div>
             </li>
-            <li>
+            <li @click="toRouter('email')">
                 <div class="icon-box"  style="background:#FF8800">
                     <i  class="iconfont icon-iconx_dianzyx"></i>
                 </div>
                 <div class="text-center">
-                    <div class="title">{{$t('message.mailReminder')}}</div>
-                    <div class="content">asdlojaskldajsdlakj</div>
+                    <div class="title"  style="line-height:40px">{{$t('message.mailReminder')}}</div>
+                    <div class="content"></div>
                 </div>
                 <div class="text-right">
                     <div class="time-or-num">
-                        <div class="time">12:00</div>
-                        <div class="num">122</div>
+                        <div class="time"> </div>
+                        <div class="num">{{emailNumber}}</div>
                     </div>
                     <van-icon name="arrow" size='16' />
                 </div>
             </li>
-            <li @click="toMessageList">
+            <li>
                 <div class="icon-box" style="background:#38CBD8">
                     <i  class="iconfont icon-iconm_kehd"></i>
                 </div>
                 <div class="text-center">
-                    <div class="title">{{$t('message.privateLetter')}}</div>
-                    <div class="content">asdlojasklasds案发生的阿萨德爱上dajsdlakj阿萨德阿萨德阿萨德啊啥的啊撒 啊 啊啊</div>
+                    <div class="title"  style="line-height:40px">{{$t('message.privateLetter')}}</div>
+                    <div class="content"></div>
                 </div>
                 <div class="text-right">
                     <div class="time-or-num">
-                        <div class="time">12:00</div>
-                        <div class="num">122</div>
+                        <div class="time"> </div>
+                        <div class="num">0</div>
                     </div>
                     <van-icon name="arrow" size='16' />
                 </div>
@@ -76,12 +76,71 @@
 import { ref, getCurrentInstance, onMounted } from 'vue'
 import { showSuccessToast, showFailToast } from 'vant'
 import { useRoute } from 'vue-router'
+import { getUserInfo } from '@/utils/auth'
 const proxy = getCurrentInstance().proxy
 const toMessageList = () => {
     proxy.$router.push('/main/messageList')
 }
+let sendMegData = ref({
+    rows: [],
+    total:0,
+})
+function timesFun (timesData) {
+    //如果时间格式是正确的,那下面这一步转化时间格式就可以不用了
+    var dateBegin = new Date(timesData.replace(/-/g, "/"));//将-转化为/,使用new Date
+    var dateEnd = new Date();//获取当前时间
+    var dateDiff = dateEnd.getTime() - dateBegin.getTime();//时间差的毫秒数
+    var dayDiff = Math.floor(dateDiff / (24 * 3600 * 1000));//计算出相差天数
+    var leave1 = dateDiff % (24 * 3600 * 1000)    //计算天数后剩余的毫秒数
+    var hours = Math.floor(leave1 / (3600 * 1000))//计算出小时数
+    //计算相差分钟数
+    var leave2 = leave1 % (3600 * 1000)    //计算小时数后剩余的毫秒数
+    var minutes = Math.floor(leave2 / (60 * 1000))//计算相差分钟数
+    //计算相差秒数
+    var leave3 = leave2 % (60 * 1000)      //计算分钟数后剩余的毫秒数
+    var seconds = Math.round(leave3 / 1000);
+    var timesString = '';
+
+    if (dayDiff != 0) {
+        timesString = dayDiff + proxy.$t('common.daysAgo');
+    } else if (dayDiff == 0 && hours != 0) {
+        timesString = hours + proxy.$t('common.hoursAgo');
+    } else if (dayDiff == 0 && hours == 0) {
+        timesString = minutes + proxy.$t('common.minutesAgo');
+    }
+
+    return {
+        timesString: timesString
+    }
+}
+let sendMegTime = ref('')
+proxy.post('/sendMeg/page',{type:'1',status:1}).then(res => {
+    sendMegData = res.data
+    sendMegTime = timesFun(res.data.rows[0].createTime).timesString
+    //计算a距离现在的时间
+})
+
+const toRouter = (routerName) => {
+    proxy.$router.push(`/main/${routerName}`)
+}
+const emailNumber = ref(0)
+proxy.post('/mailInfo/getUserEmailList',{
+    id:getUserInfo().userId
+}).then(res => {
+    for (let i = 0; i < res.data.length; i++) {
+        const element = res.data[i];
+        for (let j = 0; j < element.mailFolderInfoList.length; j++) {
+            const jelement = element.mailFolderInfoList[j];
+            if(jelement.unreadMessageCount) emailNumber.value = emailNumber.value + jelement.unreadMessageCount
+        }
+    }
+    console.log(res)
+})
 </script>
 <style lang="scss">
+.op0{
+    opacity: 0;
+}
     .message{
         ul{
             margin: 12px 0 0 0;
@@ -127,7 +186,7 @@ const toMessageList = () => {
                             color: #999;
                         }
                         .num {
-                            
+                            width:40px;
                             height: 16px;
                             background: #FF4D4F;
                             border-radius: 8px;