li.shaoyi 2 年之前
父節點
當前提交
523f240c3c

二進制
public/favicon.ico


+ 13 - 13
src/packages/mobile/assets/themes/style.less

@@ -4,34 +4,34 @@
 @import './dark/variable.less';
 
 [class^='g-image-'] {
-    position  : relative;
+    position: relative;
     object-fit: cover;
-    overflow  : hidden;
+    overflow: hidden;
 
     &:before {
-        content        : '';
-        position       : absolute;
-        left           : 0;
-        top            : 0;
-        width          : 100%;
-        height         : 100%;
-        background     : url("~@mobile/assets/images/avatar.jpg") no-repeat center;
+        content: '';
+        position: absolute;
+        left: 0;
+        top: 0;
+        width: 100%;
+        height: 100%;
+        background: url("~@mobile/assets/images/avatar.png") no-repeat center;
         background-size: cover;
     }
 }
 
 .g-flex {
-    display       : flex;
+    display: flex;
     flex-direction: column;
-    height        : 100%;
+    height: 100%;
 
     &--row {
         flex-direction: row;
     }
 
     &__body {
-        flex                      : 1;
-        overflow-y                : auto;
+        flex: 1;
+        overflow-y: auto;
         -webkit-overflow-scrolling: touch;
     }
 

二進制
src/packages/pc/assets/images/avatar.jpg


二進制
src/packages/pc/assets/images/avatar.png


二進制
src/packages/pc/assets/images/sidebar-logo.png


二進制
src/packages/pc/assets/logo-horizontal.png


二進制
src/packages/pc/assets/logo-vertical.png


二進制
src/packages/pc/assets/logo.png


+ 5 - 2
src/packages/pc/assets/themes/default/default.less

@@ -19,14 +19,17 @@
     --tabbar-active: var(--color-primary);
     --tabbar-hover: #eff4f9;
     --tabbar-close-hover: red;
+    /* 顶部标题栏 */
+    --header-bg: #2c5f87;
     /* 侧边栏 */
     --sidebar-width: 190px;
     --sidebar-background: #37709d;
+    //--sidebar-background: #22547c;
     --sidebar-header-height: 56px;
     --sidebar-menu-inline: #fff;
     --sidebar-menu-item: #b3d5ef;
-    --sidebar-menu-item-hover: #4680b1;
-    --sidebar-menu-item-active: #2c5f87;
+    --sidebar-menu-item-hover: #437ead;
+    --sidebar-menu-item-active: #437ead;
 
     --el-color-primary: var(--color-primary);
     --el-color-primary-light-3: #4b95ce;

+ 1 - 1
src/packages/pc/assets/themes/global/global.less

@@ -10,7 +10,7 @@
         top: 0;
         width: 100%;
         height: 100%;
-        background: url("~@pc/assets/images/avatar.jpg") no-repeat center;
+        background: url("~@pc/assets/images/avatar.png") no-repeat center;
         background-size: cover;
     }
 }

+ 28 - 6
src/packages/pc/components/layouts/header/index.less

@@ -3,19 +3,21 @@
     justify-content: space-between;
     align-items: center;
     min-height: var(--statusbar-height);
-    color: #525b65;
+    color: #fff;
+    background-color: var(--header-bg);
+    //border-bottom: 1px solid #f2f2f2;
     padding: 0 20px;
 
     &__left {
         display: flex;
         align-items: center;
 
-        .logo {
-            height: var(--statusbar-height);
-        }
+        /deep/ .el-breadcrumb__inner {
+            color: #fff;
 
-        .el-breadcrumb__inner {
-            color: inherit !important;
+            &.is-link {
+                color: inherit;
+            }
         }
     }
 
@@ -62,5 +64,25 @@
                 }
             }
         }
+
+        .user-dropdown {
+            color: #fff;
+            margin-left: 20px;
+
+            &__link {
+                display: flex;
+                align-items: center;
+                font-weight: bold;
+                cursor: pointer;
+            }
+
+            .g-image--avatar {
+                width: 32px;
+                height: 32px;
+                border-radius: 50%;
+                font-size: 0;
+                margin-right: 4px;
+            }
+        }
     }
 }

+ 18 - 3
src/packages/pc/components/layouts/header/index.vue

@@ -2,7 +2,7 @@
     <div class="app-header">
         <div class="app-header__left">
             <slot name="left"></slot>
-            <el-breadcrumb separator-icon="ArrowRight" v-show="!isMobile" v-if="false">
+            <el-breadcrumb separator-icon="ArrowRight" v-show="!isMobile">
                 <template v-for="(item, index) in $route.matched" :key="index">
                     <el-breadcrumb-item :to="{ path: item.path }">
                         <!--<i :class="item.meta.icon" v-if="item.meta.icon"></i>-->
@@ -10,7 +10,6 @@
                     </el-breadcrumb-item>
                 </template>
             </el-breadcrumb>
-            <img class="logo" src="@pc/assets/logo.png" title="logo" />
         </div>
         <div class="app-header__right">
             <slot name="right"></slot>
