zhengyiming
2 天以前 8328df0f84dc6e24896d788166a67263ff029ae5
Merge branch 'dev-1.2.0.1' of http://120.26.58.240:8888/r/flexJobMiniApp into dev-1.2.0.1
8个文件已添加
7个文件已修改
481 ■■■■ 已修改文件
apps/bMiniApp/project.config.json 116 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/bMiniApp/project.private.config.json 84 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/bMiniApp/src/app.config.ts 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/bMiniApp/src/assets/workbenches/icon-payroll.png 补丁 | 查看 | 原始文档 | blame | 历史
apps/bMiniApp/src/constants/router.ts 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/bMiniApp/src/pages/workbenches/InnerPage.vue 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/bMiniApp/src/subpackages/payrollManage/components/PayrollManageDetailCard.vue 74 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/bMiniApp/src/subpackages/payrollManage/payrollManage/InnerPage.vue 81 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/bMiniApp/src/subpackages/payrollManage/payrollManage/payrollManage.config.ts 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/bMiniApp/src/subpackages/payrollManage/payrollManage/payrollManage.vue 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/bMiniApp/src/subpackages/payrollManage/payrollManageDetail/InnerPage.vue 68 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/bMiniApp/src/subpackages/payrollManage/payrollManageDetail/payrollManageDetail.config.ts 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/bMiniApp/src/subpackages/payrollManage/payrollManageDetail/payrollManageDetail.vue 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/cMiniApp/project.config.json 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/cMiniApp/project.private.config.json 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/bMiniApp/project.config.json
@@ -1,61 +1,61 @@
{
  "miniprogramRoot": "dist/",
  "description": "",
  "setting": {
    "urlCheck": false,
    "es6": true,
    "enhance": true,
    "postcss": false,
    "preloadBackgroundData": false,
    "minified": false,
    "newFeature": false,
    "coverView": true,
    "nodeModules": false,
    "autoAudits": false,
    "showShadowRootInWxmlPanel": true,
    "scopeDataCheck": false,
    "uglifyFileName": false,
    "checkInvalidKey": true,
    "checkSiteMap": false,
    "uploadWithSourceMap": true,
    "compileHotReLoad": false,
    "lazyloadPlaceholderEnable": false,
    "useMultiFrameRuntime": true,
    "babelSetting": {
      "ignore": [],
      "disablePlugins": [],
      "outputPath": ""
    "miniprogramRoot": "dist/",
    "description": "",
    "setting": {
        "urlCheck": false,
        "es6": true,
        "enhance": true,
        "postcss": false,
        "preloadBackgroundData": false,
        "minified": false,
        "newFeature": false,
        "coverView": true,
        "nodeModules": false,
        "autoAudits": false,
        "showShadowRootInWxmlPanel": true,
        "scopeDataCheck": false,
        "uglifyFileName": false,
        "checkInvalidKey": true,
        "checkSiteMap": false,
        "uploadWithSourceMap": true,
        "compileHotReLoad": false,
        "lazyloadPlaceholderEnable": false,
        "useMultiFrameRuntime": true,
        "babelSetting": {
            "ignore": [],
            "disablePlugins": [],
            "outputPath": ""
        },
        "enableEngineNative": false,
        "useIsolateContext": true,
        "userConfirmedBundleSwitch": false,
        "packNpmManually": false,
        "packNpmRelationList": [],
        "minifyWXSS": false,
        "disableUseStrict": false,
        "minifyWXML": false,
        "showES6CompileOption": false,
        "useCompilerPlugins": false,
        "ignoreUploadUnusedFiles": true,
        "condition": false,
        "compileWorklet": false,
        "localPlugins": false,
        "swc": false,
        "disableSWC": true
    },
    "enableEngineNative": false,
    "useIsolateContext": true,
    "userConfirmedBundleSwitch": false,
    "packNpmManually": false,
    "packNpmRelationList": [],
    "minifyWXSS": false,
    "disableUseStrict": false,
    "minifyWXML": false,
    "showES6CompileOption": false,
    "useCompilerPlugins": false,
    "ignoreUploadUnusedFiles": true,
    "condition": false,
    "compileWorklet": false,
    "localPlugins": false,
    "swc": false,
    "disableSWC": true
  },
  "compileType": "miniprogram",
  "editorSetting": {
    "tabIndent": "insertSpaces",
    "tabSize": 4
  },
  "srcMiniprogramRoot": "dist/",
  "condition": {},
  "libVersion": "3.9.3",
  "packOptions": {
    "ignore": [],
    "include": []
  },
  "appid": "wx3669dd12a0915f7d",
  "projectname": "bMiniApp",
  "simulatorPluginLibVersion": {}
    "compileType": "miniprogram",
    "editorSetting": {
        "tabIndent": "insertSpaces",
        "tabSize": 4
    },
    "srcMiniprogramRoot": "dist/",
    "condition": {},
    "libVersion": "3.9.3",
    "packOptions": {
        "ignore": [],
        "include": []
    },
    "appid": "wx3669dd12a0915f7d",
    "projectname": "bMiniApp",
    "simulatorPluginLibVersion": {}
}
apps/bMiniApp/project.private.config.json
@@ -1,44 +1,44 @@
{
    "description": "项目私有配置文件。此文件中的内容将覆盖 project.config.json 中的相同字段。项目的改动优先同步到此文件中。详见文档:https://developers.weixin.qq.com/miniprogram/dev/devtools/projectconfig.html",
    "projectname": "bMiniApp",
    "setting": {
        "compileHotReLoad": true,
        "bigPackageSizeSupport": true,
        "urlCheck": false,
        "coverView": true,
        "lazyloadPlaceholderEnable": false,
        "skylineRenderEnable": false,
        "preloadBackgroundData": false,
        "autoAudits": false,
        "useApiHook": true,
        "useApiHostProcess": true,
        "showShadowRootInWxmlPanel": true,
        "useStaticServer": false,
        "useLanDebug": false,
        "showES6CompileOption": false,
        "checkInvalidKey": true,
        "ignoreDevUnusedFiles": true,
        "useIsolateContext": true
    },
    "condition": {
        "miniprogram": {
            "list": [
                {
                    "name": "验收管理",
                    "pathName": "subpackages/task/taskCheck/taskCheck",
                    "query": "",
                    "scene": null,
                    "launchMode": "default"
                },
                {
                    "name": "验收详情",
                    "pathName": "subpackages/task/taskCheckDetail/taskCheckDetail",
                    "query": "id=927b9898-1e9f-4aec-99aa-08ddf4e125c9&date=2025-10-19&checkReceiveStatus=10",
                    "launchMode": "default",
                    "scene": null
                }
            ]
  "description": "项目私有配置文件。此文件中的内容将覆盖 project.config.json 中的相同字段。项目的改动优先同步到此文件中。详见文档:https://developers.weixin.qq.com/miniprogram/dev/devtools/projectconfig.html",
  "projectname": "bMiniApp",
  "setting": {
    "compileHotReLoad": true,
    "bigPackageSizeSupport": true,
    "urlCheck": false,
    "coverView": true,
    "lazyloadPlaceholderEnable": false,
    "skylineRenderEnable": false,
    "preloadBackgroundData": false,
    "autoAudits": false,
    "useApiHook": true,
    "useApiHostProcess": true,
    "showShadowRootInWxmlPanel": true,
    "useStaticServer": false,
    "useLanDebug": false,
    "showES6CompileOption": false,
    "checkInvalidKey": true,
    "ignoreDevUnusedFiles": true,
    "useIsolateContext": true
  },
  "condition": {
    "miniprogram": {
      "list": [
        {
          "name": "验收管理",
          "pathName": "subpackages/task/taskCheck/taskCheck",
          "query": "",
          "scene": null,
          "launchMode": "default"
        },
        {
          "name": "验收详情",
          "pathName": "subpackages/task/taskCheckDetail/taskCheckDetail",
          "query": "id=927b9898-1e9f-4aec-99aa-08ddf4e125c9&date=2025-10-19&checkReceiveStatus=10",
          "launchMode": "default",
          "scene": null
        }
    },
    "libVersion": "3.9.3"
}
      ]
    }
  },
  "libVersion": "3.9.3"
}
apps/bMiniApp/src/app.config.ts
@@ -121,6 +121,10 @@
      ],
    },
    {
      root: 'subpackages/payrollManage',
      pages: ['payrollManage/payrollManage', 'payrollManageDetail/payrollManageDetail'],
    },
    {
      root: 'subpackages/extraPage',
      pages: ['extraPage/extraPage'],
    },
