gaoluyang
2 天以前 952240909a036a341300ec25a2259e6faed33362
src/pages/cooperativeOffice/collaborativeApproval/index.vue
@@ -5,13 +5,14 @@
      <PageHeader title="审批管理" @back="goBack" />
      <!-- 搜索和筛选区域 -->
      <view class="search-filter-section">
      <view class="search-section">
         <view class="search-bar">
            <view class="search-input">
               <input
               <up-input
                  class="search-text"
                  placeholder="请输入流程编号"
                  v-model="searchForm.approveId"
                  clearable
               />
            </view>
            <view class="search-button" @click="getList">
@@ -32,7 +33,7 @@
                     <text class="item-id">{{ item.approveId }}</text>
                  </view>
                  <view class="item-tag">
                     <van-tag :type="getTagClass(item.approveStatus)" size="medium">{{ formatReceiptType(item.approveStatus) }}</van-tag>
                     <u-tag :type="getTagClass(item.approveStatus)">{{ formatReceiptType(item.approveStatus) }}</u-tag>
                  </view>
               </view>
               <up-divider></up-divider>
@@ -70,24 +71,24 @@
                     </view>
                     <view class="detail-row">
                        <view class="actions">
                           <van-button
                           <u-button
                              type="primary"
                              size="small"
                              class="action-btn edit"
                              :disabled="item.approveStatus == 2 || item.approveStatus == 1 || item.approveStatus == 4"
                              @click="handleItemClick(item)"
                           >
                              编辑
                           </van-button>
                           <van-button
                                 编辑
                           </u-button>
                           <u-button
                              type="success"
                              size="small"
                              class="action-btn approve"
                              :disabled="item.approveUserCurrentId == null || item.approveStatus == 2 || item.approveStatus == 3 || item.approveStatus == 4 || item.approveUserCurrentId !== userStore.id"
                              @click="approve(item)"
                           >
                              审核
                           </van-button>
                                 审核
                           </u-button>
                        </view>
                     </view>
                  </view>
@@ -98,7 +99,6 @@
      <view v-else class="no-data">
         <text>暂无审批数据</text>
      </view>
<!--      <van-floating-bubble icon="plus" @click="handleAdd"/>-->
      <!-- 浮动操作按钮 -->
      <view class="fab-button" @click="handleAdd">
         <up-icon name="plus" size="24" color="#ffffff"></up-icon>
