maven
2025-10-20 4243f25a01f4e79b3f83218dfcbe94d9befee43d
Merge remote-tracking branch 'origin/dev_7004' into dev_7004
已修改3个文件
93 ■■■■■ 文件已修改
src/views/personnelManagement/onboarding/components/formDia.vue 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/personnelManagement/onboarding/index.vue 66 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/salesManagement/salesLedger/index.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/personnelManagement/onboarding/components/formDia.vue
@@ -124,6 +124,26 @@
            </el-form-item>
          </el-col>
        </el-row>
        <el-row :gutter="30">
          <el-col :span="12">
            <el-form-item label="试用期(月):" prop="probationPeriod">
              <el-input-number v-model="form.probationPeriod" :precision="0" :step="1" min="0" style="width: 100%"/>
            </el-form-item>
          </el-col>
          <!-- <el-col :span="12">
            <el-form-item label="入职日期:" prop="entryDate">
              <el-date-picker
                  v-model="form.entryDate"
                  type="date"
                  placeholder="请选择日期"
                  value-format="YYYY-MM-DD"
                  format="YYYY-MM-DD"
                  clearable
                  style="width: 100%"
              />
            </el-form-item>
          </el-col> -->
        </el-row>
      </el-form>
      <template #footer>
        <div class="dialog-footer">
@@ -136,7 +156,7 @@
</template>
<script setup>
import {ref} from "vue";
import {ref, reactive, toRefs} from "vue";
import {getStaffJoinInfo, staffJoinAdd, staffJoinUpdate} from "@/api/personnelManagement/onboarding.js";
const { proxy } = getCurrentInstance()
const emit = defineEmits(['close'])
@@ -162,6 +182,7 @@
    contractStartTime: "",
    contractEndTime: "",
    staffState: "",
    probationPeriod: 3, // 默认试用期3个月
  },
  rules: {
    staffNo: [{ required: true, message: "请输入", trigger: "blur" },],
src/views/personnelManagement/onboarding/index.vue
@@ -151,8 +151,39 @@
    width:150
  },
  {
    label: "合同年限",
    label: "试用期(月)",
    prop: "probationPeriod",
    width: 120,
  },
  // {
  //   label: "转正日期",
  //   prop: "probationEndDate",
  //   width: 120,
  //   formatData: (row) => {
  //     // 修改为使用合同开始日期计算转正日期
  //     if (row.contractStartTime && row.probationPeriod) {
  //       // 计算转正日期(合同开始日期加上试用期月数)
  //       return dayjs(row.contractStartTime).add(row.probationPeriod, 'month').format('YYYY-MM-DD');
  //     }
  //     return '';
  //   },
  //   formatType: (row) => {
  //     // 修改为使用合同开始日期检查是否临近转正(7天内)
  //     if (row.contractStartTime && row.probationPeriod) {
  //       const probationEndDate = dayjs(row.contractStartTime).add(row.probationPeriod, 'month');
  //       const daysUntilProbationEnd = probationEndDate.diff(dayjs(), 'day');
  //       if (daysUntilProbationEnd >= 0 && daysUntilProbationEnd <= 7) {
  //         return 'warning'; // 使用警告样式标记临近转正的员工
  //       }
  //     }
  //     return '';
  //   }
  // },
  {
    label: "合同年限(年)",
    prop: "contractTerm",
    width: 120,
  },
  {
    label: "合同开始日期",
@@ -222,10 +253,43 @@
    tableLoading.value = false;
    tableData.value = res.data.records
    page.total = res.data.total;
    // 检查是否有临近转正的员工并提醒
    checkProbationEnding(tableData.value);
  }).catch(err => {
    tableLoading.value = false;
  })
};
// 检查临近转正的员工并提醒
const checkProbationEnding = (data) => {
  const probationEndingSoon = [];
  data.forEach(item => {
    // 修改为使用合同开始日期检查
    if (item.contractStartTime && item.probationPeriod) {
      const probationEndDate = dayjs(item.contractStartTime).add(item.probationPeriod, 'month');
      const daysUntilProbationEnd = probationEndDate.diff(dayjs(), 'day');
      if (daysUntilProbationEnd >= 0 && daysUntilProbationEnd <= 7) {
        probationEndingSoon.push({
          staffName: item.staffName,
          probationEndDate: probationEndDate.format('YYYY-MM-DD'),
          daysLeft: daysUntilProbationEnd
        });
      }
    }
  });
  if (probationEndingSoon.length > 0) {
    let message = '以下员工将在7天内转正:\n';
    probationEndingSoon.forEach(item => {
      message += `${item.staffName}(${item.probationEndDate},还有${item.daysLeft}天)\n`;
    });
    // 显示提醒消息
    proxy.$modal.msgInfo(message);
  }
};
// 表格选择数据
const handleSelectionChange = (selection) => {
  selectedRows.value = selection;
src/views/salesManagement/salesLedger/index.vue
@@ -564,6 +564,10 @@
    "contractAmount",
    "taxInclusiveTotalPrice",
    "taxExclusiveTotalPrice",
        'invoiceTotal',
        'noInvoiceAmountTotal',
        'receiptPaymentAmountTotal',
        'noReceiptAmount',
  ]);
};
// 子表合计方法