apps/bMiniApp/src/assets/workbenches/icon-payroll.png
apps/bMiniApp/src/constants/router.ts
@@ -24,6 +24,9 @@
  // cooperation = '/subpackages/setting/cooperation/cooperation',
  // faq = '/subpackages/setting/faq/faq',
  payrollManage = '/subpackages/payrollManage/payrollManage/payrollManage',
  payrollManageDetail = '/subpackages/payrollManage/payrollManageDetail/payrollManageDetail',
  authenticationHome = '/subpackages/authentication/authenticationHome/authenticationHome',
  authenticationResult = '/subpackages/authentication/authenticationResult/authenticationResult',
  authenticationFaRen = '/subpackages/authentication/authenticationFaRen/authenticationFaRen',
apps/bMiniApp/src/pages/workbenches/InnerPage.vue
@@ -36,7 +36,11 @@
      </CellChunk>
      <CellChunk title="发薪">
        <div class="workbenches-cell-list">
          <TaskDetailWelfareItem :icon="IconPublishTask" text="发薪管理" @click="goPublishTask" />
          <TaskDetailWelfareItem
            :icon="IconPayrollManage"
            text="发薪管理"
            @click="goPage(RouterPath.payrollManage)"
          />
        </div>
      </CellChunk>
    </Cell>
