Browse Source

提交代码

Lijy 1 year ago
parent
commit
92273f90a5

+ 75 - 3
fhKeeper/formulahousekeeper/timesheet/src/views/expense/expense.vue

@@ -252,13 +252,20 @@
               <el-form-item v-if="currentClick == '2-1'">
                 <el-button @click="exportDocument()" size="small">单据导出</el-button>
               </el-form-item>
+              <el-form-item v-if="currentClick == '2-1'">
+                <el-button @click="documentIssuance(1)" size="small">发放</el-button>
+              </el-form-item>
+              <el-form-item v-if="currentClick == '2-1'">
+                <el-button @click="documentIssuance(0)" size="small">取消发放</el-button>
+              </el-form-item>
               <!-- <span>审核模式:{{ auditTypeItem.auditType }}</span> -->
             </div>
           </el-form>
         </div>
         <el-divider ></el-divider>
         <!--列表-->
-          <el-table ref="tab" :data="list" highlight-current-row v-loading="listLoading" :height="tableHeight - currentClickNum" style="width: 100%;" :summary-method="getSummaries" show-summary>
+          <el-table ref="tab" :data="list" @selection-change="handleSelectionChange" highlight-current-row v-loading="listLoading" :height="tableHeight - currentClickNum" style="width: 100%;" :summary-method="getSummaries" show-summary>
+              <el-table-column type="selection" width="55"></el-table-column>
               <el-table-column prop="code" :label="$t('ticketnumber')"></el-table-column>
               <el-table-column prop="totalAmount" :label="$t('amountof')+ '('+$t('yuan')+')'" align="center">
                 <template slot-scope="scope" >
@@ -301,6 +308,11 @@
                   <span style="font-size:12px;">{{scope.row.denyReason}}</span>
                 </template>
               </el-table-column> -->
+              <el-table-column prop="sendState" label="发放状态" width="80">
+                <template slot-scope="scope">
+                  <span :style="`color: ${scope.row.sendState == 0 ? '#FFA500' : ''}`">{{ scope.row.sendState == 1 ? '已发放' : '未发放' }}</span>
+                </template>
+              </el-table-column>
               <el-table-column fixed="right" :label="$t('operation')" :width="isAuditList?220:160">
                   <template slot-scope="scope" >
                       <div v-if="!isAuditList">
