Просмотр исходного кода

feat(rui-du): 日报汇总增加时效填写入口

- 在日期和队伍视图中增加时效按钮
- 根据审批状态和用户权限控制按钮显示
- 支持不同日报类型跳转至对应时效填写页面
Zimo 2 недель назад
Родитель
Сommit
f5e011b03d
1 измененных файлов с 31 добавлено и 3 удалено
  1. 31 3
      pages/ruiDuReport/daily-detail.vue

+ 31 - 3
pages/ruiDuReport/daily-detail.vue

@@ -129,6 +129,14 @@
                               @click.stop="navigatorDetail(item)"
                               >查看详情</button
                             >
+                            <button
+                              v-show="item.auditStatus === 20 && rdNonProductFlag"
+                              class="action-btn fill-btn"
+                              type="primary"
+                              size="mini"
+                              @click.stop="navigatorEdit(item, 'true')"
+                              >{{ $t("operation.time") }}</button
+                            >
                           </view>
                         </view>
                       </view>
@@ -208,6 +216,14 @@
                         @click.stop="navigatorDetail(item)"
                         >查看详情</button
                       >
+                      <button
+                        v-show="item.auditStatus === 20 && rdNonProductFlag"
+                        class="action-btn fill-btn"
+                        type="primary"
+                        size="mini"
+                        @click.stop="navigatorEdit(item, 'true')"
+                        >{{ $t("operation.time") }}</button
+                      >
                     </view>
                   </view>
                   <view
@@ -304,6 +320,7 @@ import {
   getRuiduReportSummary,
   getRuiduReportTeamSummary,
 } from "@/api/ruiduReport";
+import { getLoginUserInfo } from "@/api/login";
 import { specifiedSimpleDepts } from "@/api";
 import { getDeptId } from "@/utils/auth";
 
@@ -314,6 +331,7 @@ const currentView = ref(0);
 const teams = ref([]);
 const teamLoading = ref(false);
 const years = ref([]);
+const rdNonProductFlag = ref(false);
 const timers = [];
 const filterPopup = ref(null);
 const deptOptions = ref([]);
@@ -721,14 +739,23 @@ const navigatorDetail = (item) => {
       : `/pages/ruiDu/detail?id=${item.id}`;
   uni.navigateTo({ url });
 };
-const navigatorEdit = (item) => {
+const navigatorEdit = (item, istime = "false") => {
   const url =
     item.projectId === null && item.taskId === null
-      ? `/pages/ruiDu/create?id=${item.id}&isview=detail`
-      : `/pages/ruiDu/edit?id=${item.id}&istime=false`;
+      ? `/pages/ruiDu/create?id=${item.id}&isview=${
+          istime === "true" ? "time" : "detail"
+        }`
+      : `/pages/ruiDu/edit?id=${item.id}&istime=${istime}`;
   uni.navigateTo({ url });
 };
 
+const getLoginUser = async () => {
+  const response = await getLoginUserInfo();
+  if (response.code === 0) {
+    rdNonProductFlag.value = response.data.rdNonProductFlag;
+  }
+};
+
 const loadDeptOptions = async () => {
   try {
     const response = await specifiedSimpleDepts(getDeptId());
@@ -799,6 +826,7 @@ const queryReportTeamSummary = async (params) => {
 
 queryReportSummary({ createTime: getCurrentYearRange() });
 queryReportTeamSummary();
+getLoginUser();
 onMounted(loadDeptOptions);
 onUnmounted(() => timers.forEach((timer) => clearTimeout(timer)));
 </script>