yanliming 1 rok pred
rodič
commit
b096469961

+ 9 - 1
src/api/base/fundIncomeInfo.js

@@ -29,6 +29,14 @@ function update(formModel) {
   });
 }
 
+function batchSave(formModel) {
+  return request.post(constant.serverUrl + "/base/fundIncomeInfo/batchSave", formModel, {
+    headers: {
+      "Content-Type": "application/json"
+    }
+  });
+}
+
 function remove(id) {
   return request.post(constant.serverUrl + "/base/fundIncomeInfo/delete/" + id);
 }
@@ -47,5 +55,5 @@ function generateData(formData) {
 
 
 export default {
-  pageList, create, edit, add, update, remove, batchRemove,generateData
+  pageList, create, edit, add, update, remove, batchRemove,generateData,batchSave
 }

+ 75 - 87
src/views/base/fundIncomeInfo-list.vue

@@ -24,6 +24,16 @@
             format="yyyy-MM">
           </el-date-picker>
         </el-form-item>
+        <el-form-item label="模板" prop="selectTemplateId">
+        <el-select v-model="queryModel.selectTemplateId" size="mini" style="width:250px" placeholder="请选择模板">
+            <el-option
+              v-for="item in templateList"
+              :key="item.id"
+              :label="item.title"
+              :value="item.id">
+            </el-option>
+          </el-select>
+        </el-form-item>
         <el-form-item label="项目名称" prop="name">
           <el-input type="text" size="mini" v-model="queryModel.name" ></el-input>
         </el-form-item>
@@ -35,12 +45,12 @@
             @click="changePage(1)"
             :loading="loading"
           >查询</el-button>&nbsp;
-          <el-button
+          <!-- <el-button
             type="info"
             size="mini"
             style="margin-left: 8px"
             @click="handleReset('queryForm')"
-          >重置</el-button>&nbsp;
+          >重置</el-button>&nbsp; -->
         </el-form-item>
       </el-form>
       <el-divider></el-divider>
@@ -61,13 +71,13 @@
           @click="exportXls"
         >导出数据</el-button>
         <span style="float: right;">
-          <permission-detect class="inline" path="/base/fundIncomeInfo/generateData" method="post">
+          <!-- <permission-detect class="inline" path="/base/fundIncomeInfo/generateData" method="post">
             <el-button type="danger"
             size="small" 
             style="text-align:right" 
             icon="el-icon-s-data" 
             @click="batchImportVisible2 = true">生成列表项目</el-button>
-          </permission-detect>
+          </permission-detect> -->
         </span>
         
       </el-row>
@@ -126,6 +136,10 @@
             </div>
         </el-table-column>
         <el-table-column  prop="curMonthReceived"  label="本月到账资金" width="200">
+          <template slot="header">
+            <span>本月到账资金</span>
+            <el-button style="margin-left:10px" type="primary" size="mini" plain @click="handleBatchSave">保存</el-button>
+          </template>
             <div class="item" slot-scope="scope">
                 <el-input-number 
                 v-if="!scope.row.isSum"
@@ -277,45 +291,6 @@
         >
       </div>
     </el-dialog>
-
-
-    <el-dialog
-      title="选择模版"
-      :visible.sync="batchImportVisible2"
-      :modal-append-to-body="false"
-      style="text-align: left"
-      :close-on-click-modal="false"
-    >
-      <el-form label-width="150px" >
-        <el-form-item label="年份" prop="selectYear">
-          <el-date-picker
-            v-model="selectYear"
-            type="year"
-            placeholder="选择年"
-            value-format="yyyy"
-            format="yyyy">
-          </el-date-picker>
-        </el-form-item>
-        <el-form-item label="模版" prop="selectTamplateId">
-          <el-select v-model="selectTamplateId" placeholder="请选择" style="width:400px">
-            <el-option
-              v-for="item in templateList"
-              :key="item.id"
-              :label="item.title"
-              :value="item.id">
-            </el-option>
-          </el-select>
-      </el-form-item>
-      </el-form>
-      <div slot="footer" class="dialog-footer">
-        <el-button type="primary" @click="batchImportVisible2 = false"
-          >关 闭</el-button
-        >
-        <el-button type="danger" @click="handleGenerateData(selectTamplateId,selectYear)" :loading="submitting"
-          >生 成</el-button
-        >
-      </div>
-    </el-dialog>
     </div>
   </template>
   <script>
@@ -334,6 +309,7 @@
         queryModel: {
           yearMonth: "",
           name: "",
+          selectTemplateId:"",
         },
         loading: false,
         tableData: [],
@@ -364,6 +340,7 @@
          // 保存进入编辑的cell
         clickCellMap: {},
         templateList:[],
+        selectTemplateId:"",
         uploadUrlXls: Constant.serverUrl + "/base/fundIncomeInfo/importXls",
         uploadXlsData: {
             subFolder: "personInfo",
@@ -401,14 +378,18 @@
     created(){
       var self = this;
     
-      templateInfoApi.list().then(function (response) {
-        var jsonData = response.data;
-        if (jsonData.result) {
-          if (jsonData.data != null && jsonData.data != "") {
-            self.templateList = jsonData.data;
-          }
-        }
-      });
+      // templateInfoApi.list().then(function (response) {
+      //   var jsonData = response.data;
+      //   if (jsonData.result) {
+      //     if (jsonData.data != null && jsonData.data != "") {
+      //       self.templateList = jsonData.data;
+      //       if(self.templateList.length>0){
+      //         self.queryModel.selectTemplateId = self.templateList[0].id;
+      //       }
+            
+      //     }
+      //   }
+      // });
 
       self.getNowTime();
     },
@@ -438,6 +419,7 @@
   
         formData.append("name", self.queryModel.name);
         formData.append("yearMonth", self.queryModel.yearMonth);
+        formData.append("templateId", self.queryModel.selectTemplateId);
 
         if(exportFlag!=null){
             formData.append("exportFlag", exportFlag);
@@ -727,43 +709,11 @@
           return this.$confirm(`确定移除 ${ file.name }?`);
         },
 
-        handleGenerateData(templateId,year){
-          var self = this;
-          self.$confirm("生成数据后列表原数据会被覆盖,请谨慎操作!确认生成数据?", "提示", {
-            confirmButtonText: "确定",
-            cancelButtonText: "取消",
-            type: "warning"
-          }).then(() => {
-            var formData = new FormData();
-
-            formData.append("templateId", templateId);
-            formData.append("year", year);
-
-            fundIncomeInfoApi.generateData(formData).then(function(response) {
-                var jsonData = response.data;
-                if(jsonData.result) {
-                  self.changePage(self.pageIndex); 
-                  self.$message({
-                    type: "success",
-                    message: "生成数据成功!"
-                  });
-
-                  self.batchImportVisible2 = false
-                }
-                else{
-                    self.$message.warning(jsonData.message);
-                }
-            }).catch((error)=>{
-              self.loading = false;
-            });
-          });
-        },
-
         saveNum(row){
-          var sumNum = row.total + row.curMonthReceived;
-          row.actualTotalRevenue = sumNum;
+          // var sumNum = row.total + row.curMonthReceived;
+          // row.actualTotalRevenue = sumNum;
 
-          row.accumulatedArrears = row.budgetRevenue-sumNum;
+          // row.accumulatedArrears = row.budgetRevenue-sumNum;
         
           this.save(row);
         },
@@ -785,12 +735,50 @@
           else{
             return ''; 
           }
+        },
+        handleBatchSave(){
+          var self = this;
+
+          //alert(JSON.stringify(self.tableData));
+
+          (function () {
+            return fundIncomeInfoApi.batchSave(self.tableData);
+          })().then(function (response) {
+            var jsonData = response.data;
+
+            if (jsonData.result) {
+              self.$message({
+                message: "保存成功!",
+                type: "success",
+              });
+
+              self.changePage(1,null)
+            } else {
+              self.$message({
+                message: jsonData.message + "",
+                type: "warning",
+              });
+            }
+          });
+
         }
       
     },
     mounted: function() {
       var self = this;
-      self.changePage(1,null);
+      
+      templateInfoApi.list().then(function (response) {
+        var jsonData = response.data;
+        if (jsonData.result) {
+          if (jsonData.data != null && jsonData.data != "") {
+            self.templateList = jsonData.data;
+            if(self.templateList.length>0){
+              self.queryModel.selectTemplateId = self.templateList[0].id;
+              self.changePage(1,null);
+            }
+          }
+        }
+      });
     },
     components: {
     }

