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

fix:修改首页和备忘录日历判断日期是否属于当前显示的月份,修改成本监审表模版管理去掉权限限制,修改成本审核添加子项的bug

luzhixia 1 месяц назад
Родитель
Сommit
b327be7d93

+ 44 - 27
src/views/costAudit/auditInfo/auditManage/costAudit.vue

@@ -148,6 +148,7 @@
       >
         <template slot-scope="scope">
           <el-button
+            v-if="scope.row.parentid == '-1'"
             type="text"
             title="添加行"
             @click="handleAddItem(scope.row)"
@@ -1367,48 +1368,64 @@
         // })
       },
       handleAddItem(row) {
-        // 判断parentId是否为空,是就添加父项,否则添加子项
-        const rowIndex = this.costAuditData.indexOf(row)
-        if (rowIndex === -1) {
-          this.$message.error('未找到指定行')
+        // 判断是否为父项(可添加子项)
+        if (row.parentid !== '-1') {
+          this.$message.error('只能在父项上添加子项')
           return
         }
-        // 确定新行的parentId
-        let parentId = row.parentId || '-1'
-        // 计算新行的orderNum(当前行的orderNum + 1)
-        const newOrderNum = row.orderNum + 1
-        // 整体后移逻辑:将所有orderNum大于等于新orderNum的行,其orderNum加1
-        // 根据父项和子项关系判断是否需要移动
-        this.costAuditData.forEach((item) => {
-          // 如果是相同父项的子项,或者都是父项(parentId为'-1'),则需要移动
-          if (
-            (item.parentId === parentId ||
-              (item.parentId === '-1' && parentId === '-1')) &&
-            item.orderNum >= newOrderNum
-          ) {
-            item.orderNum += 1
+        // 获取当前父项的所有子项
+        const parentRowId = row.rowid // 使用当前行的rowid作为父ID
+        const children = this.costAuditData.filter(
+          (item) => item.parentid === parentRowId
+        )
+
+        // 找到当前父项的最后一个子项的 orderNum
+        let maxOrderNum = 0
+        children.forEach((child) => {
+          if (child.orderNum > maxOrderNum) {
+            maxOrderNum = child.orderNum
           }
         })
 
-        // 创建新元素
+        // 新行的 orderNum 为最大子项 orderNum + 1
+        const newOrderNum = maxOrderNum + 1
+
+        // 创建新行:作为当前父项的子项
         const newItem = {
           ...row,
-          parentId,
+          parentId: parentRowId,
+          parentid: parentRowId,
           orderNum: newOrderNum,
           rowid: this.generateUUID(),
           id: null,
           rvalue: '',
         }
-        // 循环表头,把值置空
-        this.costAuditcolumn.forEach((item) => {
-          newItem[item.label] = ''
-          newItem[item.prop] = ''
+        console.log('children.length', children.length)
+
+        // 清空字段值
+        this.costAuditcolumn.forEach((col) => {
+          if (col.label === '序号') {
+            newItem[col.prop] = children.length + 1
+          } else {
+            newItem[col.label] = ''
+            newItem[col.prop] = ''
+          }
         })
 
-        // 在当前行后面插入新元素
-        this.costAuditData.splice(rowIndex + 1, 0, newItem)
+        // 找到父项的最后一个子项在数组中的位置
+        let insertIndex = this.costAuditData.length // 默认插入到末尾
+
+        // 遍历数组,找到父项的最后一个子项的位置
+        for (let i = 0; i < this.costAuditData.length; i++) {
+          // 如果是当前父项的子项,更新插入位置为该子项后一位
+          if (this.costAuditData[i].parentid === row.rowid) {
+            insertIndex = i + 1
+          }
+        }
 
-        this.$message.success('行添加成功')
+        // 在最后一个子项后面插入新数据
+        this.costAuditData.splice(insertIndex, 0, newItem)
+        this.$message.success('子项添加成功')
       },
       handleDeleteItem(row) {
         // 显示确认对话框

+ 21 - 33
src/views/costAudit/baseInfo/costFormManage/index.vue

@@ -51,7 +51,6 @@
       <div class="operation-bar">
         <!-- v-region-permission="{ category: 'costFormManage', action: 'add' }" -->
         <el-button
-          v-region-permission="{ category: 'costFormManage', action: 'add' }"
           plain
           type="success"
           icon="el-icon-circle-plus"
@@ -59,8 +58,8 @@
         >
           添加
         </el-button>
+        <!-- v-region-permission="{ category: 'costFormManage', action: 'delete' }" -->
         <el-button
-          v-region-permission="{ category: 'costFormManage', action: 'delete' }"
           plain
           type="danger"
           icon="el-icon-delete"
@@ -109,44 +108,36 @@
           </template>
           <!-- 操作列 -->
           <template #action="{ row }">
-            <el-button
-              v-region-permission="{
+            <!-- v-region-permission="{
                 category: 'costFormManage',
                 action: 'view',
-              }"
-              type="text"
-              size="mini"
-              @click="handleViewDetail(row)"
-            >
+              }" -->
+            <el-button type="text" size="mini" @click="handleViewDetail(row)">
               详情
             </el-button>
             <!-- 查看内容详情 -->
-            <el-button
+            <!-- <el-button
               v-if="!$permission.isAdminOrProvince()"
               type="text"
               size="mini"
               @click="handleDropdownCommand('infoMaintain', row)"
             >
               内容详情
-            </el-button>
-            <el-button
-              v-region-permission="{
+            </el-button> -->
+            <!-- v-region-permission="{
                 category: 'costFormManage',
                 action: 'edit',
                 targetData: row,
-              }"
-              type="text"
-              size="mini"
-              @click="handleEdit(row)"
-            >
+              }" -->
+            <el-button type="text" size="mini" @click="handleEdit(row)">
               修改
             </el-button>
-            <el-button
-              v-region-permission="{
+            <!-- v-region-permission="{
                 category: 'costFormManage',
                 action: 'delete',
                 targetData: row,
-              }"
+              }" -->
+            <el-button
               class="delete-btn"
               type="text"
               size="mini"
@@ -154,36 +145,33 @@
             >
               删除
             </el-button>
-            <el-dropdown
-              v-region-permission="{
+            <!-- v-region-permission="{
                 category: 'costFormManage',
                 action: 'edit',
                 targetData: row,
-              }"
-              class="ml10"
-              trigger="click"
-            >
+              }" -->
+            <el-dropdown class="ml10" trigger="click">
               <el-button type="text" size="mini">
                 更多
                 <i class="el-icon-arrow-down el-icon--right"></i>
               </el-button>
               <el-dropdown-menu slot="dropdown">