@@ -24,6 +23,20 @@
                 <app-icon icon="g-icon--minimize" @click="exitFullSreen" v-if="fullScreen" />
                 <app-icon icon="g-icon--maximize" @click="setFullSreen" v-else />
             </div>
+            <el-dropdown class="user-dropdown" trigger="click">
+                <span class="user-dropdown__link">
+                    <img class="g-image--avatar" :title="accountName" />
+                    <span v-if="!isMobile">{{ accountName }}</span>
+                    <app-icon class="el-icon--right" icon="ArrowDown" />
+                </span>
+                <template #dropdown>
+                    <el-dropdown-menu>
+                        <!-- <el-dropdown-item icon="Key">修改密码</el-dropdown-item> -->
+                        <el-dropdown-item icon="SwitchButton"
+                            @click="eventBus.$emit('LogoutNotify')">退出登录</el-dropdown-item>
+                    </el-dropdown-menu>
+                </template>
+            </el-dropdown>
         </div>
         <component :is="componentMap.get(componentId)" v-bind="{ dataList }" @closed="closeComponent" v-if="componentId" />
     </div>
@@ -32,9 +45,10 @@
 <script lang="ts" setup>
 import { ref, onMounted, defineAsyncComponent } from 'vue'
 import { useRouter } from 'vue-router'
-import { globalStore } from '@/stores'
+import { loginStore, globalStore } from '@/stores'
 import { useComponent } from '@/hooks/component'
 import { useNotice } from '@/business/notice'