+ 1 - 1
src/views/base/templateDepartment-edit.vue

@@ -34,7 +34,7 @@
             </el-date-picker>
           </el-form-item>
           <el-form-item label="收入类型" prop="incomeType">
-            <el-select v-model="formModel.incomeType" placeholder="请选择" style="width: 300px" >
+            <el-select v-model="formModel.incomeType" clearable placeholder="请选择" style="width: 300px" >
                 <el-option
                   v-for="item in typeList"
                   :key="item.value"

+ 76 - 2
src/views/base/templateDepartment-list.vue

@@ -83,13 +83,19 @@
             </el-upload>
           </template>
         </el-table-column>
-        <el-table-column label="操作" width="300">
+        <el-table-column label="操作" width="450">
           <template slot-scope="{row}" >
             <el-button v-if="row.attachment&&row.status=='0'" size="mini" type="warning" @click="handleSave(row)">保存附件</el-button>
             <el-button size="mini" type="primary" @click="handleOption(row)">模板选项</el-button>
             <permission-detect class="inline" style="display:inline;margin-left:10px" path="/base/templateDepartment/Checked" method="post">
               <el-button v-if="row.status=='0'" size="mini" type="success" @click="handleChecked(row)">审核</el-button>
             </permission-detect>
+            <permission-detect class="inline" style="display:inline;margin-left:10px" path="/base/fundIncomeInfo/generateData" method="post">
+              <el-button type="danger"
+              size="mini" 
+              icon="el-icon-s-data" 
+              @click="batchGenerateData(row)">生成模板项目</el-button>
+            </permission-detect>
           </template>
         </el-table-column>
       </el-table>