-                <el-dropdown-item
-                  v-region-permission="{
+                <!-- v-region-permission="{
                     category: 'costFormManage',
                     action: 'edit',
                     targetData: row,
-                  }"
+                  }" -->
+                <el-dropdown-item
                   @click.native="handleDropdownCommand('infoMaintain', row)"
                 >
                   内容维护
                 </el-dropdown-item>
-                <el-dropdown-item
-                  v-region-permission="{
+                <!-- v-region-permission="{
                     category: 'costFormManage',
                     action: 'edit',
                     targetData: row,
-                  }"
+                  }" -->
+                <el-dropdown-item
                   @click.native="handleDropdownCommand('status', row)"
                 >
                   {{ row.status === '0' ? '停用' : '启用' }}

+ 26 - 34
src/views/costAudit/baseInfo/costFormManage/infoMaintain.vue

@@ -39,8 +39,8 @@
 
     <!-- 操作栏 -->
     <div class="operation-bar">
+      <!-- v-region-permission="{ category: 'costFormManage', action: 'add' }" -->
       <el-button
-        v-region-permission="{ category: 'costFormManage', action: 'add' }"
         plain
         type="success"
         icon="el-icon-circle-plus"
@@ -48,11 +48,11 @@
       >
         添加
       </el-button>
-      <el-button
-        v-region-permission="{
+      <!-- v-region-permission="{
           category: 'costFormManage',
           action: 'delete',