@@ -52,6 +56,7 @@
import IconPersonManage from '@/assets/workbenches/icon-person-manage.png';
import IconPublishTask from '@/assets/workbenches/icon-publish-task.png';
import IconTaskManage from '@/assets/workbenches/icon-task-manage.png';
import IconPayrollManage from '@/assets/workbenches/icon-payroll.png';
import { useAccessLogin } from '@/hooks';
defineOptions({
apps/bMiniApp/src/subpackages/payrollManage/components/PayrollManageDetailCard.vue
New file
@@ -0,0 +1,74 @@
<template>
  <div class="payroll-manage-detail-card-wrapper">
    <FlexJobTopView :avatar="avatar" :name="name" :gender="gender" :isReal="isReal">
      <template #detail>
        <div class="payroll-manage-detail-card-container">
          <div class="payroll-manage-detail-card-item">
            <div class="payroll-manage-detail-card-item-label">工时:</div>
            <div class="payroll-manage-detail-card-item-text">{{ contactPhoneNumber }}</div>
          </div>
          <div class="payroll-manage-detail-card-item">
            <div class="payroll-manage-detail-card-item-label">结算金额:</div>
            <div class="payroll-manage-detail-card-item-text">{{ contactPhoneNumber }}</div>
          </div>
          <slot name="actions"></slot>
        </div>
      </template>
    </FlexJobTopView>
  </div>
</template>
<script setup lang="ts">
import { FlexJobTopView } from '@12333/components';
import { EnumUserGender } from '@12333/constants';
defineOptions({
  name: 'PayrollManageDetailCard',
});
type Props = {
  avatar?: string;
  name?: string;
  gender?: EnumUserGender;
  isReal?: boolean;
  contactPhoneNumber?: string;
};
const props = withDefaults(defineProps<Props>(), {});
</script>
<style lang="scss">
@import '@/styles/common.scss';
.payroll-manage-detail-card-wrapper {
  background: #ffffff;
  border-radius: 12px;
  padding: 40px;
  padding-right: 26px;
  margin-bottom: 24px;
  .payroll-manage-detail-card-container {
    display: flex;
    flex-direction: column;
    margin-top: 14px;
    .payroll-manage-detail-card-item {
      display: flex;
      align-items: center;
      font-weight: 400;
      font-size: 24px;
      line-height: 32px;
      flex: 1;
      min-width: 0;
      .payroll-manage-detail-card-item-label {
        color: boleGetCssVar('text-color', 'regular');
      }
      .payroll-manage-detail-card-item-text {
        color: boleGetCssVar('text-color', 'secondary');
      }
    }
  }
}
</style>
apps/bMiniApp/src/subpackages/payrollManage/payrollManage/InnerPage.vue
New file
@@ -0,0 +1,81 @@
<template>
  <ProTabs
    v-model="queryMenuState.status"
    name="task-tab"
    :showPaneContent="false"
    class="task-tabs"
    isTransparent
    title-gutter="8"
    title-scroll
  >
    <ProTabPane :title="`待审核(${waitAssignCount})`" :pane-key="EnumTaskStatus.Wait"></ProTabPane>
    <ProTabPane
      :title="`已审核(${completedAssignCount})`"
      :pane-key="EnumTaskStatus.Complete"
    ></ProTabPane>
    <ProTabPane
      :title="`已发放(${completedAssignCount})`"
      :pane-key="EnumTaskStatus.Complete"
    ></ProTabPane>
  </ProTabs>
  <InfiniteLoading
    scrollViewClassName="common-infinite-scroll-list"
    v-bind="infiniteLoadingProps"
    :key="queryMenuState.status"
  >
    <template #renderItem="{ item }">
      <IncomeDetailListItem
        :title="item.name"
        :funds="100"
        :item="dayjs(item.createdTime).format('YYYY-MM-DD HH:mm:ss')"
        :value="`钱包余额:${toThousand(item.serviceFee)}`"
        @click="goPayrollManageDetail(item)"
      >
      </IncomeDetailListItem>
    </template>
  </InfiniteLoading>
</template>
<script setup lang="ts">
import { ProTabs, ProTabPane, IncomeDetailListItem } from '@12333/components';
import Taro from '@tarojs/taro';
import dayjs from 'dayjs';
import { toThousand } from '@12333/utils';
import { EnumTaskStatus } from '@12333/constants';
import { useTaskList } from '@12333/hooks';
defineOptions({
  name: 'InnerPage',
});
const { queryMenuState, infiniteLoadingProps } = useTaskList({
  defaultQueryMenuState: {
    status: EnumTaskStatus.Wait,
  },
});
const completedAssignCount = computed(() => {
  return infiniteLoadingProps.value?.listData?.pages?.[0]?.objectData?.completedAssignCount ?? 0;
});
const waitAssignCount = computed(() => {
  return infiniteLoadingProps.value?.listData?.pages?.[0]?.objectData?.waitAssignCount ?? 0;
});
function goPayrollManageDetail(item: API.GetTaskInfosQueryResultItem) {
  Taro.navigateTo({
    url: `${RouterPath.payrollManageDetail}?id=${
      item.id
    }&date=${'Fri Oct 17 2025 18:49:01 GMT+0800'}`,
  });
}
</script>
<style lang="scss">
@import '@/styles/common.scss';
.taskManage-page-wrapper {
  .dark-btn {
    margin-left: 12px;
  }
}
</style>
apps/bMiniApp/src/subpackages/payrollManage/payrollManage/payrollManage.config.ts
New file
@@ -0,0 +1,3 @@
export default definePageConfig({
  disableScroll: true,
});
apps/bMiniApp/src/subpackages/payrollManage/payrollManage/payrollManage.vue
New file
@@ -0,0 +1,13 @@
<template>
  <PageLayoutWithBg class="payrollManage-page-wrapper" title="发薪管理">
    <InnerPage />
  </PageLayoutWithBg>
</template>
<script setup lang="ts">
import InnerPage from './InnerPage.vue';
defineOptions({
  name: 'payrollManage',
});
</script>
apps/bMiniApp/src/subpackages/payrollManage/payrollManageDetail/InnerPage.vue
New file
@@ -0,0 +1,68 @@
<template>
  <LoadingLayout>
    <ContentView>
      <div class="payroll-manage-detail-top">
        <div class="payroll-manage-detail-top-title"></div>
        <div class="payroll-manage-detail-top-content">
          <div class="payroll-manage-detail-top-content-item"></div>
        </div>
      </div>
      <ChunkTitle title="人员列表" />
    </ContentView>
    <InfiniteLoading
      scrollViewClassName="common-infinite-scroll-list"
      v-bind="infiniteLoadingProps"
    >
      <template #renderItem="{ item }">
        <PayrollManageDetailCard
          :avatar="setOSSLink(item.avatar)"
          :name="item.name"
          :gender="item.gender"
          :isReal="item.isReal"
          :contactPhoneNumber="item.contactPhoneNumber"
          :checkReceiveStatus="item.checkReceiveStatus"
        />
      </template>
    </InfiniteLoading>
  </LoadingLayout>
</template>
<script setup lang="ts">
import Taro from '@tarojs/taro';
import * as taskCheckReceiveServices from '@12333/services/apiV2/taskCheckReceive';
import { useCheckReceiveTaskUserSubmits, useInfiniteLoading } from '@12333/hooks';
import PayrollManageDetailCard from '../components/PayrollManageDetailCard.vue';
import { EnumTaskCheckReceiveStatus } from '@12333/constants';
import { setOSSLink } from '@12333/utils';
import dayjs from 'dayjs';
defineOptions({
  name: 'InnerPage',
});
const router = Taro.useRouter();
const id = router.params?.id ?? '';
const date = router.params?.date ?? '';
const checkReceiveStatus = Number(router.params?.checkReceiveStatus);
const { infiniteLoadingProps } = useInfiniteLoading(
  ({ pageParam }) => {
    let params: API.GetCheckReceiveTaskQuery = {
      pageModel: {
        rows: 20,
        page: pageParam,
      },
      taskInfoId: id,
      date: dayjs(date).format('YYYY-MM-DD'),
      checkReceiveStatus: 30,
    };
    return taskCheckReceiveServices.getCheckReceiveTask(params, {
      showLoading: false,
    });
  },
  {
    queryKey: ['taskCheckReceiveServices/getCheckReceiveTask'],
  }
);
</script>
apps/bMiniApp/src/subpackages/payrollManage/payrollManageDetail/payrollManageDetail.config.ts
New file
@@ -0,0 +1,3 @@
export default definePageConfig({
  disableScroll: true,
});
apps/bMiniApp/src/subpackages/payrollManage/payrollManageDetail/payrollManageDetail.vue
New file
@@ -0,0 +1,13 @@
<template>
  <PageLayoutWithBg class="payrollManageDetail-page-wrapper" title="发薪详情">
    <InnerPage />
  </PageLayoutWithBg>
</template>
<script setup lang="ts">
import InnerPage from './InnerPage.vue';
defineOptions({
  name: 'payrollManageDetail',
});
</script>
apps/cMiniApp/project.config.json
@@ -3,8 +3,8 @@
    "description": "",
    "setting": {
        "urlCheck": false,
        "es6": false,
        "enhance": false,
        "es6": true,
        "enhance": true,
        "postcss": false,
        "preloadBackgroundData": false,
        "minified": false,
@@ -56,5 +56,6 @@
        "include": []
    },
    "appid": "wxb9e0baf4f87aa0de",
    "simulatorPluginLibVersion": {}
    "simulatorPluginLibVersion": {},
    "projectname": "cMiniApp"
}
apps/cMiniApp/project.private.config.json
@@ -7,7 +7,6 @@
        "urlCheck": false,
        "coverView": true,
        "lazyloadPlaceholderEnable": false,
        "skylineRenderEnable": false,
        "preloadBackgroundData": false,
        "autoAudits": false,
        "useApiHook": true,
@@ -27,8 +26,8 @@
                    "name": "简历详细信息",
                    "pathName": "subpackages/curriculum/mineDetailedInfo/mineDetailedInfo",
                    "query": "",
                    "scene": null,
                    "launchMode": "default"
                    "launchMode": "default",
                    "scene": null
                }
            ]
        }