yanghao 3 дней назад
Родитель
Сommit
b73b1f5639
3 измененных файлов с 377 добавлено и 208 удалено
  1. 258 79
      src/views/flow/crmTodoList.vue
  2. 4 20
      src/views/flow/index.vue
  3. 115 109
      src/views/flow/todoList.vue

+ 258 - 79
src/views/flow/crmTodoList.vue

@@ -26,85 +26,243 @@
           />返回</el-button
         >
       </div>
-      <el-table
-        :data="oaTasks"
-        style="width: 100%"
-        :empty-text="loading ? '加载中...' : '暂无数据'"
-        height="80vh"
-        :header-cell-style="{
-          backgroundColor: '#e9f7ff',
-          color: 'black',
-          fontWeight: '400',
-        }"
-        :cell-style="{
-          color: 'black',
-        }"
-      >
-        <el-table-column
-          type="index"
-          label="序号"
-          width="80"
-          fixed="left"
-          align="center"
-        />
-        <el-table-column
-          prop="instTitle"
-          label="流程标题"
-          min-width="220"
-          fixed="left"
-          align="center"
-        />
-        <el-table-column
-          prop="entityTypeId"
-          label="业务类型"
-          width="140"
-          align="center"
-        />
-        <el-table-column
-          prop="priority"
-          label="优先级别"
-          width="100"
-          align="center"
-        />
-
-        <el-table-column
-          prop="createAt"
-          label="任务创建时间"
-          width="180"
-          align="center"
-        />
-
-        <el-table-column
-          prop="endAt"
-          label="任务完成时间"
-          width="180"
-          align="center"
-        />
-
-        <el-table-column
-          prop="submitterId"
-          label="任务提交人"
-          width="120"
-          align="center"
-        />
-
-        <el-table-column
-          prop="status"
-          label="任务状态"
-          width="100"
-          align="center"
-        />
-
-        <el-table-column label="操作" width="120" fixed="right" align="center">
-          <template #default="scope">
-            <span
-              class="text-[#02409b] cursor-pointer"
-              @click="goBackPage(scope.row)"
-              >处理</span
-            >
-          </template>
-        </el-table-column>
-      </el-table>
+      <div class="h-[80vh]">
+        <el-table
+          :data="oaTasks"
+          style="width: 100%"
+          :empty-text="loading ? '加载中...' : '暂无数据'"
+          :header-cell-style="{
+            backgroundColor: '#e9f7ff',
+            color: 'black',
+            fontWeight: '400',
+          }"
+          :cell-style="{
+            color: 'black',
+          }"
+        >
+          <el-table-column
+            type="index"
+            label="序号"
+            width="80"
+            fixed="left"
+            align="center"
+          />
+          <el-table-column
+            prop="instTitle"
+            label="流程标题"
+            min-width="220"
+            fixed="left"
+            align="center"
+          />
+          <el-table-column
+            prop="entityTypeId"
+            label="业务类型"
+            width="140"
+            align="center"
+          />
+          <el-table-column
+            prop="priority"
+            label="优先级别"
+            width="100"
+            align="center"
+          >
+            <template #default="scope">
+              <el-tag v-if="scope.row.priority == 50" type="warning" size="mini"
+                >一般</el-tag
+              >
+              <el-tag
+                v-else-if="scope.row.priority === 90"
+                type="danger"
+                size="mini"
+              >
+                紧急
+              </el-tag>
+
+              <span v-else></span>
+            </template>
+          </el-table-column>
+
+          <el-table-column
+            prop="createAt"
+            label="任务提交时间"
+            width="180"
+            align="center"
+          >
+            <template #default="scope">
+              {{ timestampToDateTime(scope.row.submitAt) }}
+            </template>
+          </el-table-column>
+
+          <el-table-column
+            prop="createAt"
+            label="任务创建时间"
+            width="180"
+            align="center"
+          >
+            <template #default="scope">
+              {{ timestampToDateTime(scope.row.createdAt) }}
+            </template>
+          </el-table-column>
+
+          <el-table-column
+            prop="endAt"
+            label="任务完成时间"
+            width="180"
+            align="center"
+          >
+            <template #default="scope">
+              {{ timestampToDateTime(scope.row.endAt) }}
+            </template>
+          </el-table-column>
+
+          <el-table-column
+            prop="submitterId"
+            label="任务提交人"
+            width="120"
+            align="center"
+          />
+
+          <el-table-column
+            prop="status"
+            label="任务状态"
+            width="100"
+            align="center"
+          >
+            <template #default="scope">
+              <el-tag v-if="scope.row.status === 1" type="info" size="mini"
+                >待提交</el-tag
+              >
+              <el-tag
+                v-else-if="scope.row.status === 2"
+                type="info"
+                size="mini"
+              >
+                待重新提交
+              </el-tag>
+
+              <el-tag
+                v-else-if="scope.row.status === 3"
+                type="info"
+                size="mini"
+              >
+                待提交到退回节点
+              </el-tag>
+
+              <el-tag
+                v-else-if="scope.row.status === 4"
+                type="primary"
+                size="mini"
+              >
+                已提交
+              </el-tag>
+
+              <el-tag
+                v-else-if="scope.row.status === 5"
+                type="info"
+                size="mini"
+              >
+                待办理
+              </el-tag>
+
+              <el-tag
+                v-else-if="scope.row.status === 6"
+                type="success"
+                size="mini"
+              >
+                已同意
+              </el-tag>
+
+              <el-tag
+                v-else-if="scope.row.status === 7"
+                type="danger"
+                size="mini"
+              >
+                已拒绝
+              </el-tag>
+
+              <el-tag
+                v-else-if="scope.row.status === 8"
+                type="danger"
+                size="mini"
+              >
+                已转办
+              </el-tag>
+
+              <el-tag
+                v-else-if="scope.row.status === 9"
+                type="primary"
+                size="mini"
+              >
+                已抄送
+              </el-tag>
+
+              <el-tag
+                v-else-if="scope.row.status === 10"
+                type="warning"
+                size="mini"
+              >
+                加签挂起
+              </el-tag>
+
+              <el-tag
+                v-else-if="scope.row.status === 11"
+                type="warning"
+                size="mini"
+              >
+                任务挂起
+              </el-tag>
+
+              <el-tag
+                v-else-if="scope.row.status === 12"
+                type="warning"
+                size="mini"
+              >
+                已收回
+              </el-tag>
+
+              <el-tag
+                v-else-if="scope.row.status === 13"
+                type="warning"
+                size="mini"
+              >
+                已移交
+              </el-tag>
+
+              <el-tag
+                v-else-if="scope.row.status === 14"
+                type="warning"
+                size="mini"
+              >
+                已委托
+              </el-tag>
+
+              <el-tag
+                v-else-if="scope.row.status === 99"
+                type="success"
+                size="mini"
+              >
+                无需办理
+              </el-tag>
+              <span v-else></span>
+            </template>
+          </el-table-column>
+
+          <el-table-column
+            label="操作"
+            width="120"
+            fixed="right"
+            align="center"
+          >
+            <template #default="scope">
+              <span
+                class="text-[#02409b] cursor-pointer"
+                @click="goBackPage(scope.row)"
+                >处理</span
+              >
+            </template>
+          </el-table-column>
+        </el-table>
+      </div>
     </div>
 
     <Footer />