@@ -108,12 +114,40 @@
         :title="modalTitle2"
         @close="onDetailModalClose2"
       ></templateDepartment-detail>
+      <el-dialog
+      title="选择生成年份"
+      :visible.sync="batchImportVisible2"
+      :modal-append-to-body="false"
+      style="text-align: left"
+      :close-on-click-modal="false"
+    >
+      <el-form label-width="150px" >
+        <el-form-item label="年份" prop="selectYear">
+          <el-date-picker
+            v-model="selectYear"
+            type="year"
+            placeholder="选择年"
+            value-format="yyyy"
+            format="yyyy">
+          </el-date-picker>
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="batchImportVisible2 = false"
+          >关 闭</el-button
+        >
+        <el-button type="danger" @click="handleGenerateData(selectTamplateId,selectYear)" :loading="submitting"
+          >生 成</el-button
+        >
+      </div>
+    </el-dialog>
 
     </div>
   </template>
   <script>
   import Constant from "@/constant";
   import templateInfoApi from "@/api/base/templateInfo";
+  import fundIncomeInfoApi from "@/api/base/fundIncomeInfo";
   import templateDepartmentDetail from "./templateDepartment-detail";
   import { getToken } from "@/utils/auth"; // get token from cookie
   
@@ -157,6 +191,10 @@
         xlsLoading: false,
         batchImportFileList: [],
         chargingStationResult:[],
+        batchImportVisible2:false,
+        selectTamplateId:"",
+        submitting: false,
+        selectYear:"",
         uploadUrlXls: Constant.serverUrl + "/base/personInfo/importXls",
         uploadXlsData: {
             subFolder: "personInfo",
@@ -460,7 +498,43 @@
             this.$message.error("上传头像图片大小不能超过 2MB!");
           }
           return isLt2M;