-        }"
+        }" -->
+      <el-button
         plain
         type="danger"
         icon="el-icon-delete"
@@ -85,36 +85,28 @@
 
         <!-- 操作列 -->
         <template #action="{ row }">
-          <el-button
-            v-region-permission="{
+          <!-- v-region-permission="{
               category: 'costFormManage',
               action: 'view',
-            }"
-            type="text"
-            size="small"
-            @click="handleViewDetail(row)"
-          >
+            }" -->
+          <el-button type="text" size="small" @click="handleViewDetail(row)">
             详情
           </el-button>
-          <el-button
-            v-if="row.status === '-1'"
+          <!-- v-if="row.status === '-1'"
             v-region-permission="{
               category: 'costFormManage',
               action: 'edit',
-            }"
-            type="text"
-            size="small"
-            @click="handleEdit(row)"
-          >
+            }" -->
+          <el-button type="text" size="small" @click="handleEdit(row)">
             修改
           </el-button>
-          <el-button
-            v-if="row.status != '0'"
-            v-region-permission="{
+          <!-- v-region-permission="{
               category: 'costFormManage',
               action: 'delete',
               targetData: row,
-            }"
+            }" -->
+          <el-button
+            v-if="row.status != '0'"
             class="delete-btn"
             type="text"
             size="small"
@@ -122,36 +114,36 @@
           >
             删除
           </el-button>
-          <el-button
-            v-if="row.status === '-1'"
-            v-region-permission="{
+          <!-- v-region-permission="{
               category: 'costFormManage',
               action: 'edit',
-            }"
+            }" -->
+          <el-button
+            v-if="row.status === '-1'"
             type="text"
             size="small"
             @click="handleEditContent(row)"
           >
             内容维护
           </el-button>
-          <el-button
-            v-if="row.status === '-1'"
-            v-region-permission="{
+          <!-- v-region-permission="{
               category: 'costFormManage',
               action: 'edit',
-            }"
+            }" -->
+          <el-button
+            v-if="row.status === '-1'"
             type="text"
             size="small"
             @click="handleStatus(row)"
           >
             启用
           </el-button>
-          <el-button
-            v-if="row.status === '0'"
-            v-region-permission="{
+          <!-- v-region-permission="{
               category: 'costFormManage',
               action: 'edit',
-            }"
+            }" -->
+          <el-button
+            v-if="row.status === '0'"
             type="text"
             size="small"
             @click="handleStatus(row)"

+ 20 - 20
src/views/costAudit/baseInfo/costVerifyManage/index.vue

@@ -40,11 +40,11 @@
 
     <!-- 操作按钮 -->
     <div class="operation-bar">
-      <el-button
-        v-region-permission="{
+      <!-- v-region-permission="{
           category: 'costVerifyManage',
           action: 'add',
-        }"
+        }" -->
+      <el-button
         plain
         type="success"
         icon="el-icon-circle-plus"
@@ -56,11 +56,11 @@
         }" -->
         添加
       </el-button>
-      <el-button
-        v-region-permission="{
+      <!-- v-region-permission="{
           category: 'costVerifyManage',
           action: 'delete',
-        }"
+        }" -->
+      <el-button
         plain
         type="danger"
         icon="el-icon-delete"
@@ -172,36 +172,36 @@
           align="center"
         >
           <template slot-scope="scope">
-            <el-button
-              v-region-permission="{
+            <!-- v-region-permission="{
                 category: 'costVerifyManage',
                 action: 'view',
-              }"
+              }" -->
+            <el-button
               type="text"
               size="mini"
               @click="handleViewDetail(scope.row)"
             >
               查看
             </el-button>
-            <el-button
-              v-if="scope.row.status != '0'"
-              v-region-permission="{
+            <!-- v-region-permission="{
                 category: 'costVerifyManage',
                 action: 'edit',
                 targetData: scope.row,
-              }"
+              }" -->
+            <el-button
+              v-if="scope.row.status != '0'"
               type="text"
               size="mini"
               @click="handleEdit(scope.row)"
             >
               修改
             </el-button>