@@ -139,6 +297,27 @@ const goBackPage = async (row) => {
   //   }, 50);
   // }
 };
+
+function timestampToDateTime(timestamp) {
+  // 兼容 10位(秒) / 13位(毫秒)
+  const len = String(timestamp).length;
+  const date = new Date(Number(timestamp) * (len === 10 ? 1000 : 1));
+
+  // 年
+  const year = date.getFullYear();
+  // 月(0~11 → +1)
+  const month = String(date.getMonth() + 1).padStart(2, "0");
+  // 日
+  const day = String(date.getDate()).padStart(2, "0");
+  // 时
+  const hours = String(date.getHours()).padStart(2, "0");
+  // 分
+  const minutes = String(date.getMinutes()).padStart(2, "0");
+  // 秒
+  const seconds = String(date.getSeconds()).padStart(2, "0");
+
+  return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`;
+}
 onMounted(async () => {
   if (userStore.getUser.username) {
     loading.value = true;

+ 4 - 20
src/views/flow/index.vue

@@ -30,12 +30,11 @@
       <div class="total-card" v-for="(item, index) in stats" :key="index">
         <el-popover
           placement="top"
-          :width="200"
+          :width="100"
           trigger="hover"
           popper-class="glass-popover"
           :disabled="getDetailList(index).length === 0"
-          raw-content
-          transition="el-zoom-in-top"
+          transition="el-zoom-in-left"
         >
           <template #reference>
             <div class="card-wrapper">
@@ -478,21 +477,6 @@ const stats = ref([
     bgcolor: "#eff6ff",
     color: "#2563eb",
   },
-  {
-    icon: "mdi:arrow-right-bold-box-outline",
-    title: "发起流程",
-    number: 0,
-    extra: "85% 准时",
-    bgcolor: "#eff6ff",
-    color: "#2563eb",
-  },
-  {
-    icon: "mdi:file-document-outline",
-    title: "草稿箱",
-    number: 0,
-    bgcolor: "#f8fafc",
-    color: "#475569",
-  },
 ]);
 
 const todoCount = ref([
@@ -877,8 +861,8 @@ onBeforeUnmount(() => {
 }
 
 .total-card {
-  flex: 1;
-  min-width: 0;
+  /* flex: 1; */
+  width: 300px;
   background: #ffffff;
   border-radius: 16px;
   padding: 20px;

+ 115 - 109
src/views/flow/todoList.vue

@@ -26,115 +26,121 @@
           />返回</el-button
         >
       </div>
-      <el-table
-        :data="oaTasks"
-        style="width: 100%"
-        :empty-text="loading ? '加载中...' : '暂无数据'"
-        height="80vh"
-        :header-cell-style="{
-          backgroundColor: '#e9f7ff',
-          color: 'black',
-          fontWeight: '400',
-        }"
-        :cell-style="{
-          color: 'black',
-        }"
-      >
-        <el-table-column
-          type="index"
-          label="序号"
-          width="80"
-          fixed="left"
-          align="center"
-        />
-        <el-table-column
-          prop="requestName"
-          label="请求标题"
-          min-width="220"
-          fixed="left"
-          align="center"
-        />
-        <el-table-column
-          prop="workflowBaseInfo.workflowTypeName"
-          label="流程类型"
-          width="140"
-          align="center"
-        />
-        <el-table-column
-          prop="requestLevel"
-          label="紧急程度"
-          width="100"
-          align="center"
-        />
-        <el-table-column
-          prop="status"
-          label="路径状态"
-          width="100"
-          align="center"
-        />
-        <el-table-column
-          prop="sysName"
-          label="系统名称"
-          width="140"
-          align="center"
-        />
-        <el-table-column
-          prop="createTime"
-          label="创建时间"
-          width="180"
-          align="center"
-        />
-
-        <el-table-column
-          prop="creatorName"
-          label="创建人名称"
-          width="120"
-          align="center"
-        />
-
-        <el-table-column
-          prop="currentNodeName"
-          label="当前节点名称"
-          width="140"
-          align="center"
-        />
-        <el-table-column
-          prop="lastOperateTime"
-          label="最后操作时间"
-          width="180"
-          align="center"
-        />
-
-        <el-table-column
-          prop="lastOperatorName"
-          label="最后操作人名称"
-          width="140"
-          align="center"
-        />
-        <el-table-column
-          prop="receiveTime"
-          label="接收时间"
-          width="180"
-          align="center"
-        />
-
-        <el-table-column
-          prop="workflowBaseInfo.workflowName"
-          label="流程名称"
-          min-width="200"
-          align="center"
-        />
-
-        <el-table-column label="操作" width="120" fixed="right" align="center">
-          <template #default="scope">
-            <span
-              class="text-[#02409b] cursor-pointer"
-              @click="goBackPage(scope.row)"
-              >处理</span
-            >
-          </template>
-        </el-table-column>
-      </el-table>
+      <div class="h-[80vh]">
+        <el-table
+          :data="oaTasks"
+          style="width: 100%"
+          :empty-text="loading ? '加载中...' : '暂无数据'"
+          :header-cell-style="{
+            backgroundColor: '#e9f7ff',
+            color: 'black',
+            fontWeight: '400',
+          }"
+          :cell-style="{
+            color: 'black',
+          }"
+        >
+          <el-table-column
+            type="index"
+            label="序号"
+            width="80"
+            fixed="left"
+            align="center"
+          />
+          <el-table-column
+            prop="requestName"
+            label="请求标题"
+            min-width="220"
+            fixed="left"
+            align="center"
+          />
+          <el-table-column
+            prop="workflowBaseInfo.workflowTypeName"
+            label="流程类型"
+            width="140"
+            align="center"
+          />
+          <el-table-column
+            prop="requestLevel"
+            label="紧急程度"
+            width="100"
+            align="center"
+          />
+          <el-table-column
+            prop="status"
+            label="路径状态"
+            width="100"
+            align="center"
+          />
+          <el-table-column
+            prop="sysName"
+            label="系统名称"
+            width="140"
+            align="center"
+          />
+          <el-table-column
+            prop="createTime"
+            label="创建时间"
+            width="180"
+            align="center"
+          />
+
+          <el-table-column
+            prop="creatorName"
+            label="创建人名称"
+            width="120"
+            align="center"
+          />
+
+          <el-table-column
+            prop="currentNodeName"
+            label="当前节点名称"
+            width="140"
+            align="center"
+          />
+          <el-table-column
+            prop="lastOperateTime"
+            label="最后操作时间"
+            width="180"
+            align="center"
+          />
+
+          <el-table-column
+            prop="lastOperatorName"
+            label="最后操作人名称"
+            width="140"
+            align="center"
+          />
+          <el-table-column
+            prop="receiveTime"
+            label="接收时间"
+            width="180"
+            align="center"
+          />
+
+          <el-table-column
+            prop="workflowBaseInfo.workflowName"
+            label="流程名称"
+            min-width="200"
+            align="center"
+          />
+
+          <el-table-column
+            label="操作"
+            width="120"
+            fixed="right"
+            align="center"
+          >
+            <template #default="scope">
+              <span
+                class="text-[#02409b] cursor-pointer"
+                @click="goBackPage(scope.row)"
+                >处理</span
+              >
+            </template>
+          </el-table-column>
+        </el-table>
+      </div>
     </div>
 
     <Footer />