@@ -928,6 +940,7 @@ export default {
       // 详情弹出框
       detailDialog: false,
       detaExpenseMainTypeName: '',
+      multipleSelection: [],
     };
   },
   computed: {
@@ -2019,11 +2032,11 @@ export default {
         const { columns, data } = param;
         const sums = [];
         columns.forEach((column, index) => {
-          if (index === 0) {
+          if (index === 1) {
             sums[index] = '本页金额合计';//this.$t('other.totals');
             return;
           }
-          if(index === 1) {
+          if(index === 2) {
             const values = data.map(item => Number(item[column.property]));
             if (!values.every(value => isNaN(value))) {
               sums[index] = values.reduce((prev, curr) => {
@@ -2098,6 +2111,65 @@ export default {
             });
         });
       },
+      // 单据发放
+      documentIssuance(type) {
+        const newList = this.multipleSelection.filter(item => item.status == 1 || item.status == 2);
+        const unissueds = this.multipleSelection.filter(item => item.status != 1 && item.status != 2 && item.sendState == 0).map(item => item.id);
+        const Issueds = this.multipleSelection.filter(item => item.status != 1 && item.status != 2 && item.sendState == 1).map(item => item.id);
+
+        const showMessage = (msg, messageType) => {
+          this.$message({
+            message: msg,
+            type: messageType
+          });
+        };
+        
+        if (newList.length > 0) {
+          showMessage('存在待审核或已驳回的单据', 'warning');
+          return;
+        }
+
+        if (type == 1 && unissueds.length == 0) {
+          showMessage('请选择未发放的单据', 'warning');
+          return;
+        }
+
+        if (type == 0 && Issueds.length == 0) {
+          showMessage('请选择已发放的单据', 'warning');
+          return;
+        }
+
+        this.callingInterface(type, type == 1 ? unissueds : Issueds);
+      },
+      callingInterface(type, ids) {
+        this.http.post('/expense-sheet/editSendExpense', {
+          expenseIds: ids.join(','),
+          sendState: type
+        },
+        res => {
+            if (res.code == "ok") {
+                this.$message({
+                  message: '操作成功',
+                  type: "success"
+                });
+                this.getList()
+            } else {
+                this.$message({
+                  message: res.msg,
+                  type: "error"
+                });
+            }
+        },
+        error => {
+            this.$message({
+                message: error,
+                type: "error"
+            });
+        });
+      },
+      handleSelectionChange(val) {
+        this.multipleSelection = val;
+      },
       // 打印
       print() {
         // let printContent = this.$refs.printContent;

+ 15 - 10
fhKeeper/formulahousekeeper/timesheet/src/views/workReport/weeklyCustomization.vue

@@ -24,9 +24,9 @@
                             </el-select>
                         </template>
                     </el-table-column>
-                    <el-table-column label="分" width="180">
+                    <el-table-column label="分" width="180">
                         <template slot-scope="scope">
-                            <el-select v-model="scope.row.groupId" size="small" placeholder="请选择分"
+                            <el-select v-model="scope.row.groupId" size="small" placeholder="请选择分"
                                 @change="changeGroup(scope.row.groupId, scope.row.taskGroups, scope.$index)"
                                 :disabled="scope.row.state == 1 || scope.row.state == 0 || !scope.row.canFill">
                                 <el-option v-for="item in scope.row.taskGroups" :key="item.id" :label="item.name"
@@ -67,7 +67,7 @@
                                     <el-link type="primary" :underline="false" class="el-icon-circle-plus-outline"
                                         @click="insertRow(scope.$index)"></el-link>
                                     <el-link type="primary" :underline="false" class="el-icon-delete"
-                                        @click="deleteRow(scope.$index)"></el-link>
+                                        @click="deleteRow(scope.$index)" v-if="!scope.row.isDelete"></el-link>
                                 </span>
                             </div>
                         </template>
@@ -236,7 +236,7 @@ export default {
             let newArr = groupList.filter(item => item.id == groupId)
             if (!newArr[0].inchargerId) {
                 this.$message({
-                    message: `【${newArr[0].name}】分未设置审批人,请联系该项目管理人员`,
+                    message: `【${newArr[0].name}】分未设置审批人,请联系该项目管理人员`,
                     type: "error"
                 });
                 return
@@ -255,10 +255,14 @@ export default {
             const { dateList, projectList, sumTimeList, cardTimeList } = data;
             const weekTableData = dateList.flatMap(date => {
                 const { weekDayTxt, date: dateTime, reportList, canFill } = date;
-                const reports = reportList.map(report => ({ ...report, weekDayTxt, dateTime, canFill }));
-                return reports.length > 0 ? reports : [{ weekDayTxt, dateTime, canFill }];
+                const reports = reportList.map(report => ({ ...report, weekDayTxt, dateTime, canFill}));
+                return reports.length > 0 ? reports : [{ weekDayTxt, dateTime, canFill}];
+            });
+            let sumSet = new Set();
+            weekTableData.forEach(obj => {
+                obj.isDelete = sumSet.has(obj.dateTime) ? false : true;
+                sumSet.add(obj.dateTime);
             });
-
             this.weekTableData = weekTableData;
             console.log(weekTableData, '<========== weekTableData')
         },
@@ -273,7 +277,7 @@ export default {
             let { data } = await this.getData('/task-group/listProjectGroupAndAuditor', { projectId, isSubstitude: isSubstitude ? 1 : 0 })
             if (data.length == 0) {
                 this.$message({
-                    message: '分未设置,请联系该项目管理人员',
+                    message: '分未设置,请联系该项目管理人员',
                     type: "error"
                 });
             } else if (data.length == 1) {
@@ -282,7 +286,7 @@ export default {
                 this.$set(this.weekTableData[index], 'projectAuditorName', data[0].inchargerName)
                 if (!data[0].inchargerId) {
                     this.$message({
-                        message: `【${data[0].name}】分未设置审批人,请联系该项目管理人员`,
+                        message: `【${data[0].name}】分未设置审批人,请联系该项目管理人员`,
                         type: "error"
                     });
                 }
@@ -302,7 +306,8 @@ export default {
                 groupId: '',
                 groupList: [],
                 approverList: [],
-                canFill: 1
+                canFill: 1,
+                isDelete: false
             })
         },
         // 删除一行