-            <el-button
-              v-region-permission="{
+            <!-- v-region-permission="{
                 category: 'costVerifyManage',
                 action: 'edit',
                 targetData: scope.row,
-              }"
+              }" -->
+            <el-button
               type="text"
               size="mini"
               @click="handleStatusChange(scope.row)"
@@ -209,13 +209,13 @@
               <!-- (-1草稿,0启用,1停用) -->
               {{ scope.row.status == '0' ? '停用' : '启用' }}
             </el-button>
-            <el-button
-              v-if="scope.row.status != '0'"
-              v-region-permission="{
+            <!-- v-region-permission="{
                 category: 'costVerifyManage',
                 action: 'delete',
                 targetData: scope.row,
-              }"
+              }" -->
+            <el-button
+              v-if="scope.row.status != '0'"
               type="text"
               size="mini"
               @click="handleDeleteRow(scope.row)"

+ 24 - 35
src/views/costAudit/baseInfo/financeSheetManage/index.vue

@@ -53,11 +53,11 @@
             category: 'financeSheetManage',
             action: 'add',
           }" -->
-        <el-button
-          v-region-permission="{
+        <!-- v-region-permission="{
             category: 'financeSheetManage',
             action: 'add',
-          }"
+          }" -->
+        <el-button
           plain
           type="success"
           icon="el-icon-circle-plus"
@@ -65,11 +65,11 @@
         >
           添加
         </el-button>
-        <el-button
-          v-region-permission="{
+        <!-- v-region-permission="{
             category: 'financeSheetManage',
             action: 'delete',
-          }"
+          }" -->
+        <el-button
           plain
           type="danger"
           icon="el-icon-delete"
@@ -118,35 +118,27 @@
           </template>
           <!-- 操作列 -->
           <template #action="{ row }">
-            <el-button
-              v-region-permission="{
+            <!-- v-region-permission="{
                 category: 'financeSheetManage',
                 action: 'view',
-              }"
-              type="text"
-              size="mini"
-              @click="handleViewDetail(row)"
-            >
+              }" -->
+            <el-button type="text" size="mini" @click="handleViewDetail(row)">
               详情
             </el-button>
-            <el-button
-              v-region-permission="{
+            <!-- v-region-permission="{
                 category: 'financeSheetManage',
                 action: 'edit',
                 targetData: row,
-              }"
-              type="text"
-              size="mini"
-              @click="handleEdit(row)"
-            >
+              }" -->
+            <el-button type="text" size="mini" @click="handleEdit(row)">
               修改
             </el-button>
-            <el-button
-              v-region-permission="{
+            <!-- v-region-permission="{
                 category: 'financeSheetManage',
                 action: 'delete',
                 targetData: row,
-              }"
+              }" -->
+            <el-button
               class="delete-btn"
               type="text"
               size="mini"
@@ -154,36 +146,33 @@
             >
               删除
             </el-button>
-            <el-dropdown
-              v-region-permission="{
+            <!-- v-region-permission="{
                 category: 'financeSheetManage',
                 action: 'edit',
                 targetData: row,
-              }"
-              class="ml10"
-              trigger="click"
-            >
+              }" -->
+            <el-dropdown class="ml10" trigger="click">
               <el-button type="text" size="mini">
                 更多
                 <i class="el-icon-arrow-down el-icon--right"></i>
               </el-button>
               <el-dropdown-menu slot="dropdown">
-                <el-dropdown-item
-                  v-region-permission="{
+                <!-- v-region-permission="{
                     category: 'financeSheetManage',
                     action: 'edit',
                     targetData: row,
-                  }"
+                  }" -->
+                <el-dropdown-item
                   @click.native="handleDropdownCommand('infoMaintain', row)"
                 >
                   内容维护
                 </el-dropdown-item>
-                <el-dropdown-item
-                  v-region-permission="{
+                <!-- v-region-permission="{
                     category: 'financeSheetManage',
                     action: 'edit',
                     targetData: row,
-                  }"
+                  }" -->
+                <el-dropdown-item
                   @click.native="handleDropdownCommand('status', row)"
                 >
                   {{ row.status === '0' ? '停用' : '启用' }}