-        }
+        },
+        batchGenerateData(record){
+          this.selectTamplateId = record.id;
+          this.batchImportVisible2 = true;
+        },
+        
+        handleGenerateData(templateId,year){
+          var self = this;
+          self.$confirm("生成数据后列表原数据会被覆盖,请谨慎操作!确认生成数据?", "提示", {
+            confirmButtonText: "确定",
+            cancelButtonText: "取消",
+            type: "warning"
+          }).then(() => {
+            var formData = new FormData();
+
+            formData.append("templateId", templateId);
+            formData.append("year", year);
+
+            fundIncomeInfoApi.generateData(formData).then(function(response) {
+                var jsonData = response.data;
+                if(jsonData.result) {
+                  self.changePage(self.pageIndex); 
+                  self.$message({
+                    type: "success",
+                    message: "生成数据成功!"
+                  });
+
+                  self.batchImportVisible2 = false
+                }
+                else{
+                    self.$message.warning(jsonData.message);
+                }
+            }).catch((error)=>{
+              self.loading = false;
+            });
+          });
+        },
     },
     mounted: function() {
       var self = this;

+ 19 - 19
src/views/base/templateInfo-option-list.vue

@@ -42,13 +42,30 @@
                         </el-form-item>
                     </template>
                 </el-table-column>
+                <el-table-column prop="isSum" label="是否合计" width="150">
+                    <template slot-scope="scope">
+                        <el-form-item
+                        :prop="'optionList.' + scope.$index + '.isSum'"
+                        :rules="ruleValidate['isSum']"
+                        >
+                        <el-select v-model="scope.row.isSum" placeholder="请选择" size="mini" style="width:130px">
+                          <el-option
+                            v-for="item in isSumList"
+                            :key="item.value"
+                            :label="item.label"
+                            :value="item.value">
+                          </el-option>
+                        </el-select>
+                        </el-form-item>
+                    </template>
+                </el-table-column>
                 <el-table-column prop="budgetRevenue" label="预算收入" width="180">
                     <template slot-scope="scope">
                         <el-form-item
                         :prop="'optionList.' + scope.$index + '.budgetRevenue'"
                         :rules="ruleValidate['budgetRevenue']"
                         >
-                        <el-input-number placeholder="预算收入"  v-model="scope.row.budgetRevenue"  size="mini" style="width:150px"> 
+                        <el-input-number v-if="!scope.row.isSum" placeholder="预算收入"  v-model="scope.row.budgetRevenue"  size="mini" style="width:150px"> 
                         </el-input-number>
                         </el-form-item>
                     </template>
@@ -59,7 +76,7 @@
                         :prop="'optionList.' + scope.$index + '.departmentIdArr'"
                         :rules="ruleValidate['departmentIdArr']"
                         >
-                        <el-select v-model="scope.row.departmentIdArr" placeholder="请选择" multiple size="mini" style="width:150px">
+                        <el-select v-if="!scope.row.isSum" v-model="scope.row.departmentIdArr" placeholder="请选择" multiple size="mini" style="width:150px">
                           <el-option
                             v-for="item in departmentList"
                             :key="item.id"
@@ -70,23 +87,6 @@
                         </el-form-item>
                     </template>
                 </el-table-column>
-                <el-table-column prop="isSum" label="是否合计" width="150">
-                    <template slot-scope="scope">
-                        <el-form-item
-                        :prop="'optionList.' + scope.$index + '.isSum'"
-                        :rules="ruleValidate['isSum']"
-                        >
-                        <el-select v-model="scope.row.isSum" placeholder="请选择" size="mini" style="width:130px">
-                          <el-option
-                            v-for="item in isSumList"
-                            :key="item.value"
-                            :label="item.label"
-                            :value="item.value">
-                          </el-option>
-                        </el-select>
-                        </el-form-item>
-                    </template>
-                </el-table-column>
                 <el-table-column prop="index" label="排序号" width="120">
                     <template slot-scope="scope">
                         <el-form-item