gaoluyang
7 天以前 567fb186b00e8cb8cc90beb9e18c1b01b9c3f4ec
1.图标修改
已修改4个文件
已添加22个文件
426 ■■■■ 文件已修改
src/api/personnelManagement/employeeRecord.js 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/personnelManagement/onboarding.js 49 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/personnelManagement/payrollManagement.js 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/pages.json 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/pages/index.vue 87 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/pages/mine.vue 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/pages_mine/pages/company/index.vue 83 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/pages_mine/pages/contract/index.vue 97 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/pages_mine/pages/info/index.vue 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/static/images/icon/caigoutaizhang@2x.png 补丁 | 查看 | 原始文档 | blame | 历史
src/static/images/icon/fukuanjingji@2x.png 补丁 | 查看 | 原始文档 | blame | 历史
src/static/images/icon/fukuanliushui@2x.png 补丁 | 查看 | 原始文档 | blame | 历史
src/static/images/icon/gongyingshangwanglai@2x.png 补丁 | 查看 | 原始文档 | blame | 历史
src/static/images/icon/huikuandengji@2x.png 补丁 | 查看 | 原始文档 | blame | 历史
src/static/images/icon/huikuanliushui@2x.png 补丁 | 查看 | 原始文档 | blame | 历史
src/static/images/icon/kaipiaodengji@2x.png 补丁 | 查看 | 原始文档 | blame | 历史
src/static/images/icon/kaipiaotaizhang@2x.png 补丁 | 查看 | 原始文档 | blame | 历史
src/static/images/icon/kehubaifang@2x.png 补丁 | 查看 | 原始文档 | blame | 历史
src/static/images/icon/kehuwanglai@2x.png 补丁 | 查看 | 原始文档 | blame | 历史
src/static/images/icon/laipiaodengji@2x.png 补丁 | 查看 | 原始文档 | blame | 历史
src/static/images/icon/laipiaotaizhang@2x.png 补丁 | 查看 | 原始文档 | blame | 历史
src/static/images/icon/shbeibaoxiu@2x.png 补丁 | 查看 | 原始文档 | blame | 历史
src/static/images/icon/shbeibaoyang@2x.png 补丁 | 查看 | 原始文档 | blame | 历史
src/static/images/icon/shebeitaizhang@2x.png 补丁 | 查看 | 原始文档 | blame | 历史
src/static/images/icon/xiaoshoutaizhang@2x.png 补丁 | 查看 | 原始文档 | blame | 历史
src/static/images/icon/xietongshenpi@2x.png 补丁 | 查看 | 原始文档 | blame | 历史
src/api/personnelManagement/employeeRecord.js
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,18 @@
import request from '@/utils/request'
// æŸ¥è¯¢åœ¨èŒå‘˜å·¥å°è´¦
export function staffOnJobListPage(query) {
    return request({
        url: '/staff/staffOnJob/listPage',
        method: 'get',
        params: query,
    })
}
// æŸ¥è¯¢å‘˜å·¥å…¥èŒä¿¡æ¯
export function staffOnJobInfo(query) {
    return request({
        url: '/staff/staffOnJob/staffNo',
        method: 'get',
        params: query,
    })
}
src/api/personnelManagement/onboarding.js
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,49 @@
import request from "@/utils/request";
// æŸ¥è¯¢äººå‘˜å…¥èŒåˆ—表
export function staffJoinListPage(query) {
  return request({
    url: "/staff/staffJoinLeaveRecord/listPage",
    method: "get",
    params: query,
  });
}
// æ–°å¢žäººå‘˜å…¥èŒ
export function staffJoinAdd(query) {
  return request({
    url: "/staff/staffJoinLeaveRecord/add",
    method: "post",
    data: query,
  });
}
// ä¿®æ”¹äººå‘˜å…¥èŒ
export function staffJoinUpdate(query) {
  return request({
    url: "/staff/staffJoinLeaveRecord/update",
    method: "post",
    data: query,
  });
}
// æŸ¥è¯¢å‘˜å·¥å…¥èŒä¿¡æ¯
export function getStaffJoinInfo(query) {
  return request({
    url: "/staff/staffJoinLeaveRecord/" + query,
    method: "get",
    data: query,
  });
}
// åˆ é™¤å‘˜å·¥
export function staffJoinDel(query) {
  return request({
    url: "/staff/staffJoinLeaveRecord/del",
    method: "delete",
    data: query,
  });
}
export function getStaffOnJob() {
  return request({
    url: "/staff/staffOnJob/list",
    method: "get",
  });
}
src/api/personnelManagement/payrollManagement.js
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,35 @@
// è–ªé…¬ç®¡ç†
import request from "@/utils/request";
// æŸ¥è¯¢åˆ—表
export function compensationListPage(query) {
  return request({
    url: "/compensationPerformance/listPage",
    method: "get",
    params: query,
  });
}
// æ–°å¢ž
export function compensationAdd(query) {
  return request({
    url: "/compensationPerformance/add",
    method: "post",
    data: query,
  });
}
// ä¿®æ”¹
export function compensationUpdate(query) {
  return request({
    url: "/compensationPerformance/update",
    method: "post",
    data: query,
  });
}
// åˆ é™¤
export function compensationDelete(query) {
  return request({
    url: "/compensationPerformance/delete",
    method: "delete",
    data: query,
  });
}
src/pages.json
@@ -327,7 +327,7 @@
          "navigationBarTitleText": "设备维修",
          "navigationStyle": "custom"
        }
    }
    },
    {
      "path": "pages/equipmentManagement/upkeep/index",
        "style": {
@@ -367,6 +367,18 @@
          }
        },
        {
          "path": "company/index",
          "style": {
            "navigationBarTitleText": "公司信息"
          }
        },
        {
          "path": "contract/index",
          "style": {
            "navigationBarTitleText": "合同信息"
          }
        },
        {
          "path": "info/edit",
          "style": {
            "navigationBarTitleText": "编辑资料"
src/pages/index.vue
@@ -18,20 +18,20 @@
            </view>
        </view>
        
        <view class="notice-section">
            <view class="notice">
                <view class="notice-content">
                    <view class="notice-left">
                        <text class="notice-status">通知</text>
                    </view>
                    <view class="notice-separator"></view>
                    <view class="notice-right">
                        <text class="notice-label">{{currentStatus}}</text>
                        <text class="notice-text">当日销售设备数:<text class="notice-number">{{number}}<text class="notice-unit">个</text></text></text>
                    </view>
                </view>
            </view>
        </view>
<!--        <view class="notice-section">-->
<!--            <view class="notice">-->
<!--                <view class="notice-content">-->
<!--                    <view class="notice-left">-->
<!--                        <text class="notice-status">通知</text>-->
<!--                    </view>-->
<!--                    <view class="notice-separator"></view>-->
<!--                    <view class="notice-right">-->
<!--                        <text class="notice-label">{{currentStatus}}</text>-->
<!--                        <text class="notice-text">当日销售设备数:<text class="notice-number">{{number}}<text class="notice-unit">个</text></text></text>-->
<!--                    </view>-->
<!--                </view>-->
<!--            </view>-->
<!--        </view>-->
        
        <!-- è¥é”€ç®¡ç†æ¨¡å— -->
        <view class="common-module marketing-module">
@@ -53,7 +53,7 @@
                        <view class="icon-container" :style="{ background: item.bgColor }">
                            <up-icon
                                :name="item.icon"
                                :size="26"
                                :size="58"
                                color="#ffffff"
                            ></up-icon>
                        </view>
@@ -83,7 +83,7 @@
                        <view class="icon-container" :style="{ background: item.bgColor }">
                            <up-icon
                                :name="item.icon"
                                :size="26"
                                :size="58"
                                color="#ffffff"
                            ></up-icon>
                        </view>
@@ -113,7 +113,7 @@
                        <view class="icon-container" :style="{ background: item.bgColor }">
                            <up-icon
                                :name="item.icon"
                                :size="26"
                                :size="58"
                                color="#ffffff"
                            ></up-icon>
                        </view>
@@ -143,7 +143,7 @@
                        <view class="icon-container" :style="{ background: item.bgColor }">
                            <up-icon
                                :name="item.icon"
                                :size="26"
                                :size="58"
                                color="#ffffff"
                            ></up-icon>
                        </view>
@@ -188,101 +188,84 @@
// è¥é”€ç®¡ç†åŠŸèƒ½æ•°æ®
const marketingItems = reactive([
    {
        icon: 'account',
        icon: '/static/images/icon/xiaoshoutaizhang@2x.png',
        label: '销售台账',
        bgColor: '#2979ff'
    },
    {
        icon: 'home',
        icon: '/static/images/icon/kaipiaodengji@2x.png',
        label: '开票登记',
        bgColor: '#1976d2'
    },
    {
        icon: 'file-text',
        icon: '/static/images/icon/kaipiaotaizhang@2x.png',
        label: '开票台账',
        bgColor: '#42a5f5'
    },
    {
        icon: 'shopping-cart',
        icon: '/static/images/icon/huikuandengji@2x.png',
        label: '回款登记',
        bgColor: '#64b5f6'
    },
    {
        icon: 'chat',
        icon: '/static/images/icon/huikuanliushui@2x.png',
        label: '回款流水',
        bgColor: '#90caf9'
    },
    {
        icon: 'chat',
        icon: '/static/images/icon/kehuwanglai@2x.png',
        label: '客户往来',
        bgColor: '#90caf9'
    }
]);
// é‡‡è´­ç®¡ç†åŠŸèƒ½æ•°æ®
const purchaseItems = reactive([
    {
        icon: 'order',
        icon: '/static/images/icon/caigoutaizhang@2x.png',
        label: '采购台账',
        bgColor: '#bbdefb'
    },
    {
        icon: 'truck',
        icon: '/static/images/icon/laipiaodengji@2x.png',
        label: '来票登记',
        bgColor: '#e3f2fd'
    },
    {
        icon: 'box',
        icon: '/static/images/icon/laipiaotaizhang@2x.png',
        label: '来票台账',
        bgColor: '#f3e5f5'
    },
    {
        icon: 'chart-line',
        icon: '/static/images/icon/fukuanjingji@2x.png',
        label: '付款登记',
        bgColor: '#e8eaf6'
    },
    {
        icon: 'settings',
        icon: '/static/images/icon/fukuanliushui@2x.png',
        label: '付款流水',
        bgColor: '#f1f8e9'
    },
    {
        icon: 'settings',
        icon: '/static/images/icon/gongyingshangwanglai@2x.png',
        label: '供应商往来',
        bgColor: '#f1f8e9'
    },
]);
// ååŒåŠžå…¬åŠŸèƒ½æ•°æ®
const collaborationItems = reactive([
    {
        icon: 'checkmark-circle',
        icon: '/static/images/icon/xietongshenpi@2x.png',
        label: '协同审批',
        bgColor: '#4caf50'
    },
    {
        icon: 'map-pin',
        icon: '/static/images/icon/kehubaifang@2x.png',
        label: '客户拜访',
        bgColor: '#ff9800'
    }
]);
// è®¾å¤‡ç®¡ç†åŠŸèƒ½æ•°æ®
const equipmentItems = reactive([
    {
        icon: 'list',
        icon: '/static/images/icon/shebeitaizhang@2x.png',
        label: '设备台账',
        bgColor: '#9c27b0'
    },
    {
        icon: 'wrench',
        icon: '/static/images/icon/shbeibaoxiu@2x.png',
        label: '设备报修',
        bgColor: '#f44336'
    },
    {
        icon: 'shield-check',
        icon: '/static/images/icon/shbeibaoyang@2x.png',
        label: '设备保养',
        bgColor: '#00bcd4'
    }
]);
src/pages/mine.vue
@@ -22,9 +22,9 @@
          </view>
        </view>
      </view>
      <view class="right" @click="handleToInfo">
        <text class="link">个人信息</text>
        <view class="iconfont icon-right"></view>
      <view class="right" @click="handleLogout">
        <text class="link">退出登录</text>
<!--        <view class="iconfont icon-right"></view>-->
      </view>
    </view>
@@ -32,21 +32,27 @@
    <view class="menu-card">
      <view class="menu-item" @click="handleUnitManage">
        <uni-icons type="home" size="22" color="#3C96F3" />
        <text class="label">单位管理</text>
        <text class="label">单位信息</text>
        <uni-icons class="arrow" type="right" size="18" color="#c0c4cc" />
      </view>
      <view class="menu-item" @click="handleUserManage">
      <view class="menu-item" @click="handleToInfo">
        <uni-icons type="person" size="22" color="#3C96F3" />
        <text class="label">用户管理</text>
        <text class="label">用户信息</text>
        <uni-icons class="arrow" type="right" size="18" color="#c0c4cc" />
      </view>
      <view class="menu-item" @click="handleContractManage">
        <uni-icons type="compose" size="22" color="#3C96F3" />
        <text class="label">合同管理</text>
        <text class="label">合同信息</text>
        <uni-icons class="arrow" type="right" size="18" color="#c0c4cc" />
      </view>
    </view>
        <view>
            <uni-popup ref="popup" type="dialog">
                <uni-popup-dialog type="info" cancelText="关闭" confirmText="退出" title="通知" content="确定注销并退出系统吗"
                                                    @confirm="dialogConfirm">
                </uni-popup-dialog>
            </uni-popup>
        </view>
    <!-- åº•部两个信息卡片 -->
    <!-- <view class="info-cards">
      <view class="info-card">
@@ -89,7 +95,6 @@
uni.$on('refresh', () => {
  avatar.value = userStore.avatar;
})
function handleToInfo() {
  uni.navigateTo({
    url: '/pages_mine/pages/info/index'
@@ -120,19 +125,23 @@
// çŽ°æœ‰è·³è½¬æ–¹æ³•ä¿ç•™ï¼šhandleToInfo / handleToLogin / handleToAvatar / handleHelp ç­‰
function handleUnitManage() {
  // TODO: æ›¿æ¢ä¸ºçœŸå®žè·¯ç”±
  uni.showToast({ title: '模块建设中~', icon: 'none' });
    uni.navigateTo({
        url: '/pages_mine/pages/company/index'
    });
}
function handleUserManage() {
  // TODO: æ›¿æ¢ä¸ºçœŸå®žè·¯ç”±
  uni.showToast({ title: '模块建设中~', icon: 'none' });
}
function handleContractManage() {
  // TODO: æ›¿æ¢ä¸ºçœŸå®žè·¯ç”±
  uni.showToast({ title: '模块建设中~', icon: 'none' });
    uni.navigateTo({
        url: '/pages_mine/pages/contract/index'
    });
}
onMounted(() => {
    // è®¾ç½®ç”¨æˆ·ä¿¡æ¯
    // è®¾ç½®ç”¨æˆ·ä¿¡æ¯
    userStore.getInfo()
});
</script>
src/pages_mine/pages/company/index.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,83 @@
<template>
  <view class="container">
    <view class="card">
      <van-cell-group>
        <van-cell icon="cluster-o" title="所属公司" :value="userStore.currentFactoryName" />
        <van-cell icon="manager-o" title="岗位" :value="postGroup" />
      </van-cell-group>
    </view>
    <!-- <u-button @click="register()">绑定微信</u-button> -->
  </view>
</template>
<script setup>
import { getUserProfile } from "@/api/system/user"
import { ref } from "vue";
import modal from "@/plugins/modal"
const user = ref({})
const roleGroup = ref("")
const postGroup = ref("")
function getUser() {
  getUserProfile().then(response => {
    user.value = response.data
    roleGroup.value = response.roleGroup
    postGroup.value = response.postGroup
  })
}
getUser()
import { wxRegister } from "@/api/oauth"
import { getWxCode } from "@/utils/geek"
import useUserStore from "@/store/modules/user";
const userStore = useUserStore()
function register(){
  modal.loading('绑定微信中...')
  getWxCode().then(res=>{
    wxRegister('miniapp',res).then(res=>{
      modal.closeLoading()
    })
  })
}
</script>
<style lang="scss">
/* èƒŒæ™¯æ›´æŸ”和,卡片更突出 */
page {
  background-color: #f5f7fb;
}
.container {
  min-height: 100vh;
  padding: 0; /* 24rpx -> 0.75rem */
  box-sizing: border-box;
}
/* åˆ—表卡片容器 */
.card {
  background-color: #ffffff;
  box-shadow: 0 0.375rem 1rem rgba(0, 0, 0, 0.06); /* 0 12rpx 32rpx -> 0 0.375rem 1rem */
  overflow: hidden;
}
/* é€‚配 Vant Cell */
:deep(.van-cell) {
  min-height: 3rem; /* 92rpx -> 2.875rem */
    align-items: center;
}
:deep(.van-cell__title) {
  font-weight: 500;
  color: #1f2937; /* æ·±ç° */
}
:deep(.van-cell__value) {
  color: #6b7280; /* æ¬¡è¦ç° */
}
/* ç§»é™¤ä¸å†ä½¿ç”¨çš„ .cell-icon æ ·å¼ */
</style>
src/pages_mine/pages/contract/index.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,97 @@
<template>
  <view class="container">
    <view class="card">
      <van-cell-group>
        <van-cell icon="underway-o" title="合同开始时间" :value="user.contractStartTime" />
        <van-cell icon="underway-o" title="合同结束时间" :value="user.contractEndTime" />
        <van-cell icon="medal-o" title="岗位" :value="user.postJob" />
        <van-cell icon="label-o" title="第一学历" :value="user.firstStudy" />
      </van-cell-group>
    </view>
    <!-- <u-button @click="register()">绑定微信</u-button> -->
  </view>
</template>
<script setup>
import { ref } from "vue";
import modal from "@/plugins/modal"
const user = ref({
    contractStartTime: '',
    contractEndTime: '',
    postJob: '',
    firstStudy: '',
})
const roleGroup = ref("")
const postGroup = ref("")
import { wxRegister } from "@/api/oauth"
import { getWxCode } from "@/utils/geek"
import useUserStore from "@/store/modules/user";
import {staffJoinListPage} from "@/api/personnelManagement/onboarding";
const userStore = useUserStore()
function getUser() {
    const params = {
        staffState: 1,
        current: 1,
        size: 1,
        staffName: userStore.nickName
    }
    staffJoinListPage({...params}).then(response => {
        user.value = {...response.data.records[0]}
        roleGroup.value = response.roleGroup
        postGroup.value = response.postGroup
    })
}
getUser()
function register(){
  modal.loading('绑定微信中...')
  getWxCode().then(res=>{
    wxRegister('miniapp',res).then(res=>{
      modal.closeLoading()
    })
  })
}
</script>
<style lang="scss">
/* èƒŒæ™¯æ›´æŸ”和,卡片更突出 */
page {
  background-color: #f5f7fb;
}
.container {
  min-height: 100vh;
  padding: 0; /* 24rpx -> 0.75rem */
  box-sizing: border-box;
}
/* åˆ—表卡片容器 */
.card {
  background-color: #ffffff;
  box-shadow: 0 0.375rem 1rem rgba(0, 0, 0, 0.06); /* 0 12rpx 32rpx -> 0 0.375rem 1rem */
  overflow: hidden;
}
/* é€‚配 Vant Cell */
:deep(.van-cell) {
  min-height: 3rem; /* 92rpx -> 2.875rem */
    align-items: center;
}
:deep(.van-cell__title) {
  font-weight: 500;
  color: #1f2937; /* æ·±ç° */
}
:deep(.van-cell__value) {
  color: #6b7280; /* æ¬¡è¦ç° */
}
/* ç§»é™¤ä¸å†ä½¿ç”¨çš„ .cell-icon æ ·å¼ */
</style>
src/pages_mine/pages/info/index.vue
@@ -1,7 +1,7 @@
<template>
  <view class="container">
    <view class="card">
      <van-cell-group inset>
      <van-cell-group>
        <van-cell icon="user" title="昵称" :value="user.nickName" />
        <van-cell icon="phone" title="手机号码" :value="user.phonenumber" />
        <van-cell icon="invitation" title="邮箱" :value="user.email" />
@@ -54,21 +54,21 @@
.container {
  min-height: 100vh;
  padding: 0.75rem; /* 24rpx -> 0.75rem */
  padding: 0; /* 24rpx -> 0.75rem */
  box-sizing: border-box;
}
/* åˆ—表卡片容器 */
.card {
  background-color: #ffffff;
  border-radius: 0.625rem; /* 20rpx -> 0.625rem */
  box-shadow: 0 0.375rem 1rem rgba(0, 0, 0, 0.06); /* 0 12rpx 32rpx -> 0 0.375rem 1rem */
  overflow: hidden;
}
/* é€‚配 Vant Cell */
:deep(.van-cell) {
  min-height: 2.875rem; /* 92rpx -> 2.875rem */
  min-height: 3rem; /* 92rpx -> 2.875rem */
    align-items: center;
}
:deep(.van-cell__title) {
src/static/images/icon/caigoutaizhang@2x.png
src/static/images/icon/fukuanjingji@2x.png
src/static/images/icon/fukuanliushui@2x.png
src/static/images/icon/gongyingshangwanglai@2x.png
src/static/images/icon/huikuandengji@2x.png
src/static/images/icon/huikuanliushui@2x.png
src/static/images/icon/kaipiaodengji@2x.png
src/static/images/icon/kaipiaotaizhang@2x.png
src/static/images/icon/kehubaifang@2x.png
src/static/images/icon/kehuwanglai@2x.png
src/static/images/icon/laipiaodengji@2x.png
src/static/images/icon/laipiaotaizhang@2x.png
src/static/images/icon/shbeibaoxiu@2x.png
src/static/images/icon/shbeibaoyang@2x.png
src/static/images/icon/shebeitaizhang@2x.png
src/static/images/icon/xiaoshoutaizhang@2x.png
src/static/images/icon/xietongshenpi@2x.png