qinbai 3 years ago
parent
commit
d86484da19

+ 2 - 3
src/api/workManagement/mainProject.js

@@ -42,7 +42,7 @@ export function deleteMain(id) {
   })
 }
 //核算/完工/结算
-export function updateItemStatus(id,status,accountName,accountBank,accountNo) {
+export function updateItemStatus(id,status,accountName,payTime) {
   return request({
     url: '/api/trade-project/project/updateItemStatus',
     method: 'POST',
@@ -50,8 +50,7 @@ export function updateItemStatus(id,status,accountName,accountBank,accountNo) {
       id : id,
       status:status,
       accountName:accountName,
-      accountBank:accountBank,
-      accountNo:accountNo,
+      payTime:payTime,
     }
   })
 }

+ 18 - 19
src/components/finance/applyPayment.vue

@@ -6,16 +6,16 @@
         <el-col :span="4"><span class="delete_group" v-if="list.length !== 1"  @click="deleteGroup(index)">删除组</span></el-col>
       </el-row>
       <basic-container>
-        <avue-form :option="option" ref="form" v-model="item.form" >
-       <template slot-scope="scope" slot="corpId">
-         <selectComponent v-model="item.form.corpId" :configuration="configuration"/>
-       </template>
-       <template slot-scope="scope" slot="currency">
-         <el-select v-model="item.form.currency" size="small" placeholder="请选择"  clearable filterable>
-           <el-option v-for="(item,index) in currencyDic" :key="index" :label="item.dictValue"  :value="item.dictValue"></el-option>
-         </el-select>
-       </template>
-     </avue-form>
+        <avue-form :option="option" ref="form" v-model="item.form">
+          <template slot-scope="scope" slot="corpId">
+            <selectComponent v-model="item.form.corpId" :configuration="configuration"/>
+          </template>
+          <template slot-scope="scope" slot="currency">
+            <el-select v-model="item.form.currency" size="small" placeholder="请选择"  clearable filterable>
+              <el-option v-for="(item,index) in currencyDic" :key="index" :label="item.dictValue"  :value="item.dictValue"></el-option>
+            </el-select>
+          </template>
+       </avue-form>
       </basic-container>
     </div>
     <el-button style="margin-left: 8px" icon="el-icon-plus" size="small" @click="addForm">
@@ -23,7 +23,7 @@
     </el-button>
     <div style="float: right;margin-right: 8px">
       <el-button type="primary" size="small" @click="submit()">请核</el-button>
-      <el-button size="small" @click="">取消</el-button>
+      <el-button size="small" @click="choceFun">取消</el-button>
     </div>
   </div>
 </template>
@@ -39,11 +39,15 @@
         },
         billData:{
           type:Object
+        },
+        choceFun:{
+          type:Function
         }
       },
       data(){
         return{
           form:{
+            form:{}
           },
           list:[],
           currencyDic:[],
@@ -65,13 +69,11 @@
               {
                 label: '合同号',
                 prop: 'accSysNo',
-                // value:this.billData.accSysNo,
                 span: 12,
                 disabled:true,
               },
               {
                 label: '合同日期',
-                // value:this.billData.accDate,
                 type:"date",
                 prop: 'accDate',
                 span: 12,
@@ -79,7 +81,6 @@
               {
                 label: '客户名称',
                 prop: 'corpId',
-                // value:this.billData.corpId,
                 span: 12,
               },
               {
@@ -150,15 +151,13 @@
         this.getWorkDicts("currency").then(res =>{
           this.currencyDic = res.data.data
         })
-        this.list.map(item=>({form:{...this.billData}}))
+        this.form.form = this.billData
         this.addForm();
-        console.log(this.list)
-        // this.list[0].form = this.billData
-
       },
       methods:{
         addForm(){
-          this.list.push(this.form)
+          //去除form身上双向绑定
+          this.list.push(JSON.parse(JSON.stringify(this.form)))
         },
         deleteGroup(index){
           this.list.splice(index, 1);

+ 37 - 10
src/views/basicData/customerInformation/configuration/customerContact.json

@@ -16,7 +16,7 @@
       "label": "编号",
       "prop": "code",
       "index": 1,
-      "width":100,
+      "width":120,
       "rules": [
         {
           "required": true,
@@ -28,7 +28,7 @@
       "label": "名称",
       "prop": "cname",
       "index": 2,
-      "width":100,
+      "width":200,
       "rules": [
         {
           "required": true,
@@ -40,7 +40,7 @@
       "label": "联系方式",
       "prop": "attn",
       "index": 3,
-      "width":100,
+      "width":160,
       "rules": [
         {
           "required": true,
@@ -48,11 +48,12 @@
           "trigger": "blur"
         }
       ]
-    },{
+    },
+    {
       "label": "电话",
       "prop": "tel",
       "index": 4,
-      "width":100,
+      "width":180,
       "rules": [
         {
           "required": true,
@@ -60,11 +61,37 @@
           "trigger": "blur"
         }
       ]
-    },{
+    },
+    {
+      "label": "性别",
+      "prop": "sex",
+      "type": "select",
+      "index": 5,
+      "width":80,
+      "value": "男",
+      "dicData": [
+        {
+          "label": "男",
+          "value": "男"
+        },
+        {
+          "label": "女",
+          "value": "女"
+        }
+      ],
+      "rules": [
+        {
+          "required": true,
+          "message": "请输入性别",
+          "trigger": "blur"
+        }
+      ]
+    },
+    {
       "label": "岗位",
       "prop": "positoin",
-      "index": 5,
-      "width":100,
+      "index": 6,
+      "width":180,
       "rules": [
         {
           "required": true,
@@ -75,8 +102,8 @@
     },{
       "label": "公司地址",
       "prop": "addr",
-      "index": 6,
-      "width":100,
+      "index": 7,
+      "width":260,
       "rules": [
         {
           "required": true,

+ 10 - 3
src/views/purchase/contract/detailsPage.vue

@@ -30,7 +30,7 @@
           type="primary"
           :disabled="disabled"
           @click="editCustomer"
-          :loading="butLoading"
+          :loading="editCustomerLoading"
         >{{form.id?'确认修改':'确认新增'}}
         </el-button>
       </div>
@@ -294,7 +294,7 @@
       <apply-payment
         :billType="billType"
         :billData="billData"
-        :choceFun="!applyPaymentDialog"
+        :choceFun="choceApplyPaymentDialog"
       >
       </apply-payment>
     </el-dialog>
@@ -333,6 +333,7 @@ export default {
       customerContact: {},
       contactsForm: {},
       contactsData: [],
+      editCustomerLoading:false,
       applyPaymentDialog:false,
       dialogVisible:false,
       commodityData: false,
@@ -837,6 +838,7 @@ export default {
             orderFeesList:  orderFeesList,
             orderFilesList: orderFilesList
           };
+          this.editCustomerLoading = true;
           submitData(submitDto).then(res => {
             if(res.data.success){
               this.form.id = res.data.data
@@ -858,9 +860,10 @@ export default {
                   this.orderFilesList = res.data.data.orderFilesList
                   this.oldFilesList = this.deepClone(res.data.data.orderFilesList)
                 }
+                this.editCustomerLoading = false
               })
             }
-          })
+          }).finally()
           setTimeout(() =>{
 
           },1000);
@@ -1028,6 +1031,10 @@ export default {
         }
       })
     },
+    //关闭账单
+    choceApplyPaymentDialog(){
+      this.applyPaymentDialog  = false
+    },
     //刷新
     applicationRefreshChange(){
 

+ 3 - 5
src/views/purchase/contract/index.vue

@@ -111,6 +111,9 @@ export default {
   async created() {
     // this.option = await this.getColumnData(this.getColumnName(36), option);
   },
+  mounted() {
+    this.option.height = window.innerHeight - 310;
+  },
   methods: {
     //删除列表后面的删除按钮触发触发(row, index, done)
     rowDel(row, index, done) {
@@ -262,11 +265,6 @@ export default {
       selectPurchaseList(queryParams).then(res => {
         this.dataList = res.data.data.records
         this.page.total = res.data.data.total
-        if (this.page.total) {
-          this.option.height = window.innerHeight - 350;
-        } else {
-          this.option.height = window.innerHeight - 305;
-        }
       })
       .finally(()=>{
         this.loading = false

+ 26 - 1
src/views/workManagement/main-items/configuration/detailsPage.json

@@ -14,6 +14,22 @@
   "selection": true,
   "refreshBtn": false,
   "menuWidth": 220,
+  "showSummary": true,
+  "summaryText": "合计",
+  "sumColumnList": [
+    {
+      "name": "amount",
+      "type": "sum"
+    },
+    {
+      "name": "serviceCharge",
+      "type": "sum"
+    },
+    {
+      "name": "matMoney",
+      "type": "sum"
+    }
+  ],
   "column": [
     {
       "label": "状态",
@@ -77,7 +93,6 @@
       "label": "合计金额",
       "prop": "amount",
       "width": 120,
-      "cell": true,
       "rules": [
         {
           "required": true,
@@ -87,6 +102,16 @@
       ]
     },
     {
+      "label": "服务费",
+      "prop": "serviceCharge",
+      "width": 120
+    },
+    {
+      "label": "代垫费",
+      "prop": "matMoney",
+      "width": 120
+    },
+    {
       "label": "频率",
       "prop": "frequency",
       "type": "select",

+ 24 - 11
src/views/workManagement/main-items/configuration/mainList.json

@@ -10,7 +10,7 @@
   "searchMenuPosition": "right",
   "searchMenuSpan": 24,
   "tree": true,
-  "selection": true,
+  "selection": false,
   "editBtn": false,
   "viewBtn": false,
   "delBtn": false,
@@ -20,65 +20,75 @@
       "label": "系统编号",
       "prop": "sysNo",
       "index": 1,
-      "width": 120
+      "width": 120,
+      "overHidden": true
     },
     {
       "label": "项目编码",
       "prop": "code",
       "search": true,
       "index": 2,
-      "width": 120
+      "width": 120,
+      "overHidden": true
     },
     {
       "label": "项目名称",
       "prop": "cname",
       "search": true,
       "index": 3,
-      "width": 120
+      "width": 120,
+      "overHidden": true
     },
     {
       "label": "客户名称",
       "prop": "corpId",
       "hide": true,
       "index": 4,
-      "width": 120
+      "width": 120,
+      "overHidden": true
     },
     {
       "label": "应收金额",
       "prop": "debitAmount",
       "index": 5,
-      "width": 120
+      "width": 120,
+      "overHidden": true
     },
     {
       "label": "实收金额",
       "prop": "settlmentAmount",
       "index": 6,
-      "width": 120
+      "width": 120,
+      "overHidden": true
     },
     {
       "label": "责任人",
       "prop": "corpAttn",
       "search": true,
       "index": 7,
-      "width": 120
+      "width": 120,
+      "overHidden": true
     },
     {
       "label": "电话",
       "prop": "corpTel",
       "index": 8,
-      "width": 150
+      "width": 150,
+      "overHidden": true
     },
     {
       "label": "备注",
       "prop": "remark",
       "index": 10,
-      "width": 150
+      "width": 150,
+      "overHidden": true
     },
     {
       "label": "制单人",
       "prop": "createUserName",
       "index": 11,
-      "width": 120
+      "width": 120,
+      "overHidden": true
     },
     {
       "label": "制单日期",
@@ -89,6 +99,7 @@
       "valueFormat": "yyyy-MM-dd",
       "unlinkPanels": true,
       "searchRange": true,
+      "overHidden": true,
       "index": 12,
       "width": 150
     },
@@ -96,12 +107,14 @@
       "label": "最新修改人",
       "prop": "updateUserName",
       "index": 13,
+      "overHidden": true,
       "width": 120
     },
     {
       "label": "最新修改时间",
       "prop": "updateTime",
       "index": 14,
+      "overHidden": true,
       "width": 150
     }
   ]

+ 122 - 1
src/views/workManagement/main-items/detailsPage.vue

@@ -30,7 +30,7 @@
                 </el-select>
                 <selectComponent v-else-if="item.prop === 'corpId'" v-model="form[item.prop]" :configuration="configuration"/>
                 <el-input type="textarea" v-else-if="(item.prop === 'remark')" v-model="form[item.prop]"   size="small" autocomplete="off" placeholder="请输入"></el-input>
-                <el-input type="age" v-else-if="item.prop === 'debitAmount'" v-model="form[item.prop]"  @change="debitChange"  :disabled="item.disabled?true:false" size="small" autocomplete="off" placeholder="请输入">
+                <el-input type="age" v-else-if="item.type === 'unit'" v-model="form[item.prop]"  @change="debitChange"  :disabled="item.disabled?true:false" size="small" autocomplete="off" placeholder="请输入">
                   <template   slot="append">元</template>
                 </el-input>
                 <el-input type="age" v-else v-model="form[item.prop]"  :disabled="item.disabled?true:false" size="small" value="0" autocomplete="off" placeholder="请输入">
@@ -92,6 +92,39 @@
             <span style="margin-left: 12px;padding-top: 2px">{{ row.userName }}</span>
             <el-button v-if="row.$cellEdit" type="text" size="mini" style="float: right" @click="selectUser(row)">选择</el-button>
           </template>
+          <template slot="amount" slot-scope="{ row }">
+            <el-input
+              v-if="row.$cellEdit"
+              v-model="row.amount"
+              placeholder="请输入"
+              size="small"
+              oninput='this.value=this.value.replace(/[^(\d.)]/g,"").replace(/^(\d+)\.(\d\d).*$/, "$1.$2")'
+              @change="totalChange(row,'金额')"
+            ></el-input>
+            <span v-else>{{ row.amount }}</span>
+          </template>
+          <template slot="serviceCharge" slot-scope="{ row }">
+            <el-input
+              v-if="row.$cellEdit"
+              v-model="row.serviceCharge"
+              placeholder="请输入"
+              size="small"
+              oninput='this.value=this.value.replace(/[^(\d.)]/g,"").replace(/^(\d+)\.(\d\d).*$/, "$1.$2")'
+              @change="totalChange(row,'服务')"
+            ></el-input>
+            <span v-else>{{ row.serviceCharge }}</span>
+          </template>
+          <template slot="matMoney" slot-scope="{ row }">
+            <el-input
+              v-if="row.$cellEdit"
+              v-model="row.matMoney"
+              placeholder="请输入"
+              size="small"
+              oninput='this.value=this.value.replace(/[^(\d.)]/g,"").replace(/^(\d+)\.(\d\d).*$/, "$1.$2")'
+              @change="totalChange(row,'代垫')"
+            ></el-input>
+            <span v-else>{{ row.matMoney }}</span>
+          </template>
         </avue-crud>
       </basic-container>
       <containerTitle title="附件上传"></containerTitle>
@@ -230,6 +263,7 @@
   import examineApprove from "@/components/examineApprove/index";
   //对象数组比较
   import { contrastObj,contrastList } from "@/util/contrastData";
+  import _ from "lodash";
 
 
   export default {
@@ -301,6 +335,7 @@
             },{
               label: '合同金额',
               prop: 'debitAmount',
+              type:'unit',
               rules: [
                 {
                   required: true,
@@ -317,6 +352,7 @@
             {
               label: '首付金额',
               prop: 'advanceAmount',
+              type:'unit',
               rules: [
                 {
                   pattern: /(^[1-9]([0-9]+)?(\.[0-9]{1,2})?$)|(^(0){1}$)|(^[0-9]\.[0-9]([0-9])?$)/,
@@ -329,6 +365,7 @@
               label: '已收金额',
               prop: 'settlmentAmount',
               disabled: true,
+              type:'unit',
               rules: [
                 {
                   pattern: /(^[1-9]([0-9]+)?(\.[0-9]{1,2})?$)|(^(0){1}$)|(^[0-9]\.[0-9]([0-9])?$)/,
@@ -339,6 +376,7 @@
             },
             {
               label: '未收金额',
+              type:'unit',
               prop: 'balanceAmount',
               disabled: true,
               rules: [
@@ -350,6 +388,32 @@
               ]
             },
             {
+              label: '总服务费',
+              prop: 'serviceCharge',
+              type:'unit',
+              disabled: true,
+              rules: [
+                {
+                  pattern:/(^[1-9]([0-9]+)?(\.[0-9]{1,2})?$)|(^(0){1}$)|(^[0-9]\.[0-9]([0-9])?$)/,
+                  message: ' ',
+                  trigger: 'blur'
+                }
+              ]
+            },
+            {
+              label: '总代垫费',
+              prop: 'matMoney',
+              type:'unit',
+              disabled: true,
+              rules: [
+                {
+                  pattern:/(^[1-9]([0-9]+)?(\.[0-9]{1,2})?$)|(^(0){1}$)|(^[0-9]\.[0-9]([0-9])?$)/,
+                  message: ' ',
+                  trigger: 'blur'
+                }
+              ]
+            },
+            {
               label: '责任人',
               prop: 'corpAttn',
             }, {
@@ -533,6 +597,44 @@
 
     },
     methods: {
+      //合计
+      totalChange(row,type){
+        let amountList =  this.data.map(item => {
+          if(item.amount){
+            return parseFloat(item.amount);
+          }else return 0
+        });
+        let serviceChargeList =  this.data.map(item => {
+          if(item.serviceCharge){
+            return parseFloat(item.serviceCharge);
+          }else return 0
+        });
+        let matMoneyList =  this.data.map(item => {
+          if(item.matMoney){
+            return parseFloat(item.matMoney);
+          }else return 0
+        });
+        if(type==='金额'){
+          if(this.form.debitAmount){
+            if(this.form.debitAmount < amountList.reduce((n,m) => n + m)){
+              this.$message.error("明细列表合同金额不能大于总金额!")
+            }
+          }
+        }
+        if(type==='服务'){
+          this.form.serviceCharge = serviceChargeList.reduce((n,m) => n + m)
+        }
+        if(type==='代垫'){
+          this.form.matMoney = matMoneyList.reduce((n,m) => n + m)
+        }
+        if(row.serviceCharge && row.matMoney){
+          if(row.amount <  _.add(parseFloat(row.serviceCharge),parseFloat(row.matMoney))){
+            this.$message.error("服务费代垫费不能超过合同金额!")
+            row.serviceCharge = 0;
+            row.matMoney = 0;
+          }
+        }
+      },
       //查询明细
       getProjectDetail(pleaseCheck){
         if(this.id){
@@ -600,6 +702,25 @@
             this.$set(this.form,"balanceAmount",val)
           }
         }
+        // if(this.form.debitAmount){
+        //   if(this.form.serviceCharge && parseFloat(this.form.serviceCharge) > parseFloat(this.form.debitAmount)){
+        //     this.$message.warning('服务费不得大于合同金额!')
+        //     this.$set(this.form,"serviceCharge","");
+        //     return
+        //   }
+        //   if(this.form.matMoney && parseFloat(this.form.matMoney) > parseFloat(this.form.debitAmount)){
+        //     this.$message.warning('代垫费费不得大于合同金额!')
+        //     this.$set(this.form,"matMoney","");
+        //     return
+        //   }
+        //   if(this.form.serviceCharge && this.form.matMoney){
+        //     if(_.add(parseFloat(this.form.serviceCharge),parseFloat(this.form.matMoney))> parseFloat(this.form.debitAmount)){
+        //       this.$message.warning('服务费代垫费总和不得大于合同金额!')
+        //       this.$set(this.form,"serviceCharge","");
+        //       this.$set(this.form,"matMoney","");
+        //     }
+        //   }
+        // }
       },
       //新单
       addMainProject(){

+ 0 - 5
src/views/workManagement/main-items/list.vue

@@ -21,11 +21,6 @@
                    @click="addMainItems">新 单
         </el-button>
         <el-button size="small"
-                   type="success"
-                   @click.stop=""
-        >复制新单
-        </el-button>
-        <el-button size="small"
                    type="info"
                    @click.stop="openReport()"
           >导出报表

+ 55 - 11
src/views/workManagement/receipt/configuration/settleAccounts.json

@@ -8,24 +8,39 @@
   "tip": false,
   "searchShow": true,
   "searchMenuPosition": "right",
-  "searchMenuSpan": 6,
+  "searchMenuSpan": 18,
   "tree": true,
-  "selection": true,
+  "selection": false,
   "editBtn": false,
   "viewBtn": false,
   "delBtn": false,
   "menuWidth": 220,
-  "column": [
+  "showSummary": true,
+  "summaryText": "合计",
+  "sumColumnList": [
     {
-      "label": "系统编号",
-      "prop": "sysNo",
-      "index": 1,
-      "width": 120
+      "name": "debitAmount",
+      "type": "sum"
+    },
+    {
+      "name": "settlmentAmount",
+      "type": "sum"
+    },
+    {
+      "name": "serviceCharge",
+      "type": "sum"
     },
     {
+      "name": "matMoney",
+      "type": "sum"
+    }
+  ],
+  "column": [
+    {
       "label": "项目编码",
       "prop": "code",
       "search": true,
+      "overHidden": true,
       "index": 2,
       "width": 120
     },
@@ -33,25 +48,43 @@
       "label": "项目名称",
       "prop": "cname",
       "search": true,
+      "overHidden": true,
       "index": 3,
       "width": 120
     },
     {
       "label": "客户名称",
-      "prop": "corpId",
-      "hide": true,
+      "prop": "cornName",
+      "overHidden": true,
+      "search": true,
       "index": 4,
       "width": 120
     },
     {
-      "label": "应收金额",
+      "label": "合同金额",
       "prop": "debitAmount",
+      "overHidden": true,
       "index": 5,
       "width": 120
     },
     {
-      "label": "收金额",
+      "label": "收金额",
       "prop": "settlmentAmount",
+      "overHidden": true,
+      "index": 6,
+      "width": 120
+    },
+    {
+      "label": "总服务费",
+      "prop": "serviceCharge",
+      "overHidden": true,
+      "index": 6,
+      "width": 120
+    },
+    {
+      "label": "总代垫费",
+      "prop": "matMoney",
+      "overHidden": true,
       "index": 6,
       "width": 120
     },
@@ -59,42 +92,53 @@
       "label": "责任人",
       "prop": "corpAttn",
       "search": true,
+      "overHidden": true,
       "index": 7,
       "width": 120
     },
     {
       "label": "电话",
       "prop": "corpTel",
+      "overHidden": true,
       "index": 8,
       "width": 150
     },
     {
       "label": "备注",
       "prop": "remark",
+      "overHidden": true,
       "index": 10,
       "width": 150
     },
     {
       "label": "制单人",
       "prop": "createUserName",
+      "overHidden": true,
       "index": 11,
       "width": 120
     },
     {
       "label": "制单日期",
       "prop": "createTime",
+      "type": "date",
+      "overHidden": true,
+      "unlinkPanels": true,
+      "searchRange": true,
+      "search": true,
       "index": 12,
       "width": 150
     },
     {
       "label": "最新修改人",
       "prop": "updateUserName",
+      "overHidden": true,
       "index": 13,
       "width": 120
     },
     {
       "label": "最新修改时间",
       "prop": "updateTime",
+      "overHidden": true,
       "index": 14,
       "width": 150
     }

+ 46 - 11
src/views/workManagement/receipt/configuration/settleAccountsDetailsPage.json

@@ -14,30 +14,51 @@
   "editBtn": false,
   "delBtn": false,
   "menuWidth": 220,
+  "showSummary": true,
+  "summaryText": "合计",
+  "sumColumnList": [
+    {
+      "name": "amount",
+      "type": "sum"
+    },
+    {
+      "name": "serviceCharge",
+      "type": "sum"
+    },
+    {
+      "name": "matMoney",
+      "type": "sum"
+    }
+  ],
   "column": [
     {
       "label": "状态",
-      "prop": "strStatus"
+      "prop": "strStatus",
+      "overHidden": true
     },
     {
       "label": "服务项目",
       "prop": "pname",
+      "overHidden": true,
       "width": 120
     },
     {
       "label": "收费建议",
       "prop": "remarks",
+      "overHidden": true,
       "width": 150
     },
     {
       "label": "承做人",
       "prop": "userName",
+      "overHidden": true,
       "slot": true,
       "width": 180
     },
     {
       "label": "任务部门",
       "prop": "deptid",
+      "overHidden": true,
       "type":"tree",
       "dicUrl": "/api/blade-system/dept/tree?tenantId=096359",
       "props": {
@@ -57,22 +78,14 @@
     {
       "label": "账户名称",
       "prop": "accountName",
-      "width": 120
-    },
-    {
-      "label": "开户银行",
-      "prop": "accountBank",
-      "width": 120
-    },
-    {
-      "label": "银行账号",
-      "prop": "accountNo",
+      "overHidden": true,
       "width": 120
     },
     {
       "label": "结算日期",
       "prop": "payTime",
       "width": 120,
+      "overHidden": true,
       "valueFormat": "yyyy-MM-dd",
       "format": "yyyy-MM-dd",
       "type": "date"
@@ -80,26 +93,41 @@
     {
       "label": "单价",
       "prop": "price",
+      "overHidden": true,
       "width": 120
     },
     {
       "label": "计价单位",
       "prop": "unit",
+      "overHidden": true,
       "width": 120
     },
     {
       "label": "数量",
       "prop": "quantity",
+      "overHidden": true,
       "width": 120
     },
     {
       "label": "合计金额",
       "prop": "amount",
+      "overHidden": true,
+      "width": 120
+    },
+    {
+      "label": "服务费",
+      "prop": "serviceCharge",
+      "width": 120
+    },
+    {
+      "label": "代垫费",
+      "prop": "matMoney",
       "width": 120
     },
     {
       "label": "频率",
       "prop": "frequency",
+      "overHidden": true,
       "type": "select",
       "dicUrl": "/api/blade-system/dict-biz/dictionary?code=frequency",
       "props": {
@@ -111,6 +139,7 @@
     {
       "label": "提醒日",
       "prop": "reminderDay",
+      "overHidden": true,
       "valueFormat": "yyyy-MM-dd HH:mm:ss",
       "format": "yyyy-MM-dd",
       "type": "date",
@@ -119,6 +148,7 @@
     {
       "label": "需求开始日期",
       "prop": "beginTime",
+      "overHidden": true,
       "valueFormat": "yyyy-MM-dd HH:mm:ss",
       "format": "yyyy-MM-dd",
       "type": "date",
@@ -127,6 +157,7 @@
     {
       "label": "需求完成日期",
       "prop": "actualDate",
+      "overHidden": true,
       "valueFormat": "yyyy-MM-dd HH:mm:ss",
       "format": "yyyy-MM-dd",
       "type": "date",
@@ -135,23 +166,27 @@
     {
       "label": "制单人",
       "prop": "createUserName",
+      "overHidden": true,
       "disabled": true,
       "width": 120
     },
     {
       "label": "制单日期",
       "prop": "createTime",
+      "overHidden": true,
       "disabled": true,
       "width": 150
     },
     {
       "label": "最新修改人",
       "prop": "updateUserName",
+      "overHidden": true,
       "width": 120
     },
     {
       "label": "最新修改时间",
       "prop": "updateTime",
+      "overHidden": true,
       "width": 150
     }
   ]

+ 198 - 82
src/views/workManagement/receipt/configuration/statisticalList.json

@@ -9,117 +9,233 @@
   "searchShow": true,
   "searchMenuPosition": "right",
   "tree": true,
-  "selection": true,
+  "searchMenuSpan": 18,
+  "selection": false,
   "viewBtn": true,
   "editBtn": false,
   "delBtn": false,
   "menuWidth": 150,
+  "showSummary": true,
+  "summaryText": "合计",
+  "sumColumnList": [
+    {
+      "name": "amount",
+      "type": "sum"
+    },
+    {
+      "name": "serviceCharge",
+      "type": "sum"
+    },
+    {
+      "name": "matMoney",
+      "type": "sum"
+    }
+  ],
   "column": [
     {
       "label": "客户名称",
-      "prop": "custmerName",
-      "index": 1,
-      "width": 240,
       "search": true,
-      "rules": [
-        {
-          "required": true,
-          "message": "请输入客户名称",
-          "trigger": "blur"
-        }
-      ]
+      "hide": true,
+      "searchOrder": 1,
+      "prop": "cornId"
     },
     {
-      "label": "应收金额",
-      "prop": "Ymoney",
-      "index": 2,
-      "width": 120,
-      "rules": [
-        {
-          "required": true,
-          "message": "请输入应收金额",
-          "trigger": "blur"
-        }
-      ]
+      "label": "任务部门",
+      "search": true,
+      "hide": true,
+      "searchOrder": 3,
+      "type":"tree",
+      "dicUrl": "/api/blade-system/dept/tree?tenantId=096359",
+      "props": {
+        "label": "title",
+        "value": "value"
+      },
+      "prop": "deptid"
     },
     {
-      "label": "实收金额",
-      "prop": "Smoney",
-      "index": 3,
-      "width": 120,
-      "rules": [
+      "label": "状态",
+      "prop": "status",
+      "type": "select",
+      "search": true,
+      "searchOrder": 5,
+      "overHidden": true,
+      "dicData": [
+        {
+          "label": "录入",
+          "value":0
+        },
+        {
+          "label": "已审核",
+          "value":1
+        },
+        {
+          "label": "审核中",
+          "value":2
+        },
+        {
+          "label": "审核通过",
+          "value":3
+        },
         {
-          "required": true,
-          "message": "请输入实收金额",
-          "trigger": "blur"
+          "label": "正在结算",
+          "value":4
+        },
+        {
+          "label": "结算完成",
+          "value":5
+        },
+        {
+          "label": "取消结算",
+          "value":6
         }
       ]
     },
     {
-      "label": "欠费",
-      "prop": "qianfei",
-      "index": 4,
-      "width": 120,
-      "rules": [
-        {
-          "required": true,
-          "message": "请输入欠费",
-          "trigger": "blur"
-        }
-      ]
+      "label": "客户名称",
+      "searchOrder": 1,
+      "prop": "cornName",
+      "overHidden": true,
+      "width": 150
     },
     {
-      "label": "客户状态",
-      "prop": "kehuzt",
-      "index": 5,
-      "width": 150,
+      "label": "服务项目",
+      "prop": "pname",
+      "searchOrder": 2,
       "search": true,
-      "rules": [
-        {
-          "required": true,
-          "message": "请输入客户状态",
-          "trigger": "blur"
-        }
-      ]
+      "overHidden": true,
+      "width": 120
+    },
+    {
+      "label": "承做人",
+      "prop": "userName",
+      "overHidden": true,
+      "width": 120
+    },
+    {
+      "label": "任务部门",
+      "prop": "deptName",
+      "overHidden": true,
+      "width": 120
+    },
+    {
+      "label": "单价",
+      "prop": "price",
+      "overHidden": true,
+      "width": 120
+    },
+    {
+      "label": "计价单位",
+      "prop": "unit",
+      "overHidden": true,
+      "width": 120
+    },
+    {
+      "label": "数量",
+      "prop": "quantity",
+      "overHidden": true,
+      "width": 120
+    },
+    {
+      "label": "合计金额",
+      "prop": "amount",
+      "overHidden": true,
+      "width": 120
+    },
+    {
+      "label": "服务费",
+      "prop": "serviceCharge",
+      "overHidden": true,
+      "width": 120
+    },
+    {
+      "label": "代垫费",
+      "prop": "matMoney",
+      "overHidden": true,
+      "width": 120
     },
     {
       "label": "备注",
-      "prop": "beizhu",
-      "index": 6,
-      "width": 220,
-      "rules": [
-        {
-          "required": true,
-          "message": "请输入备注",
-          "trigger": "blur"
-        }
-      ]
+      "prop": "remarks",
+      "overHidden": true,
+      "width": 180
+    },
+    {
+      "label": "账户名称",
+      "prop": "accountName",
+      "overHidden": true,
+      "width": 120
+    },
+    {
+      "label": "结算日期",
+      "prop": "payTime",
+      "type": "date",
+      "unlinkPanels": true,
+      "searchRange": true,
+      "search": true,
+      "searchOrder": 4,
+      "format": "yyyy-MM-dd",
+      "valueFormat": "yyyy-MM-dd",
+      "overHidden": true,
+      "width":150
+    },
+
+    {
+      "label": "频率",
+      "prop": "frequency",
+      "overHidden": true,
+      "width": 120
+    },
+    {
+      "label": "提醒日",
+      "prop": "reminderDay",
+      "valueFormat": "yyyy-MM-dd HH:mm:ss",
+      "format": "yyyy-MM-dd",
+      "overHidden": true,
+      "type": "date",
+      "width": 150
+    },
+    {
+      "label": "需求开始日期",
+      "prop": "beginTime",
+      "valueFormat": "yyyy-MM-dd HH:mm:ss",
+      "format": "yyyy-MM-dd",
+      "overHidden": true,
+      "type": "date",
+      "width": 150
+    },
+    {
+      "label": "需求完成日期",
+      "prop": "actualDate",
+      "valueFormat": "yyyy-MM-dd HH:mm:ss",
+      "format": "yyyy-MM-dd",
+      "overHidden": true,
+      "type": "date",
+      "width": 150
+    },
+    {
+      "label": "制单人",
+      "prop": "createUserName",
+      "overHidden": true,
+      "width": 120
+    },
+    {
+      "label": "制单日期",
+      "prop": "createTime",
+      "type": "date",
+      "overHidden": true,
+      "width": 150
     },
     {
       "label": "最新修改人",
-      "prop": "zuixinxgr",
-      "index": 7,
-      "width": 150,
-      "rules": [
-        {
-          "required": true,
-          "message": "请输入最新修改人",
-          "trigger": "blur"
-        }
-      ]
+      "prop": "updateUserName",
+      "overHidden": true,
+      "width": 120
     },
     {
       "label": "最新修改时间",
-      "prop": "zuixinxgsj",
-      "index": 8,
-      "width": 220,
-      "rules": [
-        {
-          "required": true,
-          "message": "请输入最新修改时间",
-          "trigger": "blur"
-        }
-      ]
+      "prop": "updateTime",
+      "overHidden": true,
+      "width": 150
     }
   ]
 }

+ 1 - 7
src/views/workManagement/receipt/settleAccounts.vue

@@ -6,13 +6,11 @@
       :option="option"
       :page.sync="page"
       :table-loading="loading"
-      :before-open="beforeOpen"
       @row-del="rowDel"
       @size-change="sizeChange"
       @current-change="currentChange"
       @search-change="searchChange"
       @refresh-change="refreshChange"
-      @cell-dblclick="cellDblclick"
       @on-load="getList"
       @saveColumn="saveColumn"
     >
@@ -21,7 +19,7 @@
           icon="el-icon-printer"
           size="small"
           type="primary"
-          @click.stop="openReport()"
+          @click.stop=""
         >报 表
         </el-button>
       </template>
@@ -107,10 +105,6 @@
           done(row);
         });
       },
-      cellDblclick(row, column, cell, event) {
-        console.log(row, column, cell, event);
-        this.$refs.crud.rowEdit(row);
-      },
       saveColumn(row, column) {
         console.log(row, column);
       },

+ 34 - 1
src/views/workManagement/receipt/settleAccountsDetailsPage.vue

@@ -22,6 +22,9 @@
                 <el-select v-else-if="item.prop === 'paymentType'" :disabled="item.disabled?true:false" style="width: 100%" v-model="form[item.prop]" size="small" placeholder="请选择" clearable filterable >
                   <el-option v-for="(item,index) in paymentTerm" :key="index" :label="item.dictValue" :value="item.dictValue"></el-option>
                 </el-select>
+                <el-input type="age" v-else-if="item.type === 'unit'" v-model="form[item.prop]" :disabled="item.disabled?true:false" size="small" autocomplete="off" placeholder="请输入">
+                  <template   slot="append">元</template>
+                </el-input>
                 <selectComponent v-else-if="item.prop === 'corpId'" :disabled="item.disabled?true:false"  v-model="form[item.prop]" :configuration="configuration"/>
                 <el-input type="textarea" v-else-if="(item.prop === 'remark'||item.prop === 'settlementRemark')"v-model="form[item.prop]" :disabled="item.disabled && item.prop === 'remark'?true:false"  size="small" autocomplete="off" placeholder="请输入"></el-input>
                 <el-input type="age" v-else v-model="form[item.prop]" :disabled="item.disabled?true:false" size="small" autocomplete="off" placeholder="请输入"></el-input>
@@ -198,6 +201,7 @@
             },{
               label: '合同金额',
               prop: 'debitAmount',
+              type:'unit',
               disabled: true,
               rules: [
                 {
@@ -210,6 +214,7 @@
             {
               label: '首付金额',
               prop: 'advanceAmount',
+              type:'unit',
               disabled: true,
               rules: [
                 {
@@ -222,6 +227,7 @@
             {
               label: '未收金额',
               prop: 'balanceAmount',
+              type:'unit',
               disabled: true,
               rules: [
                 {
@@ -234,6 +240,7 @@
             {
               label: '已收金额',
               prop: 'settlmentAmount',
+              type:'unit',
               disabled: true,
               rules: [
                 {
@@ -244,6 +251,32 @@
               ]
             },
             {
+              label: '服务费',
+              prop: 'serviceCharge',
+              type:'unit',
+              disabled: true,
+              rules: [
+                {
+                  pattern:/(^[1-9]([0-9]+)?(\.[0-9]{1,2})?$)|(^(0){1}$)|(^[0-9]\.[0-9]([0-9])?$)/,
+                  message: ' ',
+                  trigger: 'blur'
+                }
+              ]
+            },
+            {
+              label: '代垫费',
+              prop: 'matMoney',
+              type:'unit',
+              disabled: true,
+              rules: [
+                {
+                  pattern:/(^[1-9]([0-9]+)?(\.[0-9]{1,2})?$)|(^(0){1}$)|(^[0-9]\.[0-9]([0-9])?$)/,
+                  message: ' ',
+                  trigger: 'blur'
+                }
+              ]
+            },
+            {
               label: '责任人',
               prop: 'corpAttn',
               disabled: true
@@ -374,7 +407,7 @@
           }
         })
       },
-      //结算
+      //取消结算
       callAccount(row,index){
         this.$confirm("确认取消结算此明细?", {
           confirmButtonText: "确定",

+ 55 - 93
src/views/workManagement/receipt/statisticalList.vue

@@ -2,39 +2,67 @@
   <basic-container>
     <avue-crud :option="option"
                :data="dataList"
+               :table-loading="loading"
                ref="crud"
                v-model="form"
                :page.sync="page"
-               @row-del="rowDel"
-               @row-update="rowUpdate"
-               @row-save="rowSave"
+               :search.sync="search"
                @search-change="searchChange"
                @search-reset="searchReset"
                @selection-change="selectionChange"
                @current-change="currentChange"
                @size-change="sizeChange"
                @refresh-change="refreshChange"
-               @cell-dblclick="cellDblclick"
                @on-load="onLoad">
+      <template slot="menuLeft">
+        <el-button
+          icon="el-icon-printer"
+          size="small"
+          type="primary"
+          @click.stop="openReport()"
+        >报 表
+        </el-button>
+      </template>
+      <template slot="cornIdSearch">
+        <select-component
+          v-model="search.cornId"
+          :configuration="configuration"
+        ></select-component>
+      </template>
+
+
     </avue-crud>
   </basic-container>
 </template>
 
 <script>
   import option from "./configuration/statisticalList.json";
+  import { getFlowList } from "@/api/workManagement/mainProject";
 
   export default {
     name: "statisticalList",
     data() {
       return {
+        loading:false,
         form: {},
+        search:{},
         option: option,
         parentId:0,
         dataList: [],
         page: {
-          pageSize: 10,
-          pagerCount: 5,
+          currentPage: 1,
           total: 0,
+          pageSize: 10
+        },
+        configuration:{
+          multipleChoices:false,
+          multiple:false,
+          disabled:false,
+          searchShow:true,
+          collapseTags:false,
+          clearable:true,
+          placeholder:'请点击右边按钮选择',
+          dicData:[]
         },
         query:{}
       }
@@ -43,56 +71,22 @@
 
     },
     mounted() {
-      option.height = window.innerHeight - 340 ;
+      option.height = window.innerHeight - 320 ;
     },
     methods: {
-      //删除列表后面的删除按钮触发触发(row, index, done)
-      rowDel(row, index, done) {
-        this.$confirm("确定将选择数据删除?", {
-          confirmButtonText: "确定",
-          cancelButtonText: "取消",
-          type: "warning"
-        }).then(() => {
-          this.$message({
-            type: "success",
-            message: "操作成功!"
-          });
-          // 数据回调进行刷新
-          done();
-        });
+      rowDel() {
+
       },
       //修改时的修改按钮点击触发
-      rowUpdate(row, index, done, loading) {
-        setTimeout(() => {
-          this.$message.success("修改成功");
-          loading();
-          done();
-        }, 1000);
-        // typeSave(row).then(() => {
-        //   this.$message({
-        //     type: "success",
-        //     message: "操作成功!"
-        //   });
-        //   // 数据回调进行刷新
-        //   done(row);
-        // }, error => {
-        //   window.console.log(error);
-        //   loading();
-        // });
+      rowUpdate() {
+
       },
       //新增修改时保存触发
-      rowSave(row, done, loading) {
-        setTimeout(() => {
-          this.$message.success("保存成功");
-          loading();
-          done();
-        }, 1000);
+      rowSave() {
+
       },
       //点击搜索按钮触发
       searchChange(params, done) {
-        this.query = params;
-        this.page.currentPage = 1;
-        params.parentId = 0
         this.onLoad(this.page, params);
         done()
       },
@@ -112,54 +106,22 @@
         console.log('1')
       },
       onLoad(page, params = {}) {
-        const {createTimeA} = this.query;
-        let values = {
-          ...params,
-          size:this.page.pageSize,
-          current:this.page.currentPage
-        };
-        if (createTimeA) {
-          values = {
-            ...params,
-            createTime: createTimeA[0] + ' 00:00:00',
-            endTime: createTimeA[1] + ' 23:59:59',
-            ...this.query,
-            size:this.page.pageSize,
-            current:this.page.currentPage
-          };
-          values.createTimeA = null;
+        if (params.payTime != undefined) {  //结算
+          params.payStartTime = params.payTime[0]+ " " + "00:00:00";
+          params.payEndTime = params.payTime[1] + " " + "23:59:59";
+          this.$delete(params,'payTime')
         }
-        values.parentId = 0;
-        this.dataList = [
-          {
-            custmerName:"途宝",
-            Ymoney:"2100",
-            Smoney:"1500",
-            qianfei:"600",
-            kehuzt:"暂存",
-            beizhu:"你好",
-            zuixinxgr:"LOL",
-            zuixinxgsj:"3030-10-10",
-          },
-          {
-            custmerName:"途宝",
-            Ymoney:"2100",
-            Smoney:"1500",
-            qianfei:"600",
-            kehuzt:"暂存",
-            beizhu:"你好",
-            zuixinxgr:"LOL",
-            zuixinxgsj:"3030-10-10",
-          }
-        ]
-        this.page.total = 1
-        // customerList(values).then(res => {
-        //
-        // })
+        if(!params.status){
+            params.status = "0,1,2,3,4,5,6";
+        }
+        this.loading = true
+        getFlowList(page.currentPage, page.pageSize,params).then(res =>{
+          this.dataList = res.data.data.records
+          this.page.total = res.data.data.total
+        }).finally(()=>{
+          this.loading = false
+        })
       },
-      cellDblclick(row, column, cell, event) {
-        this.$refs.crud.rowEdit(row);
-      }
     }
   }
 </script>

+ 46 - 44
src/views/workManagement/task/configuration/mainList.json

@@ -9,7 +9,7 @@
   "searchMenuPosition": "right",
   "searchMenuSpan": 18,
   "tree": true,
-  "selection": true,
+  "selection": false,
   "addBtn": false,
   "viewBtn": false,
   "editBtn": false,
@@ -21,108 +21,103 @@
       "label": "状态",
       "hide": true,
       "prop": "status",
+      "search": true,
       "width": 120,
       "type": "select",
-      "dicUrl": "/api/blade-system/dict-biz/dictionary?code=affair_status",
-      "props": {
-        "label": "dictValue",
-        "value": "dictKey"
-      }
+      "dicData": [
+        {
+          "label": "正在结算",
+          "value": "4"
+        },
+        {
+          "label": "结算完成",
+          "value": "5"
+        }
+      ]
     },
     {
       "label": "状态",
       "prop": "strStatus",
       "type": "select",
-      "dicData": [
-        {
-        "label": "进行中",
-        "value": "进行中"
-       },
-        {
-          "label": "已完成",
-          "value": "已完成"
-        }
-      ],
-      "search": true,
+      "overHidden": true,
       "searchOrder": 5,
       "width": 120
     },
     {
       "label": "客户名称",
+      "overHidden": true,
+      "search": true,
       "prop": "cornName",
+      "searchOrder": 1,
       "width": 220
     },
     {
       "label": "服务项目",
       "prop": "pname",
+      "overHidden": true,
+      "width": 120
+    },
+    {
+      "label": "承做人",
+      "prop": "userName",
       "search": true,
-      "searchOrder": 1,
+      "searchOrder": 2,
+      "overHidden": true,
       "width": 120
     },
     {
-      "label": "收费建议",
-      "prop": "remarks",
-      "width": 150
+      "label": "任务部门",
+      "prop": "deptName",
+      "overHidden": true,
+      "width": 120
     },
     {
       "label": "单价",
       "prop": "price",
+      "overHidden": true,
       "width": 120
     },
     {
       "label": "计价单位",
       "prop": "unit",
+      "overHidden": true,
       "width": 120
     },
     {
       "label": "数量",
       "prop": "quantity",
+      "overHidden": true,
       "width": 120
     },
     {
       "label": "合计金额",
       "prop": "amount",
+      "overHidden": true,
       "width": 120
     },
     {
       "label": "频率",
       "prop": "frequency",
+      "overHidden": true,
       "width": 120
     },
     {
       "label": "提醒日",
       "prop": "reminderDay",
       "valueFormat": "timestamp",
+      "overHidden": true,
       "type": "date",
       "width": 150
     },
     {
-      "label": "任务部门",
-      "prop": "deptid",
-      "search": true,
-      "type":"tree",
-      "dicUrl": "/api/blade-system/dept/tree?tenantId=096359",
-      "props": {
-        "label": "title",
-        "value": "value"
-      },
-      "cell": true,
-      "slot": true,
-      "searchOrder": 2,
-      "width": 150
-    },
-    {
-      "label": "承做人",
-      "prop": "userName",
-      "slot": true,
-      "width": 180
-    },
-    {
       "label": "需求开始日期",
       "prop": "beginTime",
       "valueFormat": "yyyy-MM-dd HH:mm:ss",
       "type": "date",
+      "unlinkPanels": true,
+      "searchRange": true,
       "search": true,
+      "overHidden": true,
       "searchOrder": 3,
       "width": 150,
       "cell": true
@@ -133,6 +128,9 @@
       "valueFormat": "yyyy-MM-dd HH:mm:ss",
       "type": "date",
       "search": true,
+      "unlinkPanels": true,
+      "searchRange": true,
+      "overHidden": true,
       "searchOrder": 4,
       "width": 150,
       "cell": true
@@ -141,23 +139,27 @@
       "label": "制单人",
       "prop": "createUserName",
       "disabled": true,
+      "overHidden": true,
       "width": 120
     },
     {
       "label": "制单日期",
       "prop": "createTime",
       "disabled": true,
+      "overHidden": true,
       "width": 150
     },
     {
       "label": "最新修改人",
       "prop": "updateUserName",
-      "width": 120
+      "width": 120,
+      "overHidden": true
     },
     {
       "label": "最新修改时间",
       "prop": "updateTime",
-      "width": 150
+      "width": 150,
+      "overHidden": true
     }
   ]
 }