@@ -133,6 +133,7 @@
   };
   // 查询列表
   const getList = () => {
      showLoadingToast('加载中...')
      const page = {
         current: -1,
         size: -1,
@@ -142,11 +143,25 @@
         })
         .then((res) => {
            ledgerList.value = res.data.records;
            closeToast()
         })
         .catch(() => {
            // tableLoading.value = false;
            closeToast()
         });
   };
   // 显示加载提示
   const showLoadingToast = (message) => {
      uni.showLoading({
         title: message,
         mask: true
      });
   };
   // 关闭提示
   const closeToast = () => {
      uni.hideLoading();
   };
   // 显示筛选选项
   const showFilterOptions = () => {
      uni.showActionSheet({
@@ -181,7 +196,7 @@
      } else if (type == 4) {
         return "primary";
      } else {
         return "danger";
         return "error";
      }
   };
@@ -214,178 +229,34 @@
</script>
<style scoped lang="scss">
   @import "../../../styles/sales-common.scss";
   .u-divider {
      margin: 0 !important;
   }
   .sales-account {
      min-height: 100vh;
      background: #f8f9fa;
      position: relative;
   }
   .search-input {
      flex: 1;
      background: #f5f5f5;
      border-radius: 24px;
      padding: 10px 16px;
      display: flex;
      align-items: center;
      gap: 8px;
   }
   .search-text {
      flex: 1;
      font-size: 14px;
      color: #333;
      background: transparent;
      border: none;
      outline: none;
   }
   .search-text::placeholder {
      color: #999;
   }
   .search-filter-section {
      padding: 10px 20px;
      background: #ffffff;
   }
   .search-bar {
      display: flex;
      align-items: center;
      gap: 12px;
   }
   .search-input {
      flex: 1;
      background: #f5f5f5;
      border-radius: 24px;
      padding: 10px 16px;
      display: flex;
      align-items: center;
      gap: 8px;
   }
   .search-text {
      flex: 1;
      font-size: 14px;
      color: #333;
      background: transparent;
      border: none;
      outline: none;
   }
   .search-text::placeholder {
      color: #999;
   }
   .filter-button {
      width: 40px;
      height: 40px;
      border-radius: 8px;
      display: flex;
      align-items: center;
      justify-content: center;
   }
   .ledger-list {
      padding: 20px;
   }
   .ledger-item {
      background: #ffffff;
      border-radius: 12px;
      margin-bottom: 16px;
      overflow: hidden;
      box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);
      padding: 0 16px;
   }
   .item-header {
      padding: 16px 0;
      display: flex;
      align-items: center;
      justify-content: space-between;
   }
   .item-left {
      display: flex;
      align-items: center;
      gap: 8px;
   }
   // 文档图标样式 - 覆盖公共样式中的背景色
   .document-icon {
      width: 24px;
      height: 24px;
      background: #ed8d05;
      border-radius: 4px;
      display: flex;
      align-items: center;
      justify-content: center;
   }
   .item-id {
      font-size: 14px;
      color: #333;
      font-weight: 500;
   // 浮动按钮样式 - 覆盖公共样式中的背景色
   .fab-button {
      background: #ed8d05;
   }
   .item-tag {
      border-radius: 4px;
      padding: 2px 4px;
   }
   .tag-text {
      font-size: 11px;
      color: #ffffff;
      font-weight: 500;
   }
   .item-details {
      padding: 16px 0;
   }
   .detail-row {
      display: flex;
      align-items: flex-end;
      justify-content: space-between;
      margin-bottom: 8px;
      &:last-child {
         margin-bottom: 0;
      }
   }
   // 特有样式
   .detail-row-user {
      display: flex;
      align-items: center;
      justify-content: space-between;
   }
   .detail-row-approveReason {
      display: flex;
      align-items: center;
      justify-content: space-between;
      margin-bottom: 8px;
   }
   .detail-info {
      margin-top: 10px;
      display: flex;
      align-items: flex-start;
      justify-content: space-between;
   }
   .detail-label {
      font-size: 12px;
      color: #777777;
      min-width: 60px;
   }
   .detail-value {
      font-size: 12px;
      color: #000000;
      text-align: right;
      flex: 1;
      margin-left: 16px;
   }
   .detail-value.highlightBlue {
@@ -398,31 +269,11 @@
      font-weight: 500;
   }
   .no-data {
      padding: 40px 0;
      text-align: center;
      color: #999;
   }
   .fab-button {
      position: fixed;
      bottom: 30px;
      right: 30px;
      width: 56px;
      height: 56px;
      background: #ed8d05;
      border-radius: 50%;
      display: flex;
      align-items: center;
      justify-content: center;
      box-shadow: 0 4px 16px rgba(41, 121, 255, 0.3);
      z-index: 1000;
   }
   .approver-value {
      display: flex;
      justify-content: flex-end;
   }
   .approver-chip {
      display: inline-flex;
      align-items: center;
@@ -434,6 +285,7 @@
      padding: 4px 10px;
      max-width: 100%;
   }
   .approver-name {
      font-size: 12px;
      color: #2b7cff;
@@ -455,13 +307,5 @@
      line-height: 28px;
      padding: 0 12px;
   }
   .action-btn.edit {
      /* primary 样式来自组件,这里保留钩子以便后续需要扩展 */
   }
   .action-btn.approve {
      /* success 样式来自组件,这里保留钩子以便后续需要扩展 */
   }
   :deep(.van-floating-bubble) {
      background: #ed8d05;
   }
</style>