+import eventBus from '@/services/bus'
 import AppIcon from '@pc/components/base/icon/index.vue'
 
 const componentMap = new Map<string, unknown>([
@@ -46,6 +60,7 @@ const componentMap = new Map<string, unknown>([
 const { componentId, openComponent, closeComponent } = useComponent()
 const { dataList, unreadList, getNoticeList } = useNotice()
 const { isMobile } = globalStore.$mapState()
+const { accountName } = loginStore.$mapGetters()
 const router = useRouter()
 const fullScreen = ref(false)
 

+ 0 - 3
src/packages/pc/components/layouts/page/index.less

@@ -17,9 +17,6 @@
     }
 
     &__wrapper &__header {
-        background-color: #fff;
-        border-bottom: 1px solid #f2f2f2;
-
         .icon-fold-expand {
             margin-right: 10px;
 

+ 4 - 23
src/packages/pc/components/layouts/sidebar/index.less

@@ -11,7 +11,7 @@
     &__copyright {
         display: inline-flex;
         width: 0;
-        max-height: 0;
+        height: 0;
         white-space: nowrap;
         overflow: hidden;
         transition: all 300ms;
@@ -23,32 +23,13 @@
     }
 
     &__header {
-        align-items: center;
         padding: 0 20px;
+        align-items: center;
+        background-color: var(--header-bg);
 
         &:not(.is-hide) {
             width: var(--sidebar-width);
-            min-height: var(--sidebar-header-height);
-        }
-
-        .user-dropdown {
-            color: #fff;
-
-            &__link {
-                display: flex;
-                align-items: center;
-                font-weight: bold;
-                cursor: pointer;
-            }
-
-            .g-image--avatar {
-                width: 36px;
-                height: 36px;
-                border-radius: 50%;
-                font-size: 0;
-                margin-right: 4px;
-                border: 2px solid #fff;
-            }
+            height: var(--sidebar-header-height);
         }
     }
 

+ 2 - 17
src/packages/pc/components/layouts/sidebar/index.vue

@@ -1,19 +1,7 @@
 <template>
   <el-scrollbar :class="['app-sidebar', collapse && 'is-hide']" view-class="app-sidebar__view">
     <div :class="['app-sidebar__header', isMobile ? 'is-show' : collapse && 'is-hide']">
-      <el-dropdown class="user-dropdown" trigger="click">
-        <span class="user-dropdown__link">
-          <img class="g-image--avatar" :title="accountName" />
-          <span>{{ accountName }}</span>
-          <app-icon class="el-icon--right" icon="ArrowDown" />
-        </span>
-        <template #dropdown>
-          <el-dropdown-menu>
-            <!-- <el-dropdown-item icon="Key">修改密码</el-dropdown-item> -->
-            <el-dropdown-item icon="SwitchButton" @click="eventBus.$emit('LogoutNotify')">退出登录</el-dropdown-item>
-          </el-dropdown-menu>
-        </template>
-      </el-dropdown>
+      <img src="@pc/assets/images/sidebar-logo.png" title="logo" />
     </div>
     <div class="app-sidebar__menu">
       <app-sidemenu :collapse="isMobile ? false : collapse" @click="routerTo" />
@@ -28,10 +16,8 @@
 <script lang="ts" setup>
 import { watch } from 'vue'
 import { useMenu } from '@/hooks/menu'
-import { globalStore, loginStore } from '@/stores'
-import eventBus from '@/services/bus'
+import { globalStore } from '@/stores'
 import AppSidemenu from '../sidemenu/index.vue'
-import AppIcon from '@pc/components/base/icon/index.vue'
 
 const emit = defineEmits(['update:collapse'])
 
@@ -42,7 +28,6 @@ defineProps({
 
 const { router, getChildrenMenus } = useMenu()
 const { isMobile } = globalStore.$mapState()
-const { accountName } = loginStore.$mapGetters()
 const year = new Date().getFullYear()
 
 const hideSidebar = () => {

+ 4 - 0
src/packages/pc/views/auth/components/layout/index.less

@@ -26,6 +26,10 @@
             &-logo {
                 text-align: center;
                 padding: 150px 0 55px 0;
+
+                img {
+                    width: 256px;
+                }
             }
 
             &-container {

+ 1 - 1
src/packages/pc/views/auth/components/layout/index.vue

@@ -3,7 +3,7 @@
     <div class="sign-layout__left" />
     <div class="sign-layout__right">
       <div class="login-logo">
-        <img src="@pc/assets/logo.png" title="logo" />
+        <img src="@pc/assets/logo-horizontal.png" title="logo" />
       </div>
       <div class="login-container">
         <div class="login-container__title">{{ title }}</div>

+ 3 - 1
src/packages/pc/views/bonded/outbound/components/apply/subdetail-edit/index.vue

@@ -161,7 +161,9 @@ queryGzbscPosition({
     }
     nextTick(() => {
         selectedPosition.value = res.data.find((e) => e.goodsid === goodsId?.toString())
-        tableRef.value?.elTable.toggleRowSelection(selectedPosition.value)
+        if (selectedPosition.value) {
+            tableRef.value?.elTable.toggleRowSelection(selectedPosition.value)
+        }
     })
 })
 </script>

+ 21 - 1
src/packages/pc/views/centralize/mine/components/apply/details.vue

@@ -1,6 +1,6 @@
 <!-- 预售大厅-我的预售-我的申请-详情 -->
 <template>
-    <app-drawer title="详情" :width="800" v-model:show="show">
+    <app-drawer title="详情" :width="960" v-model:show="show">
         <app-table-details title="预售信息" :label-width="140" :data="selectedRow" :cell-props="details1" :column="2">
             <!-- 采购保证金比例 -->
             <template #buymarginvalue="{ value }">
@@ -14,6 +14,10 @@
             <template #performancetemplateid="{ value }">
                 <app-performance-rule :item="getPerformanceTemplateById(value)" />
             </template>
+            <!-- 集采价格 -->
+            <template #price>
+                <app-table :data="priceList" :columns="priceColumns" :show-toolbar="false" border />
+            </template>
         </app-table-details>
         <app-table-details title="钻石参考信息" :label-width="140" :data="selectedRow" :cell-props="details2" :column="2">
             <!-- 生产方式 -->
@@ -35,7 +39,10 @@ import { shallowRef, reactive, PropType, onMounted } from 'vue'
 import { getFileUrl, parsePercent, handleNumberValue } from '@/filters'
 import { getInOutApplyStatusName, getYSProductionModeName } from '@/constants/presale'
 import { performanceStore } from '@/stores'
+import { useRequest } from '@/hooks/request'
+import { queryPresaleorderapplyprice } from '@/services/api/presale'
 import AppDrawer from '@pc/components/base/drawer/index.vue'
+import AppTable from '@pc/components/base/table/index.vue'
 import AppTableDetails from '@pc/components/base/table-details/index.vue'
 import AppPerformanceRule from '@pc/components/modules/performance-rule/index.vue'
 
@@ -50,6 +57,12 @@ const { getPerformanceTemplateById } = performanceStore.actions
 const show = shallowRef(true)
 const imageUrl = reactive<string[]>([])
 
+const { dataList: priceList } = useRequest(queryPresaleorderapplyprice, {
+    params: {
+        applyid: props.selectedRow.presaleapplyid
+    }
+})
+
 const details1 = [
     { prop: 'wrstandardname', label: '商品名称:' },
     { prop: 'applytime', label: '申请日期:' },
@@ -64,6 +77,7 @@ const details1 = [
     { prop: 'applystatus', label: '状态:' },
     { prop: 'auditremark', label: '审核备注:' },
     { prop: 'performancetemplateid', label: '履约方式:', entireRow: true },
+    { prop: 'price', label: '集采价格:', entireRow: true },
 ]
 
 const details2 = [
@@ -78,6 +92,12 @@ const details2 = [
     { prop: 'remark', label: '备注:', entireRow: true },
 ]
 
+const priceColumns: Ermcp.TableColumn[] = [
+    { prop: 'stepindex', label: '序号' },
+    { prop: 'qty', label: '数量' },
+    { prop: 'price', label: '价格(元/克拉)' },
+]
+
 onMounted(() => {
     const images = props.selectedRow.pictureurls.split(',')
     images.forEach((url) => {

+ 1 - 1
src/packages/pc/views/warehousing/goods/components/details/index.less

@@ -7,7 +7,7 @@
         top: 15px;
         right: 15px;
         font-size: 28px;
-        color: #666;
+        color: #999;
         cursor: pointer;
     }