+ 5 - 0
src/views/costAudit/projectInfo/auditProjectManage/memoManage/index.vue

@@ -269,6 +269,11 @@
             format="yyyy-MM-dd"
             value-format="yyyy-MM-dd"
             placeholder="选择日期"
+            :picker-options="{
+              disabledDate(time) {
+                return time.getTime() < Date.now() - 8.64e7
+              },
+            }"
           ></el-date-picker>
         </el-form-item>
         <el-row>

+ 17 - 0
src/views/costAudit/projectInfo/auditProjectManage/memoManage/memoManageMixin.js

@@ -170,6 +170,19 @@ export const memoManageMixin = {
     },
   },
   methods: {
+    // 判断是否为当前显示月份的日期
+    isCurrentMonth(date) {
+      // 从selectedDate获取当前显示的月份,而不是系统当前月份
+      const displayMonth = this.selectedDate.getMonth()
+      const displayYear = this.selectedDate.getFullYear()
+      const currentDate = new Date(date)
+
+      // 判断年份和月份是否都匹配
+      return (
+        currentDate.getFullYear() === displayYear &&
+        currentDate.getMonth() === displayMonth
+      )
+    },
     getMemoMonth() {
       let _url = ''
       if (this.type === 'memoManage') {
@@ -392,11 +405,13 @@ export const memoManageMixin = {
       this.selectedDate = moment(this.selectedDate)
         .subtract(1, 'month')
         .toDate()
+      this.getMemoMonth()
     },
 
     // 下一个月
     handleNextMonth() {
       this.selectedDate = moment(this.selectedDate).add(1, 'month').toDate()
+      this.getMemoMonth()
     },
     // 获取备忘录列表
     async handleSearch() {
@@ -408,9 +423,11 @@ export const memoManageMixin = {
         let _url = ''
         if (this.type === 'memoManage') {
           _url = '/api/costProjectMemo/v1/pageList'
+          params.pageSize = 50
         } else {
           _url = '/api/costProjectMemo/v1/pageIndexList'
           // _url = '/api/costProjectMemo/v1/getDataMonth'
+          params.pageSize = 10
         }
         if (this.activeTab == 'project') {
           delete params.memoDate

+ 13 - 4
src/views/home/index.vue

@@ -314,7 +314,7 @@
             v-if="pagination.total > 0"
             class="pagination"
             background
-            :page-sizes="[50, 100]"
+            :page-sizes="[10, 20, 50]"
             layout="total, sizes, prev, pager, next, jumper"
             :total="pagination.total"
             :page-size="pagination.pageSize"
@@ -380,6 +380,9 @@
                     <el-tooltip placement="top">
                       <div
                         class="calendar-cell"
+                        :style="{
+                          display: isCurrentMonth(date) ? 'block' : 'none',
+                        }"
                         @click="handleDateClick(date, data)"
                       >
                         <!-- 公历日期 -->
@@ -437,7 +440,7 @@
               </div>
             </el-col>
             <el-col :span="10">
-              <ul class="news-list card-content">
+              <ul class="news-list card-content memoList">
                 <li
                   v-for="(item, idx) in memoList"
                   :key="idx"
@@ -504,7 +507,7 @@
                 v-if="listTotal > 0"
                 :current-page="searchParams.page"
                 :page-size="searchParams.pageSize"
-                :page-sizes="[50, 100]"
+                :page-sizes="[10, 20, 50]"
                 layout="total, sizes, prev, pager, next, jumper"
                 :total="listTotal"
                 @size-change="handleSizeChange"
@@ -610,7 +613,7 @@
         showTooltip: false,
         pagination: {
           page: 1,
-          pageSize: 50,
+          pageSize: 10,
           total: 0,
         },
         // 成本审核列表相关
@@ -1489,4 +1492,10 @@
   .pagination {
     margin: 20px;
   }
+  .memoList {
+    width: 98%;
+    height: 550px;
+    overflow-y: auto;
+    overflow-x: hidden;
+  }
 </style>