Browse Source

Merge branch 'dev' of http://git.echepei.com/caojunjie/Smart_platform_ui into dev

QuKatie 4 years ago
parent
commit
3951228265
41 changed files with 1542 additions and 203 deletions
  1. 13 0
      src/api/basicData/inventoryAccount.js
  2. 18 0
      src/api/basicData/message.js
  3. 9 0
      src/api/financialManagement/paymentRequest.js
  4. 8 0
      src/api/maintenance/integral.js
  5. 1 0
      src/components/bill/billApplication.vue
  6. 1 0
      src/components/bill/billDetailList.vue
  7. 80 31
      src/components/finance/config/option.json
  8. 315 0
      src/components/finance/financialAccount.vue
  9. 106 0
      src/components/messageSend/main.vue
  10. 8 0
      src/enums/column-name.js
  11. 3 0
      src/page/index/tags.vue
  12. 16 1
      src/router/views/index.js
  13. 1 0
      src/store/getters.js
  14. 11 1
      src/store/modules/ifdetail.js
  15. 25 0
      src/views/basicData/customerInformation/detailsPageEdit.vue
  16. 29 6
      src/views/businessManagement/deliveryNotice/detailsPageEdit.vue
  17. 1 1
      src/views/businessManagement/deliveryNotice/index.vue
  18. 49 0
      src/views/businessManagement/inventoryAccount/configuration/detail.json
  19. 146 0
      src/views/businessManagement/inventoryAccount/detail.vue
  20. 66 32
      src/views/businessManagement/inventoryAccount/index.vue
  21. 56 9
      src/views/businessManagement/purchaseOrder/detailsPageEdit.vue
  22. 38 17
      src/views/businessManagement/purchaseOrder/index.vue
  23. 12 5
      src/views/businessManagement/receipt/detailsPageEdit.vue
  24. 1 1
      src/views/businessManagement/receipt/index.vue
  25. 42 17
      src/views/businessManagement/salesOrder/detailsPageEdit.vue
  26. 17 9
      src/views/businessManagement/salesOrder/index.vue
  27. 0 1
      src/views/financialManagement/paymentSettle/paymentSettleDetailsPage.vue
  28. 38 8
      src/views/financialManagement/receiptSettle/receiptSettleDetailsPage.vue
  29. 14 3
      src/views/maintenance/integral/config/mainList.json
  30. 99 4
      src/views/maintenance/integral/index.vue
  31. 4 1
      src/views/maintenance/overpayment/index.vue
  32. 55 0
      src/views/maintenance/rebate/config/mainList.json
  33. 164 0
      src/views/maintenance/rebate/index.vue
  34. 23 2
      src/views/purchase/contract/detailsPage.vue
  35. 8 8
      src/views/workManagement/main-items/detailsPage.vue
  36. 8 2
      src/views/workManagement/main-items/list.vue
  37. 43 37
      src/views/workManagement/performanceAnalysis/config/clientList.json
  38. 4 0
      src/views/workManagement/performanceAnalysis/config/mainList.json
  39. 6 4
      src/views/workManagement/performanceAnalysis/index.vue
  40. 1 0
      src/views/workManagement/receipt/configuration/statisticalList.json
  41. 3 3
      src/views/workManagement/receipt/statisticalList.vue

+ 13 - 0
src/api/basicData/inventoryAccount.js

@@ -44,3 +44,16 @@ export function selectJKGoodsNum(data) {
     params: data
   })
 }
+
+// 库存账查询锁定库存订单信息
+export const getStock = (current, size, params) => {
+  return request({
+    url: '/api/blade-purchase-sales/order/ListMessage',
+    method: 'get',
+    params: {
+      ...params,
+      current,
+      size,
+    }
+  })
+}

+ 18 - 0
src/api/basicData/message.js

@@ -0,0 +1,18 @@
+import request from '@/router/axios';
+
+// 发送消息(单人)
+export function sendMessage(data) {
+  return request({
+    url: '/api/blade-client/message/save',
+    method: 'post',
+    data: data
+  })
+}
+// 发送消息(多人)
+export function sendManyMessage(data) {
+  return request({
+    url: '/api/blade-client/message/batchSave',
+    method: 'post',
+    data: data
+  })
+}

+ 9 - 0
src/api/financialManagement/paymentRequest.js

@@ -121,3 +121,12 @@ export const getlistBankBy = (corpsId) => {
   })
 }
 
+// 明细删除
+export function deleteDetail(data) {
+  return request({
+    url: '/api/trade-finance/items/remove',
+    method: 'post',
+    params: data
+  })
+}
+

+ 8 - 0
src/api/maintenance/integral.js

@@ -27,3 +27,11 @@ export function integralDetail(data) {
     params: data
   })
 }
+// 积分主表新增修改
+export function updateList(data) {
+  return request({
+    url: '/api/blade-mocha-item/businesspoints/submit',
+    method: 'post',
+    data: data
+  })
+}

+ 1 - 0
src/components/bill/billApplication.vue

@@ -140,6 +140,7 @@
           params.createEndDate = params.createTime[1] + " " + "23:59:59";
           this.$delete(params,'createTime')
         }
+        params.flag = 1
         getBillList(page.currentPage, page.pageSize,params).then(res=>{
           this.dataList = res.data.data.records
           this.page.total = res.data.data.total

+ 1 - 0
src/components/bill/billDetailList.vue

@@ -98,6 +98,7 @@
           ...this.params
         }
         params.billType = this.billType
+        params.flag = 1
         getBillList(page.currentPage, page.pageSize,params).then(res=>{
           this.data = res.data.data.records
           this.page.total = res.data.data.total

+ 80 - 31
src/components/finance/config/option.json

@@ -9,7 +9,8 @@
   "searchMenuPosition": "right",
   "searchMenuSpan": 18,
   "tree": true,
-  "selection": true,
+  "refreshBtn": false,
+  "selection": false,
   "addBtn": false,
   "viewBtn": false,
   "editBtn": false,
@@ -19,85 +20,133 @@
   "column": [
     {
       "label": "合同号",
-      "prop": "accSysNo",
+      "prop": "srcOrderno",
+      "overHidden": true,
       "index": 1,
-      "cell": true,
-      "width": 220
-    },
-    {
-      "label": "合同日期",
-      "prop": "accDate",
-      "index": 2,
-      "cell": true,
-      "width": 220
+      "width": 150
     },
     {
       "label": "客户名称",
       "prop": "corpId",
+      "overHidden": true,
       "index": 3,
-      "cell": true,
-      "width": 220
+      "width": 180,
+      "rules": [
+        {
+          "required": true,
+          "message": " ",
+          "trigger": "blur"
+        }
+      ]
     },
     {
       "label": "费用名称",
       "prop": "costType",
+      "overHidden": true,
       "index": 4,
-      "cell": true,
-      "width": 220
+      "width": 180,
+      "rules": [
+        {
+          "required": true,
+          "message": " ",
+          "trigger": "blur"
+        }
+      ]
     },
     {
-      "label": "单价",
-      "prop": "price",
+      "label": "合同日期",
+      "prop": "accDate",
+      "type": "date",
+      "overHidden": true,
       "index": 5,
       "cell": true,
-      "width": 120
+      "width": 150,
+      "rules": [
+        {
+          "required": true,
+          "message": " ",
+          "trigger": "blur"
+        }
+      ]
+    },
+    {
+      "label": "提单号",
+      "prop": "billNo",
+      "overHidden": true,
+      "index": 5,
+      "width": 150
     },
     {
-      "label": "数量",
-      "prop": "quantity",
-      "value": 1,
+      "label": "金额",
+      "prop": "amount",
+      "overHidden": true,
       "index": 6,
       "cell": true,
-      "width": 150
+      "width": 120,
+      "rules": [
+        {
+          "required": true,
+          "message": " ",
+          "trigger": "blur"
+        }
+      ]
     },
     {
-      "label": "计价单次",
-      "prop": "unit",
+      "label": "单价",
+      "prop": "price",
+      "overHidden": true,
       "index": 7,
       "cell": true,
       "width": 120
     },
     {
-      "label": "金额",
-      "prop": "amount",
+      "label": "计价单位",
+      "prop": "unit",
+      "overHidden": true,
       "index": 8,
-      "cell": true,
       "width": 120
     },
     {
       "label": "币别",
       "prop": "currency",
+      "overHidden": true,
       "index": 9,
-      "cell": true,
-      "width": 120
+      "width": 120,
+      "rules": [
+        {
+          "required": true,
+          "message": " ",
+          "trigger": "blur"
+        }
+      ]
     },
     {
       "label": "汇率",
       "prop": "exchangeRate",
+      "overHidden": true,
       "index": 10,
       "cell": true,
-      "width": 120
+      "width": 120,
+      "rules": [
+        {
+          "required": true,
+          "message": " ",
+          "trigger": "blur"
+        }
+      ]
     },
     {
       "label": "税率",
       "prop": "taxRate",
+      "overHidden": true,
       "index": 11,
-      "cell": true,
+      "value": 0,
       "width": 120
     },
     {
       "label": "备注",
       "prop": "remarks",
+      "overHidden": true,
       "index": 12,
       "cell": true,
       "width": 150

+ 315 - 0
src/components/finance/financialAccount.vue

@@ -0,0 +1,315 @@
+<template>
+  <div>
+    <avue-crud
+      ref="crud"
+      :data="data"
+      :option="option"
+      :table-loading="loading"
+      @row-update="rowUpdate"
+      @row-del="rowDel"
+      @saveColumn="saveColumn"
+      @resetColumn="resetColumn"
+    >
+      <template slot="menuLeft" slot-scope="{size}">
+        <el-button type="primary"
+                   icon="el-icon-plus"
+                   size="small"
+                   :loading="submitButton"
+                   @click="entering"
+        >录入
+        </el-button>
+      </template>
+      <template slot-scope="{row,index}" slot="menu">
+<!--        <el-button-->
+<!--          type="text"-->
+<!--          size="small"-->
+<!--          icon="el-icon-edit"-->
+<!--          @click="rowCell(row,index)"-->
+<!--        >{{ row.$cellEdit ? '修改完成' : '修改' }}-->
+<!--        </el-button>-->
+        <el-button
+          type="text"
+          icon="el-icon-delete"
+          size="small"
+          @click="rowDel(row,index)"
+        >删除
+        </el-button>
+      </template>
+      <template slot-scope="{row,index}" slot="corpId">
+        <span v-if="row.$cellEdit" class="required_fields" style="float: left;line-height: 32px">*</span>
+        <crop-select
+          v-if="row.$cellEdit"
+          v-model="corpId"
+          corpType="KG"
+          style="width: 100%"
+        ></crop-select>
+      </template>
+      <template slot-scope="{row,index}" slot="costType">
+        <span v-if="row.$cellEdit" class="required_fields">*</span>
+        <breakdown-select
+          v-if="row.$cellEdit"
+          v-model="row.costType"
+          style="width: 90%"
+          :configuration="configuration">
+        </breakdown-select>
+        <span v-else>{{ row.costType }}</span>
+      </template>
+      <template slot-scope="{row,index}" slot="billNo">
+        <el-select placeholder="请选择"
+                   v-if="row.$cellEdit"
+                   v-model="row.billNo"
+                   size="small"
+                   filterable
+                   allow-create
+                   default-first-option
+                   clearable>
+          <el-option
+            v-for="item in row.billNoList"
+            :key="item"
+            :label="item"
+            :value="item"
+          ></el-option>
+        </el-select>
+        <span v-else>{{ row.billNo }}</span>
+      </template>
+      <template slot-scope="{row,index}" slot="taxRate">
+        <el-input
+          v-model="row.taxRate"
+          v-if="row.$cellEdit"
+          size="small"
+          oninput='this.value=this.value.replace(/[^(\d.)]/g,"").replace(/^(\d+)\.(\d\d\d\d\d\d).*$/, "$1.$2")'
+          autocomplete="off"
+        >
+          <i slot="suffix" style="margin-right: 10px;top:6px">%</i>
+        </el-input>
+        <span v-else>{{ row.taxRate }}</span>
+      </template>
+      <template slot-scope="{row,index}" slot="currency">
+        <span v-if="row.$cellEdit" class="required_fields">*</span>
+        <el-select v-if="row.$cellEdit" v-model="row.currency" size="small" placeholder="请选择" style="width: 90%" @change="currencyChange(row)" clearable filterable>
+          <el-option v-for="(item,index) in currencyDic" :key="index" :label="item.dictValue"  :value="item.dictValue"></el-option>
+        </el-select>
+        <span v-else>{{ row.currency }}</span>
+      </template>
+      <template slot-scope="{row,index}" slot="unit">
+        <span v-if="row.$cellEdit" class="required_fields">*</span>
+        <el-select  v-if="row.$cellEdit" v-model="row.unit" size="small" style="width: 90%" placeholder="请选择" clearable filterable>
+          <el-option v-for="(item,index) in unitDic" :key="index" :label="item.dictValue"  :value="item.dictValue"></el-option>
+        </el-select>
+        <span v-else>{{ row.unit }}</span>
+      </template>
+    </avue-crud>
+    <div class="dialogButton">
+      <el-button size="small" :loading="submitButton" @click="$emit('choceFun')">取消</el-button>
+      <el-button type="primary" size="small" :loading="submitButton" @click="submit()">确定</el-button>
+    </div>
+  </div>
+</template>
+
+<script>
+  import {applyLoan, paymentApply} from "@/api/financialManagement/paymentRequest";
+  import option from "./config/option.json"
+  export default {
+    name: "financialAccount",
+    props: {
+      billType: {
+        type: String
+      },
+      billData: {
+        type: Object
+      },
+      choceFun: {
+        type: Function
+      },
+      arrList: {
+        type: Array,
+        default: []
+      },
+    },
+    data(){
+      return {
+        data: [],
+        corpId:'',
+        option:option,
+        loading:false,
+        submitButton:false,
+        currencyDic:[],
+        unitDic:[],
+        configuration: {
+          multipleChoices: false,
+          multiple: false,
+          disabled: true,
+          searchShow: true,
+          collapseTags: false,
+          placeholder: '请点击右边按钮选择',
+          dicData: []
+        },
+      }
+    },
+    created() {
+      //币别
+      this.getWorkDicts("currency").then(res => {
+        this.currencyDic = res.data.data
+      })
+      this.getWorkDicts("unit").then(res => {
+        this.unitDic = res.data.data
+      })
+    },
+    mounted() {
+      this.init()
+    },
+    watch:{
+
+    },
+    methods:{
+      init(){
+        if(this.arrList.length === 0){
+          this.corpId = this.billData.corpId
+          this.$refs.crud.rowCellAdd(this.billData);
+        }else{
+          this.billData = this.arrList[0]
+          this.corpId = this.arrList[0].corpId
+          this.arrList.forEach(item=>{
+            this.$refs.crud.rowCellAdd(item);
+          })
+        }
+
+        //删除 提单号
+        if(this.billData.optionType !== "JK"){
+          this.option.column.forEach(item =>{
+            if(item.prop === "billNo"){
+              item.hide = true
+            }else{
+              item.hide = false
+            }
+          })
+        }
+      },
+      currencyChange(row){
+        this.currencyDic.forEach(item =>{
+          if(item.dictValue === row.currency){
+            row.exchangeRate = item.remark
+          }
+        })
+      },
+      rowCell(row,index){
+        this.$refs.crud.rowCell(row, index)
+      },
+      rowDel(row,index){
+        this.$confirm("确定将选择数据删除?", {
+          confirmButtonText: "确定",
+          cancelButtonText: "取消",
+          type: "warning"
+        }).then(() => {
+            this.data.splice(index, 1);
+         })
+      },
+      rowUpdate(row, index, done, loading) {
+        done(row);
+      },
+      entering(){
+        if(this.data.length !== 0){
+          //取第一条数据的 合同号 以及客户
+          let params = {
+            ...this.billData,
+            srcOrderno:this.data[0].srcOrderno,
+            corpId:this.data[0].corpId
+          }
+          this.$refs.crud.rowCellAdd(params);
+        }else{
+          this.$refs.crud.rowCellAdd(this.billData);
+        }
+      },
+      submit(){
+        for(let i = 0;i<this.data.length;i++){
+          if (this.corpId === (null || "")) {
+            return this.$message.error(`请输入第${i + 1}行的客户`);
+          }
+          if (this.data[i].costType === (null || "")) {
+            return this.$message.error(`请输入第${i + 1}行的费用名称`);
+          }
+          if (this.data[i].accDate === (null || "")) {
+            return this.$message.error(`请输入第${i + 1}行的合同日期`);
+          }
+          if (this.data[i].amount === (null || "")) {
+            return this.$message.error(`请输入第${i + 1}行的金额`);
+          }
+          if (this.data[i].currency === (null || "")) {
+            return this.$message.error(`请输入第${i + 1}行的币别`);
+          }
+          if (this.data[i].exchangeRate === (null || "")) {
+            return this.$message.error(`请输入第${i + 1}行的汇率`);
+          }
+          if (this.data[i].taxRate === (null || "")) {
+            return this.$message.error(`请输入第${i + 1}行的税率`);
+          }
+        }
+
+        this.submitButton = true
+        const itemsList = this.data.map(item => {
+          item.corpId = this.corpId;
+          item.tradeType = this.billData.optionType
+          item.srcType = 1
+          return item
+        })
+        const params = {
+          billType : this.billType,
+          DC : this.billData.itemType === "采购"?"C":"D",     //账单明细会根据D C区分采购 销售搜索
+          itemsList: itemsList
+        }
+        // 采购申请货款   销售申请退款 都会走申请 走审核   => 付款申请
+        if(this.billType === "申请"){
+          applyLoan(params).then(res =>{
+            if(res.data.success){
+              this.$message.success("操作成功!")
+              this.$emit("choceFun");
+              //跳转付款申请页面
+              if(this.$store.getters.pqStatus){
+                this.$alert("无法自动跳,因为付费申请页面已存在!", "温馨提示", {
+                  confirmButtonText: "确定",
+                  type: 'warning',
+                  callback: action => {
+                  }
+                });
+              }else{
+                //关闭一下存在的列表页  跳转
+                this.$router.$avueRouter.closeTag('/financialManagement/paymentRequest/index');
+                this.$router.push({
+                  path: "/financialManagement/paymentRequest/index",
+                  query: {params: res.data.data.id},
+                });
+              }
+            }
+          }).finally(()=>{
+            this.submitButton = false
+          })
+        }
+        //采购退款结算 销售收款结算  不需申请请核 直接结算  => 结算
+        if(this.billType === "收费"){
+          paymentApply(params).then(res=>{
+            if(res.data.success){
+              this.$message.success("操作成功!")
+              this.$emit("choceFun");
+            }
+          }).finally(()=>{
+            this.submitButton = false
+          })
+        }
+      },
+      saveColumn(){
+
+      },
+      resetColumn(){
+
+      },
+    }
+  }
+</script>
+
+<style scoped lang="scss">
+  .required_fields{
+    color: #F56C6C;
+    display:inline-block;
+    width: 7%
+  }
+</style>

+ 106 - 0
src/components/messageSend/main.vue

@@ -0,0 +1,106 @@
+<template>
+  <el-dialog
+    v-dialogdrag
+    title="发送通知"
+    :visible.sync="visible"
+    append-to-body
+    width="45%"
+    :close-on-click-modal="false"
+    :destroy-on-close="true"
+    :close-on-press-escape="false"
+    :before-close="closeDialog"
+  >
+    <el-form ref="form" :model="form" :rules="rules" label-width="80px">
+      <el-form-item label="接受者" prop="toUserId">
+        <el-select
+          v-model="form.toUserId"
+          clearable
+          filterable
+          size="small"
+        >
+          <el-option
+            v-for="(item, index) in userOption"
+            :key="index"
+            :label="item.realName"
+            :value="item.id"
+            @change="getUserName"
+          ></el-option>
+        </el-select>
+      </el-form-item>
+      <el-form-item label="发送内容" prop="messageBody">
+        <el-input type="textarea" v-model="form.messageBody" size="small" placeholder="请输入发送内容"></el-input>
+      </el-form-item>
+    </el-form>
+
+    <span slot="footer" class="dialog-footer">
+      <el-button type="primary" @click="sendHandle">发送</el-button>
+      <el-button @click="closeDialog">取消</el-button>
+    </span>
+  </el-dialog>
+</template>
+
+<script>
+import { getList } from "@/api/system/user";
+import { sendMessage,sendManyMessage } from "@/api/basicData/message"
+
+export default {
+  name: "main",
+  props: {},
+  data() {
+    return {
+      visible: false,
+      form: {},
+      userOption: [],
+      rules: {
+        toUserId: [{required: true, message: " ", trigger: "change"}],
+        messageBody: [{required: true, message: " ", trigger: "blur"}],
+      },
+    }
+  },
+  created() {
+    getList().then(res => {
+      this.userOption = res.data.data.records;
+    })
+  },
+  methods: {
+    // 打开
+    init() {
+      this.visible = true;
+    },
+    closeDialog() {
+      this.visible = false;
+      this.form = {}
+      this.$refs.form.clearValidate();
+      this.$emit("closeDialog")
+    },
+    // 发送消息
+    sendHandle() {
+      this.$refs["form"].validate(valid => {
+        if (valid) {
+          const data = {
+            ...this.form,
+            messageType: 1
+          }
+          sendManyMessage(data).then(res => {
+            this.$message.success('发送成功')
+            this.closeDialog()
+          })
+        }
+      })
+    },
+    getUserName() {
+      if (this.form.toUserId) {
+        this.userOption.forEach(item => {
+          if (item.form.toUserId == this.form.toUserId) {
+            this.$set(this.form, 'toUserName', item.realName)
+          }
+        })
+      }
+    },
+  },
+}
+</script>
+
+<style scoped>
+
+</style>

+ 8 - 0
src/enums/column-name.js

@@ -219,6 +219,14 @@ const columnName = [{
     code: 66,
     name: '利润分析'
   },
+  {
+    code: 67,
+    name: '内贸锁定明细'
+  },
+  {
+    code: 68,
+    name: '返利'
+  },
 ]
 export const getColumnName = (key) => {
   for (let index = 0; index < columnName.length; index++) {

+ 3 - 0
src/page/index/tags.vue

@@ -338,6 +338,9 @@ export default {
         if (tag.label == "销售订单(N)") {
           this.$store.commit("DOMXS_OUT_DETAIL");
         }
+        if (tag.label == "锁定订单明细") {
+          this.$store.commit("DOMKC_OUT_DETAIL");
+        }
         this.$store.commit("DEL_TAG", tag);
         if (tag.value === this.tag.value) {
           tag = this.tagList[key === 0 ? key : key - 1]; //如果关闭本标签让前推一个

+ 16 - 1
src/router/views/index.js

@@ -745,5 +745,20 @@ export default [{
         component: () =>
           import( /* webpackChunkName: "views" */ '@/views/work/process/leave/detail')
       }]
-    }
+    },
+  {
+    path: '/businessManagement/inventoryAccount/detail',
+    component: Layout,
+    hidden: true,
+    children: [
+      {
+        path: '/businessManagement/inventoryAccount/detail',
+        name: '锁定订单明细',
+        meta: {
+          keepAlive:true,
+        },
+        component: () => import( /* webpackChunkName: "views" */ '@/views/businessManagement/inventoryAccount/detail')
+      }
+    ]
+  },
 ]

+ 1 - 0
src/store/getters.js

@@ -38,5 +38,6 @@ const getters = {
   mainItemStatus: state => state.ifdetail.mainItemStatus,
   settleStatus: state => state.ifdetail.settleStatus,
   domSaleStatus: state => state.ifdetail.domSaleStatus,
+  domStockDetail: state => state.ifdetail.domStockDetail,
 }
 export default getters

+ 11 - 1
src/store/modules/ifdetail.js

@@ -12,6 +12,7 @@ const ifdetail = {
     mainItemStatus:false, //主营业务明细
     settleStatus:false,//结算明细
     domSaleStatus: false, // 内贸销售
+    domStockDetail: false, // 国内库存账
   },
   actions: {},
   mutations: {
@@ -112,12 +113,18 @@ const ifdetail = {
     },
     // 打开国内销售订单
     DOMXS_IN_DETAIL(state) {
-      state.domSaleStatus = false;
+      state.domSaleStatus = true;
     },
     //关闭国内销售订单
     DOMXS_OUT_DETAIL(state) {
       state.domSaleStatus = false;
     },
+    DOMKC_IN_DETAIL(state) {
+      state.domStockDetail = true;
+    },
+    DOMKC_OUT_DETAIL(state) {
+      state.domStockDetail = false;
+    },
     //关闭所有
     DEL_ALL_DETAIL(state) {
       for (let item in state) {
@@ -165,6 +172,9 @@ const ifdetail = {
       if (tag.label == '销售订单(N)') {
         state.domSaleStatus = true
       }
+      if (tag.label == '锁定订单明细') {
+        state.domStockDetail = true
+      }
     }
   }
 

+ 25 - 0
src/views/basicData/customerInformation/detailsPageEdit.vue

@@ -96,6 +96,7 @@
                   v-model="form[item.prop]"
                   size="small"
                   autocomplete="off"
+                  :disabled="item.disabled"
                 ></el-input>
               </el-form-item>
             </el-col>
@@ -613,6 +614,30 @@ export default {
             }
           },
           {
+            label: "总返利",
+            prop: "profitReturn",
+            disabled: true,
+            span: 8
+          },
+          {
+            label: "已用返利",
+            prop: "usedProfit",
+            disabled: true,
+            span: 8
+          },
+          {
+            label: "可用返利",
+            prop: "surplusProfit",
+            disabled: false,
+            span: 8
+          },
+          {
+            label: "可用返利",
+            prop: "monthProfit",
+            disabled: true,
+            span: 8
+          },
+          {
             label: "备注",
             prop: "remarks",
             span: 24,

+ 29 - 6
src/views/businessManagement/deliveryNotice/detailsPageEdit.vue

@@ -141,6 +141,7 @@
               @row-update="rowUpdate"
               @row-del="rowDel"
               @saveColumn="saveColumn('goods')"
+              @resetColumn="resetColumn"
               :cell-style="goodsRowClassName"
           >
             <template slot="code" slot-scope="{row,index}">
@@ -187,7 +188,7 @@
                          v-if="goodsActives == 'gift'"
               >录入明细
               </el-button>
-              <el-button type="info" :size="size" icon="el-icon-printer">报 表</el-button>
+              <el-button type="info" :size="size" icon="el-icon-printer" @click.stop="openReport()">报 表</el-button>
               <el-button
                 type="warning"
                 icon="el-icon-refresh"
@@ -444,6 +445,12 @@
       >
       </market-detail>
     </el-dialog>
+    <report-dialog
+      :switchDialog="switchDialog"
+      :reportId="form.id"
+      reportName="客户收货确认"
+      @onClose="onClose()"
+    ></report-dialog>
   </div>
 </template>
 
@@ -479,6 +486,7 @@ import {
   micrometerFormat,
   IntegerFormat
 } from "@/util/validate";
+import reportDialog from "@/components/report-dialog/main";
 
 export default {
   name: "detailsPage",
@@ -490,6 +498,7 @@ export default {
   components: {
     marketDetail,
     feeInfo,
+    reportDialog,
   },
   data() {
     return {
@@ -841,6 +850,7 @@ export default {
       deliverDisabled: false,
       // 确认到货禁用
       arrivalDisabled: false,
+      switchDialog: false,
     }
   },
   mounted() {
@@ -1834,11 +1844,6 @@ export default {
     },
     // 保存列设置
     async saveColumn(name) {
-      /**
-       * 已定义全局方法,直接使用,saveColumnData保存列数据方法,参数传值(表格名称,当前表格的option数据)
-       * 已定义全局方法,直接使用,getColumnName方法用来获取枚举值,参数根据自己定义的code值获取中文名
-       * 一定要执行异步操作,要等接口成功返回,才能执行下一行代码
-       */
       if (name == 'goods') {
         const inSave = await this.saveColumnData(
           this.getColumnName(21),
@@ -1861,6 +1866,17 @@ export default {
         }
       }
     },
+    async resetColumn() {
+      const inSave = await this.delColumnData(
+        this.getColumnName(21),
+        customerContact
+      );
+      if (inSave) {
+        this.$message.success("重置成功");
+        //关闭窗口
+        this.$refs.crud.$refs.dialogColumn.columnBox = false;
+      }
+    },
     // 商品表格加色
     goodsRowClassName({row, column, rowIndex, columnIndex}) {
       if (Number(row.actualQuantity) > Number(row.inventoryNumber) && column.property == 'inventoryNumber') {
@@ -1928,6 +1944,13 @@ export default {
         },500)
       }
     },
+    // 报表
+    openReport() {
+      this.switchDialog =! this.switchDialog;
+    },
+    onClose(val) {
+      this.switchDialog = val;
+    },
   }
 }
 </script>

+ 1 - 1
src/views/businessManagement/deliveryNotice/index.vue

@@ -402,13 +402,13 @@ export default {
       }
     },
     async resetColumn() {
+      this.option = option;
       const inSave = await this.delColumnData(
         this.getColumnName(20),
         option
       );
       if (inSave) {
         this.$message.success("重置成功");
-        this.option = option;
         //关闭窗口
         this.$refs.crud.$refs.dialogColumn.columnBox = false;
       }

+ 49 - 0
src/views/businessManagement/inventoryAccount/configuration/detail.json

@@ -0,0 +1,49 @@
+{
+  "searchShow": true,
+  "searchMenuSpan": 8,
+  "border": true,
+  "index": true,
+  "viewBtn": false,
+  "editBtn": false,
+  "delBtn": false,
+  "addBtn": false,
+  "align": "center",
+  "menuWidth": "120",
+  "menu": false,
+  "showSummary": true,
+  "searchIcon": true,
+  "searchIndex": 2,
+  "selection": true,
+  "tip":false,
+  "expand": false,
+  "expandWidth": 38,
+  "column": [
+    {
+      "label": "订单编号",
+      "prop": "orderNo",
+      "search": false,
+      "index": 1,
+      "minWidth": 80,
+      "overHidden": true,
+      "searchSpan": 8
+    },
+    {
+      "label": "订单日期",
+      "prop": "businesDate",
+      "search": false,
+      "index": 1,
+      "minWidth": 80,
+      "overHidden": true,
+      "searchSpan": 8
+    },
+    {
+      "label": "客户名称",
+      "prop": "corpsName",
+      "search": false,
+      "index": 1,
+      "minWidth": 80,
+      "overHidden": true,
+      "searchSpan": 8
+    }
+  ]
+}

+ 146 - 0
src/views/businessManagement/inventoryAccount/detail.vue

@@ -0,0 +1,146 @@
+<template>
+  <basic-container>
+    <avue-crud
+      ref="crud"
+      :data="dataList"
+      :option="option"
+      v-model="form"
+      :page.sync="page"
+      :search.sync="search"
+      :table-loading="loading"
+      @saveColumn="saveColumn"
+      @resetColumn="resetColumn"
+      @search-change="searchChange"
+      @current-change="currentChange"
+      @size-change="sizeChange"
+      @refresh-change="refreshChange"
+      @on-load="onLoad"
+    >
+      <template slot="orderNo" slot-scope="{ row, index }">
+        <span style="color: #409EFF;cursor: pointer" @click.stop="beforeOpenPage(row, index)">{{ row.orderNo }}</span>
+      </template>
+    </avue-crud>
+  </basic-container>
+</template>
+
+<script>
+import option from "./configuration/detail.json";
+import {getStock} from "@/api/basicData/inventoryAccount";
+
+export default {
+  name: "detail",
+  data() {
+    return {
+      option: {},
+      dataList: [],
+      form: {},
+      page: {
+        pageSize: 10,
+        pagerCount: 5,
+        total: 0,
+      },
+      search: {},
+      loading: false,
+      params: null,
+    }
+  },
+  async created() {
+    // this.option = option
+    this.option = await this.getColumnData(this.getColumnName(67), option);
+    this.$store.commit("DOMKC_IN_DETAIL");
+  },
+  activated() {
+    this.params = {
+      corpId: this.$route.query.corpId,
+      itemId: this.$route.query.itemId,
+    }
+    this.onLoad(this.page)
+  },
+  methods: {
+    onLoad(page, params) {
+      if (!this.params) return
+      params = {...params, ...this.params}
+      this.dataList.forEach(item => {
+        this.$refs.crud.toggleRowExpansion(item, false)
+      })
+      this.loading = true;
+      getStock(page.currentPage, page.pageSize, params)
+        .then(res => {
+          this.dataList = res.data.data.records ? res.data.data.records : [];
+          this.page.total = res.data.data.total;
+          if (this.page.total) {
+            this.option.height = window.innerHeight - 260;
+          }
+        })
+        .finally(() => {
+          this.loading = false;
+        });
+    },
+    searchChange(params, done) {
+      this.onLoad(this.page, params);
+      done();
+    },
+    currentChange(val) {
+      this.page.currentPage = val;
+    },
+    sizeChange(val) {
+      this.page.currentPage = 1;
+      this.page.pageSize = val;
+    },
+    refreshChange() {
+      this.dataList.forEach(item => {
+        this.$refs.crud.toggleRowExpansion(item, false)
+      })
+      this.page.currentPage = 1;
+      this.onLoad(this.page, this.search);
+    },
+    async saveColumn() {
+      const inSave = await this.saveColumnData(
+        this.getColumnName(67),
+        this.option
+      );
+      if (inSave) {
+        this.$message.success("保存成功");
+        //关闭窗口
+        this.$refs.crud.$refs.dialogColumn.columnBox = false;
+      }
+    },
+    async resetColumn() {
+      this.option = option;
+      const inSave = await this.delColumnData(
+        this.getColumnName(67),
+        option
+      );
+      if (inSave) {
+        this.$message.success("重置成功");
+        //关闭窗口
+        this.$refs.crud.$refs.dialogColumn.columnBox = false;
+      }
+    },
+    // 跳转
+    beforeOpenPage(row,index) {
+      if (this.$store.getters.domSaleStatus) {
+        this.$alert("销售单存在,请保存关闭销售单再进行操作", "温馨提示", {
+          confirmButtonText: "确定",
+          type: "warning",
+          callback: action => {
+            console.log(action);
+          }
+        });
+      } else {
+        this.$router.$avueRouter.closeTag("/businessManagement/salesOrder/index");
+        this.$router.push({
+          path: "/businessManagement/salesOrder/index",
+          query: {
+            id: row.id
+          },
+        });
+      }
+    },
+  },
+}
+</script>
+
+<style scoped>
+
+</style>

+ 66 - 32
src/views/businessManagement/inventoryAccount/index.vue

@@ -1,6 +1,7 @@
 <template>
-  <basic-container>
-    <avue-crud
+  <div>
+    <basic-container v-if="show">
+      <avue-crud
         ref="crud"
         :option="option"
         :data="data"
@@ -10,50 +11,55 @@
         :table-loading="loading"
         @on-load="onLoad"
         @row-update="rowUpdate">
-      <template slot-scope="{row,index}" slot="menu">
-        <el-button
+        <template slot-scope="scope" slot="lockingQuantity">
+          <span v-if="Number(scope.row.lockingQuantity) > 0" style="color: #409EFF;cursor: pointer" @click.stop="viewCell(scope.row,scope.index)">{{ scope.row.lockingQuantity }}</span>
+          <span v-else>{{ scope.row.lockingQuantity }}</span>
+        </template>
+        <template slot-scope="{row,index}" slot="menu">
+          <el-button
             type="text"
             size="small"
             @click="rowCell(row,index)"
-        >{{ row.$cellEdit ? '保存' : '修改' }}
-        </el-button>
-        <el-button
+          >{{ row.$cellEdit ? '保存' : '修改' }}
+          </el-button>
+          <el-button
             type="text"
             size="small"
             @click="deletePrice(row,index)"
-        >删除
-        </el-button>
-      </template>
-      <template slot="menuLeft">
-        <el-button
+          >删除
+          </el-button>
+        </template>
+        <template slot="menuLeft">
+          <el-button
             type="primary"
             size="small"
             icon="el-icon-plus"
             @click="excelBox = !excelBox"
-        >导入
-        </el-button>
-        <el-button
+          >导入
+          </el-button>
+          <el-button
             type="success"
             icon="el-icon-download"
             size="small"
             @click="derivation()"
-        >下载模板
-        </el-button>
-        <el-button
+          >下载模板
+          </el-button>
+          <el-button
             type="info"
             icon="el-icon-printer"
             size="small"
-        >报 表
-        </el-button>
-      </template>
-    </avue-crud>
-    <el-dialog title="导入价格"
-               append-to-body
-               :visible.sync="excelBox"
-               width="555px">
-      <avue-form :option="excelOption" v-model="excelForm" :upload-after="uploadAfter"/>
-    </el-dialog>
-  </basic-container>
+          >报 表
+          </el-button>
+        </template>
+      </avue-crud>
+      <el-dialog title="导入价格"
+                 append-to-body
+                 :visible.sync="excelBox"
+                 width="555px">
+        <avue-form :option="excelOption" v-model="excelForm" :upload-after="uploadAfter"/>
+      </el-dialog>
+    </basic-container>
+  </div>
 </template>
 <script>
 import option from "./configuration/mainList.json"
@@ -94,7 +100,12 @@ export default {
         pagerCount: 5,
         total: 0,
         pageSizes: [10,50,100,200,300]
-      }
+      },
+      show: true,
+      params: {
+        corpId: null,
+        itemId: null
+      },
     }
   },
   created() {
@@ -188,7 +199,6 @@ export default {
       })
     },
     rowUpdate(form, index, done) {
-      console.log(form)
       typeSave(form).then(res => {
         this.$message({type: "success", message: form.id ? "修改成功!" : "新增成功!"});
         // this.page.currentPage = 1;
@@ -197,7 +207,31 @@ export default {
         // this.backToList()
       })
       done()
-    }
+    },
+    // 查看
+    viewCell(row, index) {
+      if (this.$store.getters.domStockDetail) {
+        this.$alert("明细已存在,请保存关闭明细再进行操作", "温馨提示", {
+          confirmButtonText: "确定",
+          type: "warning",
+          callback: action => {
+            console.log(action);
+          }
+        });
+      } else {
+        this.params.corpId = row.corpId
+        this.params.itemId = row.goodsId
+        this.$router.$avueRouter.closeTag("/businessManagement/inventoryAccount/detail");
+        this.$router.push({
+          path: "/businessManagement/inventoryAccount/detail",
+          query: {
+            corpId: row.corpId,
+            itemId: row.goodsId
+          },
+        });
+      }
+      // this.show = false;
+    },
   }
 }
 </script>

+ 56 - 9
src/views/businessManagement/purchaseOrder/detailsPageEdit.vue

@@ -140,6 +140,7 @@
               @row-del="rowDel"
               @selection-change="productSelection"
               @saveColumn="saveColumn('goods')"
+              @resetColumn="resetColumn"
           >
             <template slot="cname" slot-scope="{ row }">
               <goods-select v-if="row.$cellEdit" v-model="row.cname" @getRow="getGoodsRow($event, row)"
@@ -220,7 +221,7 @@
                          :disabled="selection.length < 1 || detailData.seeDisabled"
                          @click="getShipmentC">生成采购确认
               </el-button>
-              <el-button type="info" :size="size" icon="el-icon-printer">报 表</el-button>
+              <el-button type="info" :size="size" icon="el-icon-printer" @click.stop="openReport()">报 表</el-button>
             </template>
           </avue-crud>
         </basic-container>
@@ -471,6 +472,25 @@
     </el-dialog>
 
     <el-dialog
+      append-to-body
+      title="账单"
+      class="el-dialogDeep"
+      :visible.sync="financialAccountDialog"
+      width="70%"
+      :close-on-click-modal="false"
+      :destroy-on-close="true"
+      :close-on-press-escape="false"
+      v-dialog-drag
+    >
+      <financial-account
+        :billType="billType"
+        :billData="billData"
+        @choceFun="choceFun"
+      >
+      </financial-account>
+    </el-dialog>
+
+    <el-dialog
       title="申请记录"
       append-to-body
       class="el-dialogDeep"
@@ -487,6 +507,12 @@
       >
       </bill-application>
     </el-dialog>
+    <report-dialog
+      :switchDialog="switchDialog"
+      :reportId="form.id"
+      reportName="发货通知单"
+      @onClose="onClose()"
+    ></report-dialog>
   </div>
 </template>
 
@@ -522,6 +548,8 @@ import {
   micrometerFormat,
   IntegerFormat
 } from "@/util/validate";
+import financialAccount from "../../../components/finance/financialAccount";
+import reportDialog from "@/components/report-dialog/main";
 
 export default {
   name: "detailsPage",
@@ -537,6 +565,8 @@ export default {
     ApplyPayment,
     billApplication,
     feeInfo,
+    financialAccount,
+    reportDialog,
   },
   data() {
     return {
@@ -559,6 +589,7 @@ export default {
       loadingCost: false,
       choiceData: false,
       commodityData: false,
+      financialAccountDialog:false,
       dataCost: [],
       choiceIndex: '',
       dialogCost: false,
@@ -715,6 +746,7 @@ export default {
           }, {
             label: '来源单号',
             prop: 'orgOrderNo',
+            disabled: true,
             rules: [
               {
                 required: false,
@@ -799,6 +831,7 @@ export default {
       },
       itemType: '采购',
       packageOptions: [],
+      switchDialog: false,
     }
   },
   mounted() {
@@ -839,8 +872,8 @@ export default {
   methods: {
     // 明细查询
     queryData(id, isCopy = false) {
+      this.pageLoading = true
       detail(id).then(res => {
-        console.log(res.data.data)
         this.form = res.data.data;
         if (!this.form.itemsVOList) {
           this.contactsData = []
@@ -933,6 +966,7 @@ export default {
         }
       }).finally(() => {
         this.saveLoading = false
+        this.pageLoading = false
       });
     },
     copyOrder() {
@@ -1488,13 +1522,13 @@ export default {
       //   })
       // }else{
         this.beforeBillData(true,type);
-        this.applyPaymentDialog = true;
+        this.financialAccountDialog = true;
       // }
 
     },
     //关闭账单
     choceFun(){
-      this.applyPaymentDialog  = false
+      this.financialAccountDialog  = false
     },
     //返回列表
     backToList() {
@@ -1518,11 +1552,6 @@ export default {
     },
     // 保存列设置
     async saveColumn(name) {
-      /**
-       * 已定义全局方法,直接使用,saveColumnData保存列数据方法,参数传值(表格名称,当前表格的option数据)
-       * 已定义全局方法,直接使用,getColumnName方法用来获取枚举值,参数根据自己定义的code值获取中文名
-       * 一定要执行异步操作,要等接口成功返回,才能执行下一行代码
-       */
       if (name == 'goods') {
         const inSave = await this.saveColumnData(
           this.getColumnName(18),
@@ -1545,6 +1574,17 @@ export default {
         }
       }
     },
+    async resetColumn() {
+      const inSave = await this.delColumnData(
+        this.getColumnName(18),
+        customerContact
+      );
+      if (inSave) {
+        this.$message.success("重置成功");
+        //关闭窗口
+        this.$refs.crud.$refs.dialogColumn.columnBox = false;
+      }
+    },
     returnBack(row) {
       this.$set(this.form, 'paymentType', row.paymentType)
       this.$set(this.form, 'packageRemarks', row.packageRemarks)
@@ -1599,6 +1639,13 @@ export default {
       params.srcOrderno = this.form.orderNo
       callback(params)
     },
+    // 报表
+    openReport() {
+      this.switchDialog =! this.switchDialog;
+    },
+    onClose(val) {
+      this.switchDialog = val;
+    },
   }
 }
 </script>

+ 38 - 17
src/views/businessManagement/purchaseOrder/index.vue

@@ -97,6 +97,26 @@
       >
       </apply-payment>
     </el-dialog>
+    <el-dialog
+      append-to-body
+      title="账单"
+      class="el-dialogDeep"
+      :visible.sync="financialAccountDialog"
+      width="70%"
+      :close-on-click-modal="false"
+      :destroy-on-close="true"
+      :close-on-press-escape="false"
+      v-dialog-drag
+    >
+      <financial-account
+        v-if="financialAccountDialog"
+        :billType="billType"
+        :billData="billData"
+        :arrList="applyPaymentList"
+        @choceFun="choceFun"
+      >
+      </financial-account>
+    </el-dialog>
   </div>
 </template>
 
@@ -106,6 +126,7 @@ import {customerList, deleteDetails} from "@/api/basicData/purchaseOrder"
 import detailPage from "./detailsPageEdit";
 import { defaultDate } from "@/util/date";
 import ApplyPayment from "@/components/finance/applyPayment";
+import financialAccount from "../../../components/finance/financialAccount";
 
 export default {
   name: "customerInformation",
@@ -117,6 +138,7 @@ export default {
   components: {
     detailPage,
     ApplyPayment,
+    financialAccount
   },
   data() {
     return {
@@ -150,6 +172,7 @@ export default {
       billType:"申请",  //账单类型
       billData:{},     //账单需要数据
       applyPaymentDialog:false,//生成账单组件
+      financialAccountDialog:false,
       applyPaymentList: [],
     }
   },
@@ -369,13 +392,13 @@ export default {
       }
     },
     async resetColumn() {
+      this.option = option;
       const inSave = await this.delColumnData(
         this.getColumnName(17),
         option
       );
       if (inSave) {
         this.$message.success("重置成功");
-        this.option = option;
         //关闭窗口
         this.$refs.crud.$refs.dialogColumn.columnBox = false;
       }
@@ -393,26 +416,24 @@ export default {
       let a = []
       this.selection.forEach(item => {
         let form = {
-          form: {
-            srcOrderno:item.orderNo,
-            itemType:"采购",
-            optionType:"GN",
-            corpsName:item.strCorpName,
-            corpId:item.corpId,
-            srcParentId: item.id,
-            currency: 'CNY',
-            exchangeRate: '1',
-            taxRate: '0',
-            accDate: item.businesDate,
-            srcType: 1,
-            tradeType: 'GN'
-          }
+          srcOrderno:item.orderNo,
+          itemType:"采购",
+          optionType:"GN",
+          corpsName:item.strCorpName,
+          corpId:item.corpId,
+          srcParentId: item.id,
+          currency: 'CNY',
+          exchangeRate: '1',
+          taxRate: '0',
+          accDate: item.businesDate,
+          srcType: 1,
+          tradeType: 'GN'
         }
         a.push(form)
       })
       this.applyPaymentList = [...a]
       // this.beforeBillData(true);
-      this.applyPaymentDialog = true;
+      this.financialAccountDialog = true;
     },
     beforeBillData(type) {
       if(type){ //申请货款
@@ -421,7 +442,7 @@ export default {
     },
     //关闭账单
     choceFun(){
-      this.applyPaymentDialog  = false
+      this.financialAccountDialog  = false
     },
   }
 }

+ 12 - 5
src/views/businessManagement/receipt/detailsPageEdit.vue

@@ -112,6 +112,7 @@
               @row-update="rowUpdate"
               @row-del="rowDel"
               @saveColumn="saveColumn('goods')"
+              @resetColumn="resetColumn"
           >
             <template slot="code" slot-scope="{row,index}">
               <el-button type="text" size="mini" style="padding:4px 10px;float:left" :disabled="detailData.seeDisabled || !row.$cellEdit" @click="commodityChoice(row)">选择</el-button>
@@ -1378,11 +1379,6 @@ export default {
     },
     // 保存列设置
     async saveColumn(name) {
-      /**
-       * 已定义全局方法,直接使用,saveColumnData保存列数据方法,参数传值(表格名称,当前表格的option数据)
-       * 已定义全局方法,直接使用,getColumnName方法用来获取枚举值,参数根据自己定义的code值获取中文名
-       * 一定要执行异步操作,要等接口成功返回,才能执行下一行代码
-       */
       if (name == 'goods') {
         const inSave = await this.saveColumnData(
           this.getColumnName(24),
@@ -1405,6 +1401,17 @@ export default {
         }
       }
     },
+    async resetColumn() {
+      const inSave = await this.delColumnData(
+        this.getColumnName(24),
+        customerContact
+      );
+      if (inSave) {
+        this.$message.success("重置成功");
+        //关闭窗口
+        this.$refs.crud.$refs.dialogColumn.columnBox = false;
+      }
+    },
   }
 }
 </script>

+ 1 - 1
src/views/businessManagement/receipt/index.vue

@@ -399,13 +399,13 @@ export default {
       }
     },
     async resetColumn() {
+      this.option = option;
       const inSave = await this.delColumnData(
         this.getColumnName(23),
         option
       );
       if (inSave) {
         this.$message.success("重置成功");
-        this.option = option;
         //关闭窗口
         this.$refs.crud.$refs.dialogColumn.columnBox = false;
       }

+ 42 - 17
src/views/businessManagement/salesOrder/detailsPageEdit.vue

@@ -208,6 +208,7 @@
               @selection-change="productSelection"
               @row-del="rowDel"
               @saveColumn="saveColumn('goods')"
+              @resetColumn="resetColumn"
               :summary-method="summaryMethod"
               :table-loading="goodsLoading"
           >
@@ -676,6 +677,25 @@
     ></report-dialog>
 
     <el-dialog
+      append-to-body
+      title="账单"
+      class="el-dialogDeep"
+      :visible.sync="financialAccountDialog"
+      width="70%"
+      :close-on-click-modal="false"
+      :destroy-on-close="true"
+      :close-on-press-escape="false"
+      v-dialog-drag
+    >
+      <financial-account
+        :billType="billType"
+        :billData="billData"
+        @choceFun="choceFun"
+      >
+      </financial-account>
+    </el-dialog>
+
+    <el-dialog
       title="申请记录"
       append-to-body
       class="el-dialogDeep"
@@ -748,6 +768,7 @@ import {
   micrometerFormat,
   IntegerFormat
 } from "@/util/validate";
+import financialAccount from "../../../components/finance/financialAccount";
 
 export default {
   name: "detailsPage",
@@ -762,6 +783,7 @@ export default {
     reportDialog,
     feeInfo,
     billApplication,
+    financialAccount
   },
   data() {
     return {
@@ -773,6 +795,7 @@ export default {
       billType:"收费",  //账单类型
       billData:{},     //账单需要数据
       applySettlementDialog:false,//生成账单组件
+      financialAccountDialog:false,
       configuration: {
         multipleChoices: false,
         multiple: false,
@@ -1498,6 +1521,8 @@ export default {
     this.$set(this.form, 'convertIntegral' , 0)
     this.$set(this.form, 'profit' , 0)
     this.$set(this.form, 'paymentType', '预付')
+    this.$set(this.form, 'thisUsedProfit' , 0)
+    this.$set(this.form, 'createProfit' , 0)
     let date = new Date();
     let year = date.getFullYear();
     let month = date.getMonth() + 1;
@@ -1940,7 +1965,7 @@ export default {
         })
       } else {
         this.beforeBillData(true,type)
-        this.applySettlementDialog = true;
+        this.financialAccountDialog = true;
       }
     },
     //生成账单 拿到主表信息
@@ -1966,7 +1991,7 @@ export default {
     },
     //关闭账单
     choceFun(){
-      this.applySettlementDialog  = false
+      this.financialAccountDialog  = false
     },
     //商品选中触发
     productSelection(selection) {
@@ -2636,9 +2661,17 @@ export default {
     editCustomer(isBack = false, type) {
       this.$refs["form"].validate((valid) => {
         if (valid) {
-          for (let item in this.contactsData) {
-            if (Number(this.contactsData[item].orderQuantity) < Number(this.contactsData[item].actualQuantity)) {
-              return this.$message.error('商品信息第'+ (parseInt(item) + 1) + '行订货数量不能小于发货数量')
+          //商品信息
+          if (this.goodsShowData.findIndex(item => item.goodType == 0) == -1) {
+            this.form.orderItemsList = this.goodsShowData.concat(this.contactsData)
+          } else {
+            this.form.orderItemsList = this.goodsShowData.concat(this.giftData)
+          }
+          // 判断是否能保存
+          let goodsData = this.goodsShowData.filter(item => item.goodType == 0)
+          for (let item in this.goodsData) {
+            if (Number(goodsData[item].orderQuantity) > Number(goodsData[item].storageQuantity)) {
+              return this.$message.error('商品信息第'+ (parseInt(item) + 1) + '行订货数量不能超过库存')
             }
           }
           this.form.orderFeesList = this.$refs.feeInfo.submitData()
@@ -2650,6 +2683,9 @@ export default {
           if (packFee == -1) {
             return this.$message.error('费用明细未有包装费')
           }
+          // 产生返利、本次使用返利为空 默认为0
+          this.form.createProfit = this.form.createProfit? this.form.createProfit: 0
+          this.form.thisUsedProfit = this.form.thisUsedProfit? this.form.thisUsedProfit: 0
           // 计算毛利额
           this.$set(this.form, 'orderAmount', 0)
           // 成本价
@@ -2657,12 +2693,6 @@ export default {
           if (this.form.orderAmount && this.form.settlmentAmount) {
             this.$set(this.form, "balanceAmount", (Number(this.form.orderAmount) - Number(this.form.settlmentAmount)).toFixed(2));
           }
-          //商品信息
-          if (this.goodsShowData.findIndex(item => item.goodType == 0) == -1) {
-            this.form.orderItemsList = this.goodsShowData.concat(this.contactsData)
-          } else {
-            this.form.orderItemsList = this.goodsShowData.concat(this.giftData)
-          }
           // 销售金额
           this.form.orderAmount = 0;
           // 计算销售金额
@@ -2845,11 +2875,6 @@ export default {
     },
     // 保存列设置
     async saveColumn(name) {
-      /**
-       * 已定义全局方法,直接使用,saveColumnData保存列数据方法,参数传值(表格名称,当前表格的option数据)
-       * 已定义全局方法,直接使用,getColumnName方法用来获取枚举值,参数根据自己定义的code值获取中文名
-       * 一定要执行异步操作,要等接口成功返回,才能执行下一行代码
-       */
       if (name == 'goods') {
         const inSave = await this.saveColumnData(
           this.getColumnName(15),
@@ -2879,7 +2904,6 @@ export default {
       );
       if (inSave) {
         this.$message.success("重置成功");
-        this.option = option;
         //关闭窗口
         this.$refs.crud.$refs.dialogColumn.columnBox = false;
       }
@@ -3060,6 +3084,7 @@ export default {
           this.pageLoading = true
           pleaseCheck(data).then(res => {
             // this.pageLoading = false
+            this.saveActives = ''
             this.queryData(this.form.id)
           }).finally(() => {
             this.pageLoading = false

+ 17 - 9
src/views/businessManagement/salesOrder/index.vue

@@ -186,6 +186,12 @@ export default {
       }
     })
   },
+  activated() {
+    if (this.$route.query.id) {
+      this.isShow = true
+      this.beforeOpenPage({id: this.$route.query.id})
+    }
+  },
   methods: {
     tableRowClassName({row, column, rowIndex, columnIndex}) {
       if (row.orderStatus == '录入' && columnIndex == 19){
@@ -362,14 +368,10 @@ export default {
       }
     },
     onLoad(page, params) {
-      // if (this.search.businesDate && this.search.businesDate.length > 0) {
-      //   params = {
-      //     ...params,
-      //     orderStartDate: this.search.businesDate[0]+ " " + "00:00:00",
-      //     orderEndDate: this.search.businesDate[1]+ " " + "23:59:59",
-      //   }
-      //   delete params.businesDate;
-      // }
+      // 重置掉展开
+      this.dataList.forEach(item => {
+        this.$refs.crud.toggleRowExpansion(item, false)
+      })
       let data = this.gobackSearch(params)
 
       let queryParams = Object.assign({}, data, {
@@ -399,6 +401,12 @@ export default {
     },
     goBack() {
       this.detailData=this.$options.data().detailData
+      if (this.$route.query) {
+        this.$router.$avueRouter.closeTag();
+        this.$router.push({
+          path: "/businessManagement/salesOrder/index"
+        });
+      }
       this.dataList.forEach(item => {
         this.$refs.crud.toggleRowExpansion(item, false)
       })
@@ -452,13 +460,13 @@ export default {
       }
     },
     async resetColumn() {
+      this.option = option;
       const inSave = await this.delColumnData(
         this.getColumnName(14),
         option
       );
       if (inSave) {
         this.$message.success("重置成功");
-        this.option = option;
         //关闭窗口
         this.$refs.crud.$refs.dialogColumn.columnBox = false;
       }

+ 0 - 1
src/views/financialManagement/paymentSettle/paymentSettleDetailsPage.vue

@@ -65,7 +65,6 @@
         </avue-form>
       </basic-container>
       <containerTitle title="明细列表"></containerTitle>
-      {{dataList}}
       <basic-container>
         <avue-crud :option="itemsOption"
                    :data="dataList"

+ 38 - 8
src/views/financialManagement/receiptSettle/receiptSettleDetailsPage.vue

@@ -6,6 +6,11 @@
                    @click="backToList">返回列表
         </el-button>
         <div class="upper_right_button">
+          <el-button type="primary"
+                     size="small"
+                     :disabled="!form.id"
+                     @click="postMessage"
+          >发送消息</el-button>
           <el-button type="warning"
                      size="small"
                      class="el-button--small-yh"
@@ -155,6 +160,11 @@
         </bill-detail>
       </el-dialog>
     </div>
+    <messagePost
+      v-if="messageVisble"
+      ref="messagePost"
+      @closeDialog="closeDialog"
+    ></messagePost>
   </div>
 </template>
 
@@ -164,10 +174,11 @@
   import { getDetails,modify,cancelModify,saveOrEdit } from "@/api/financialManagement/paymentRequest";
   import  billDetail from "@/components/bill/billDetailList";
   import _ from "lodash";
-  import { getlistBankBy } from "@/api/financialManagement/paymentRequest";
+  import { getlistBankBy,deleteDetail } from "@/api/financialManagement/paymentRequest";
   import { contrastObj,contrastList } from "@/util/contrastData";
   import {getUserInfo} from "@/api/system/user";
   import {getCorpDetail} from "@/api/maintenance/overpayment";
+  import messagePost from "@/components/messageSend/main"
 
   export default {
     name: "receiptDetailsPage",
@@ -177,7 +188,8 @@
       }
     },
     components:{
-      billDetail
+      billDetail,
+      messagePost
     },
     data() {
       return {
@@ -379,6 +391,8 @@
         billType:"收费",
         // 明细本次金额总计
         allAmount: 0,
+        // 消息弹窗
+        messageVisble: false,
         //新旧数据对比
         oldForm:{},
         oldDataList:[],
@@ -487,7 +501,17 @@
         this.$refs.crud.rowCell(row, index)
       },
       rowDel(row,index){
-        this.dataList.splice(index, 1);
+        if (row.id) {
+          deleteDetail({ids: row.id}).then(res => {
+            this.$message({
+              type: "success",
+              message: "操作成功!"
+            });
+            this.dataList.splice(index, 1);
+          })
+        } else {
+          this.dataList.splice(index, 1);
+        }
       },
       searchReset() {
         console.log('1')
@@ -522,22 +546,18 @@
               this.buttonLoading = true
               this.form.billNo = this.dataList.map(item =>{return item.billNo}).join(",")
 
-              console.log(this.financeDisabled)
               if (this.category == 2 && this.financeDisabled) {
                 this.allAmount = 0;
                 this.form.amount = this.form.amount? this.form.amount: 0
                 this.dataList.forEach(e => {
                   this.allAmount = Number(this.allAmount) + Number(e.thisAmount)
                 })
-                console.log(Number(this.allAmount) > 0)
-                console.log((Number(this.form.amount) < Number(this.allAmount)))
                 if (this.allAmount == 0 && this.form.amount == 0) {
                   return this.$message.error('人民币金额不能为空')
                 } else if (Number(this.allAmount) > 0 && (Number(this.form.amount) > Number(this.allAmount))) {
                   this.form.caseOverPayment = 0;
                 } else if (Number(this.allAmount) > 0 && (Number(this.form.amount) < Number(this.allAmount))) {
                   this.form.caseOverPayment = Number(this.allAmount) - Number(this.form.amount)
-                  console.log(this.form.caseOverPayment)
                   if (Number(this.form.caseOverPayment) > Number(this.form.overPayment)) {
                     return this.$message.error('溢付款余额不足,无法收费')
                   }
@@ -603,7 +623,7 @@
         // 溢付款余额获取
         if (this.category == 2) {
           await getCorpDetail({corpId: this.form.corpId}).then(res => {
-            if (Number(this.form.overPayment) != Number(res.data.data.balanceOverpaymen)) {
+            if (Number(this.form.overPayment) != (res.data.data? res.data.data.balanceOverpaymen: '0.00')) {
               this.form.overPayment = res.data.data? res.data.data.balanceOverpaymen: '0.00'
             }
           })
@@ -679,6 +699,16 @@
           return this.$message.error('本次使用的溢付款不能超过总溢付款')
         }
       },
+      // 发送消息
+      postMessage() {
+        this.messageVisble = true
+        this.$nextTick(() => {
+          this.$refs.messagePost.init()
+        })
+      },
+      closeDialog() {
+        this.messageVisble = false
+      },
     }
   }
 </script>

+ 14 - 3
src/views/maintenance/integral/config/mainList.json

@@ -9,7 +9,7 @@
   "addBtn": false,
   "align": "center",
   "menuWidth": "120",
-  "menu": false,
+  "menu": true,
   "showSummary": true,
   "searchIcon": true,
   "searchIndex": 2,
@@ -25,7 +25,16 @@
       "index": 1,
       "minWidth": 80,
       "overHidden": true,
-      "searchSpan": 8
+      "searchSpan": 8,
+      "cell": false,
+      "slot": true,
+      "rules": [
+        {
+          "required": true,
+          "message": "请选择客户",
+          "trigger": "blur"
+        }
+      ]
     },{
       "label": "积分",
       "prop": "inPoints",
@@ -33,7 +42,9 @@
       "index": 2,
       "minWidth": 80,
       "overHidden": true,
-      "searchSpan": 8
+      "searchSpan": 8,
+      "cell": false,
+      "slot": true
     },{
       "label": "兑换",
       "prop": "outPoints",

+ 99 - 4
src/views/maintenance/integral/index.vue

@@ -17,11 +17,13 @@
         @saveColumn="saveColumn"
         @resetColumn="resetColumn"
         @expand-change="expandChange"
+        @row-update="rowUpdate"
+        @row-save="rowSave"
       >
         <template slot-scope="scope" slot="expand">
           <el-table :data="scope.row.insideList" v-loading="scope.row.loading">
             <el-table-column  label="发货单号" prop="billNo" align="center" show-overflow-tooltip width="200"></el-table-column>
-            <el-table-column  label="订单号" prop="orderNo" align="center" show-overflow-tooltip width="200"></el-table-column>
+            <el-table-column  label="积分" prop="points" align="center" show-overflow-tooltip width="200"></el-table-column>
             <el-table-column  label="状态" prop="status" align="center" show-overflow-tooltip width="200">
               <template slot-scope="scope">
                 <span>{{ scope.row.status == 0? '正常': '停用' }}</span>
@@ -44,7 +46,49 @@
           ></crop-select>
         </template>
         <template slot-scope="scope" slot="corpId">
-          {{ scope.row.corpName }}
+          <crop-select
+            style="width: 90% !important;display: inline-block"
+            v-if="scope.row.$cellEdit && !scope.row.id"
+            v-model="scope.row.corpId"
+            :cropIndex="scope.index"
+            @getCorpData="getCorpData"
+            corpType="KG"
+          ></crop-select>
+         <span v-else>{{ scope.row.corpName }}</span>
+        </template>
+        <template slot-scope="{row}" slot="inPoints">
+          <el-input
+            v-if="row.$cellEdit"
+            v-model="row.inPoints"
+            placeholder="请输入"
+            size="small"
+            oninput='this.value=this.value.replace(/[^(\d.)]/g,"").replace(/^(\d+)\.(\d\d).*$/, "$1.$2")'
+            @change="pointsChange(row)"
+          ></el-input>
+          <span v-else>{{row.inPoints}}</span>
+        </template>
+        <template slot="menuLeft">
+          <el-button
+            type="primary"
+            icon="el-icon-plus"
+            size="small"
+            @click.stop="rowAdd"
+          >录入明细</el-button>
+        </template>
+        <template slot="menu" slot-scope="{ row, index }">
+          <el-button
+            size="small"
+            icon="el-icon-edit"
+            type="text"
+            @click="rowCell(row, index)"
+          >{{ row.$cellEdit ? "保存" : "修改" }}</el-button>
+          <el-button
+            v-if="!row.id && row.$cellEdit"
+            size="small"
+            icon="el-icon-delete"
+            type="text"
+            @click="rowDelete(row, index)"
+          >删除</el-button>
         </template>
       </avue-crud>
     </basic-container>
@@ -53,7 +97,7 @@
 
 <script>
 import option from './config/mainList.json';
-import {getList, detail} from '@/api/maintenance/integral';
+import {getList, detail, updateList} from '@/api/maintenance/integral';
 
 export default {
   name: "index",
@@ -69,6 +113,7 @@ export default {
       },
       search: {},
       loading: false,
+      savePoints: 0,
     }
   },
   async created() {
@@ -103,6 +148,9 @@ export default {
       this.onLoad(this.page, this.search);
     },
     onLoad(page, params) {
+      this.dataList.forEach(item => {
+        this.$refs.crud.toggleRowExpansion(item, false)
+      })
       this.loading = true;
       getList(page.currentPage, page.pageSize, params)
         .then(res => {
@@ -141,17 +189,64 @@ export default {
       }
     },
     async resetColumn() {
+      this.option = option;
       const inSave = await this.delColumnData(
         this.getColumnName(54),
         option
       );
       if (inSave) {
         this.$message.success("重置成功");
-        this.option = option;
         //关闭窗口
         this.$refs.crud.$refs.dialogColumn.columnBox = false;
       }
     },
+    rowAdd() {
+      const params = {
+        inPoints: 0,
+        outPoints: 0,
+        balancePoints: 0,
+      }
+      this.$refs.crud.rowCellAdd(params);
+    },
+    //编辑
+    rowCell(row, index) {
+      this.$refs.crud.rowCell(row, index)
+      if (row.$cellEdit) {
+        this.savePoints = row.inPoints
+      }
+    },
+    // 修改保存调用
+    rowUpdate(row, index, done) {
+      updateList(row).then(res => {
+        this.$message.success(row.id? '修改成功':'新增成功')
+      })
+      done()
+    },
+    // 新增触发
+    rowSave(row,done,loading) {
+      if (!row.corpId) return this.$message.error('客户不能为空')
+      const repeat = this.dataList.some(item => item.corpId == row.corpId)
+      if (repeat) return this.$message.error('客户已存在')
+      updateList(row).then(res => {
+        this.$message.success(row.id? '修改成功':'新增成功')
+      })
+      done()
+    },
+    // 删除
+    rowDelete(row, index) {
+      this.dataList.splice(index, 1)
+    },
+    getCorpData(row) {
+      this.dataList[row.index].corpName = row.cname;
+    },
+    // 积分变更触发
+    pointsChange(row) {
+      if (Number(row.inPoints) < Number(row.outPoints)) {
+        row.inPoints = this.savePoints
+        return this.$message.error('积分不能小于兑换积分')
+      }
+      row.balancePoints = (Number(row.inPoints) - Number(row.outPoints)).toFixed(2)
+    },
   },
 }
 </script>

+ 4 - 1
src/views/maintenance/overpayment/index.vue

@@ -99,6 +99,9 @@ export default {
       this.onLoad(this.page, this.search);
     },
     onLoad(page, params) {
+      this.dataList.forEach(item => {
+        this.$refs.crud.toggleRowExpansion(item, false)
+      })
       this.loading = true;
       getList(page.currentPage, page.pageSize, params)
         .then(res => {
@@ -137,13 +140,13 @@ export default {
       }
     },
     async resetColumn() {
+      this.option = option;
       const inSave = await this.delColumnData(
         this.getColumnName(53),
         option
       );
       if (inSave) {
         this.$message.success("重置成功");
-        this.option = option;
         //关闭窗口
         this.$refs.crud.$refs.dialogColumn.columnBox = false;
       }

+ 55 - 0
src/views/maintenance/rebate/config/mainList.json

@@ -0,0 +1,55 @@
+{
+  "searchShow": true,
+  "searchMenuSpan": 8,
+  "border": true,
+  "index": true,
+  "viewBtn": false,
+  "editBtn": false,
+  "delBtn": false,
+  "addBtn": false,
+  "align": "center",
+  "menuWidth": "120",
+  "menu": false,
+  "showSummary": true,
+  "searchIcon": true,
+  "searchIndex": 2,
+  "selection": true,
+  "tip":false,
+  "expand": true,
+  "expandWidth": 38,
+  "column": [
+    {
+      "label": "客户",
+      "prop": "corpId",
+      "search": true,
+      "index": 1,
+      "minWidth": 80,
+      "overHidden": true,
+      "searchSpan": 8
+    },{
+      "label": "增加",
+      "prop": "inOverpayment",
+      "search": false,
+      "index": 2,
+      "minWidth": 80,
+      "overHidden": true,
+      "searchSpan": 8
+    },{
+      "label": "使用",
+      "prop": "outOverpaymen",
+      "search": false,
+      "index": 3,
+      "minWidth": 80,
+      "overHidden": true,
+      "searchSpan": 8
+    },{
+      "label": "余额",
+      "prop": "balanceOverpaymen",
+      "search": false,
+      "index": 4,
+      "minWidth": 80,
+      "overHidden": true,
+      "searchSpan": 8
+    }
+  ]
+}

+ 164 - 0
src/views/maintenance/rebate/index.vue

@@ -0,0 +1,164 @@
+<template>
+  <div>
+    <basic-container>
+      <avue-crud
+        :option="option"
+        :data="dataList"
+        ref="crud"
+        v-model="form"
+        :page.sync="page"
+        :search.sync="search"
+        @search-change="searchChange"
+        @current-change="currentChange"
+        @size-change="sizeChange"
+        @refresh-change="refreshChange"
+        @on-load="onLoad"
+        :table-loading="loading"
+        @saveColumn="saveColumn"
+        @resetColumn="resetColumn"
+        @expand-change="expandChange"
+      >
+        <template slot-scope="scope" slot="expand">
+          <el-table :data="scope.row.insideList" v-loading="scope.row.loading">
+            <el-table-column  label="发货单号" prop="billNo" align="center" show-overflow-tooltip width="200"></el-table-column>
+            <el-table-column  label="金额" prop="overpayment" align="center" show-overflow-tooltip width="200"></el-table-column>
+            <el-table-column  label="消费类型" prop="overpaymentType" align="center" show-overflow-tooltip width="200">
+              <template slot-scope="scope">
+                <span>{{ scope.row.overpaymentType == 0? '增加': '消费' }}</span>
+              </template>
+            </el-table-column>
+            <el-table-column  label="创建时间" prop="createTime" align="center" show-overflow-tooltip width="200"></el-table-column>
+            <el-table-column  label="创建人" prop="createUserName" align="center" show-overflow-tooltip width="200"></el-table-column>
+          </el-table>
+        </template>
+        <template slot="corpIdSearch">
+          <crop-select
+            v-model="search.corpId"
+            corpType="KH"
+          ></crop-select>
+        </template>
+        <template slot-scope="scope" slot="corpId">
+          {{ scope.row.corpName }}
+        </template>
+      </avue-crud>
+    </basic-container>
+  </div>
+</template>
+
+<script>
+import option from './config/mainList.json';
+import {getList, overpaymentDetail} from '@/api/maintenance/overpayment';
+
+export default {
+  name: "index",
+  data() {
+    return {
+      option: {},
+      dataList: [],
+      form: {},
+      page: {
+        pageSize: 10,
+        pagerCount: 5,
+        total: 0,
+      },
+      search: {},
+      loading: false,
+    }
+  },
+  async created() {
+    // this.option = option
+    this.option = await this.getColumnData(this.getColumnName(68), option);
+    let i = 0;
+    this.option.column.forEach(item => {
+      if (item.search) i++
+    })
+    if (i % 3 !== 0){
+      const num = 3 - Number(i % 3)
+      this.option.searchMenuSpan = num * 8;
+      this.option.searchMenuPosition = "right";
+    }
+  },
+  methods: {
+    searchChange(params, done) {
+      this.onLoad(this.page, params);
+      done();
+    },
+    currentChange(val) {
+      this.page.currentPage = val;
+    },
+    sizeChange(val) {
+      this.page.currentPage = 1;
+      this.page.pageSize = val;
+    },
+    refreshChange() {
+      this.dataList.forEach(item => {
+        this.$refs.crud.toggleRowExpansion(item, false)
+      })
+      this.page.currentPage = 1;
+      this.onLoad(this.page, this.search);
+    },
+    onLoad(page, params) {
+      this.dataList.forEach(item => {
+        this.$refs.crud.toggleRowExpansion(item, false)
+      })
+      this.loading = true;
+      getList(page.currentPage, page.pageSize, params)
+        .then(res => {
+          this.dataList = res.data.data.records ? res.data.data.records : [];
+          this.page.total = res.data.data.total;
+          if (this.page.total) {
+            this.option.height = window.innerHeight - 260;
+          }
+          this.dataList.forEach(item => {
+            this.$set(item,'insideList',[])
+            this.$set(item,'loading', true)
+          })
+        })
+        .finally(() => {
+          this.loading = false;
+        });
+    },
+    // 表格展开触发
+    expandChange(row, index) {
+      if (row.loading) {
+        overpaymentDetail({pid: row.id}).then(res => {
+          row.insideList = res.data.data? res.data.data.records: []
+          row.loading = false
+        })
+      }
+    },
+    async saveColumn() {
+      const inSave = await this.saveColumnData(
+        this.getColumnName(68),
+        this.option
+      );
+      if (inSave) {
+        this.$message.success("保存成功");
+        //关闭窗口
+        this.$refs.crud.$refs.dialogColumn.columnBox = false;
+      }
+    },
+    async resetColumn() {
+      this.option = option;
+      const inSave = await this.delColumnData(
+        this.getColumnName(68),
+        option
+      );
+      if (inSave) {
+        this.$message.success("重置成功");
+        //关闭窗口
+        this.$refs.crud.$refs.dialogColumn.columnBox = false;
+      }
+    },
+  },
+}
+</script>
+
+<style scoped>
+/deep/ .el-table__expanded-cell .el-table__header-wrapper .cell {
+  font-size: 8px !important;
+}
+/deep/ .el-table__body-wrapper .cell {
+  font-size: 8px;
+}
+</style>

+ 23 - 2
src/views/purchase/contract/detailsPage.vue

@@ -347,6 +347,24 @@
       >
       </apply-payment>
     </el-dialog>
+    <el-dialog
+      append-to-body
+      title="账单"
+      class="el-dialogDeep"
+      :visible.sync="financialAccountDialog"
+      width="70%"
+      :close-on-click-modal="false"
+      :destroy-on-close="true"
+      :close-on-press-escape="false"
+      v-dialog-drag
+    >
+      <financial-account
+        :billType="billType"
+        :billData="billData"
+        @choceFun="choceFun"
+      >
+      </financial-account>
+    </el-dialog>
   </div>
 </template>
 
@@ -362,6 +380,7 @@ import  billApplication from "@/components/bill/billApplication";
 import { corpsattn } from "@/api/basicData/configuration"
 import { contrastObj,contrastList } from "@/util/contrastData";
 import ApplyPayment from "../../../components/finance/applyPayment";
+import financialAccount from "../../../components/finance/financialAccount";
 
 export default {
   name: "detailsPage",
@@ -380,6 +399,7 @@ export default {
   },
   components: {
     ApplyPayment,
+    financialAccount,
     feeInfo,
     uploadFile,
     billApplication
@@ -395,6 +415,7 @@ export default {
       buttonLoading:false,
       applyPaymentDialog:false,
       applicationDialog:false,
+      financialAccountDialog:false,
       commodityData: false,
       takeDisabled:false, //收货状态
       viewDisabled:false,//查看状态
@@ -974,7 +995,7 @@ export default {
     applyPayment(type){
       if(this.verificationData()){
         this.beforeBillData(true,type);
-        this.applyPaymentDialog = true;
+        this.financialAccountDialog = true;
       }
     },
     //新增商品明细保存触发
@@ -1015,7 +1036,7 @@ export default {
     },
     //关闭账单
     choceFun(){
-      this.applyPaymentDialog  = false
+      this.financialAccountDialog  = false
     },
     //打开申请记录
     openApplicationDialog(){

+ 8 - 8
src/views/workManagement/main-items/detailsPage.vue

@@ -6,14 +6,14 @@
                    @click="backToList">返回列表
         </el-button>
         <div class="upper_right_button">
-          <el-button type="success"
-                     size="small"
-                     class="el-button--small-yh "
-                     :loading="buttonLoading"
-                     :disabled="!form.id || viewDisabled"
-                     @click.stop="mainCheck">
-            请核
-          </el-button>
+<!--          <el-button type="success"-->
+<!--                     size="small"-->
+<!--                     class="el-button&#45;&#45;small-yh "-->
+<!--                     :loading="buttonLoading"-->
+<!--                     :disabled="!form.id || viewDisabled"-->
+<!--                     @click.stop="mainCheck">-->
+<!--            请核-->
+<!--          </el-button>-->
 
 <!--          <el-dropdown style="padding: 0 8px;line-height: 0">-->
 <!--            <el-button-->

+ 8 - 2
src/views/workManagement/main-items/list.vue

@@ -10,6 +10,7 @@
       :table-loading="loading"
       :summary-method="summaryMethod"
       @row-del="rowDel"
+      @size-change="sizeChange"
       @search-change="searchChange"
       @current-change="currentChange"
       @refresh-change="refreshChange"
@@ -24,7 +25,7 @@
         ></select-component>
       </template>
       <template slot-scope="scope" slot="corpId">
-        {{ scope.row.corpNames }}
+        <span style="color: #409EFF;cursor: pointer" @click.stop="editOpen(scope.row,scope.index)">{{ scope.row.corpNames }}</span>
       </template>
       <template slot="corpAttnSearch">
         <el-select v-model="search.corpAttn"
@@ -116,7 +117,8 @@ export default {
       page: {
         currentPage: 1,
         total: 0,
-        pageSize: 10
+        pageSize: 10,
+        pageSizes: [10, 50, 100, 200, 300, 400, 500,1000]
       }
     };
   },
@@ -226,6 +228,10 @@ export default {
       this.getList(this.page, params);
       done();
     },
+    sizeChange(val) {
+      this.page.currentPage = 1;
+      this.page.pageSize = val;
+    },
     currentChange(val) {
       this.page.currentPage = val;
       this.getList(this.page);

+ 43 - 37
src/views/workManagement/performanceAnalysis/config/clientList.json

@@ -27,6 +27,10 @@
   "summaryText": "合计",
   "sumColumnList": [
     {
+      "name": "countUserName",
+      "type": "sum"
+    },
+    {
       "name": "jan",
       "type": "sum"
     },
@@ -81,43 +85,6 @@
   ],
   "column": [
     {
-      "label": "类型",
-      "prop": "flag",
-      "searchValue": "2",
-      "search": true,
-      "hide": true
-    },
-    {
-      "label": "年份",
-      "prop": "year",
-      "search": true,
-      "hide": true,
-      "type": "select",
-      "searchValue": "2021",
-      "dicData": [
-        {
-        "label": "2018",
-        "value": 2018
-      },
-        {
-        "label": "2019",
-        "value": 2019
-      },
-        {
-          "label": "2020",
-          "value": 2020
-        },
-        {
-          "label": "2021",
-          "value": 2021
-        },
-        {
-          "label": "2022",
-          "value": 2022
-        }
-      ]
-    },
-    {
       "label": "客户名称",
       "prop": "corpNames",
       "search": true,
@@ -222,6 +189,45 @@
       "overHidden": true,
       "width": 90,
       "index": 15
+    },
+    {
+      "label": "类型",
+      "prop": "flag",
+      "searchValue": "2",
+      "search": true,
+      "hide": true,
+      "index": 16
+    },
+    {
+      "label": "年份",
+      "prop": "year",
+      "search": true,
+      "hide": true,
+      "index": 17,
+      "type": "select",
+      "searchValue": "2021",
+      "dicData": [
+        {
+          "label": "2018",
+          "value": 2018
+        },
+        {
+          "label": "2019",
+          "value": 2019
+        },
+        {
+          "label": "2020",
+          "value": 2020
+        },
+        {
+          "label": "2021",
+          "value": 2021
+        },
+        {
+          "label": "2022",
+          "value": 2022
+        }
+      ]
     }
   ]
 }

+ 4 - 0
src/views/workManagement/performanceAnalysis/config/mainList.json

@@ -27,6 +27,10 @@
   "summaryText": "合计",
   "sumColumnList": [
     {
+      "name": "countCorp",
+      "type": "sum"
+    },
+    {
       "name": "jan",
       "type": "sum"
     },

+ 6 - 4
src/views/workManagement/performanceAnalysis/index.vue

@@ -92,9 +92,10 @@
           label: '客户'
         }],
         page: {
-          pageSize: 10,
-          pagerCount: 5,
+          currentPage: 1,
           total: 0,
+          pageSize: 10,
+          pageSizes: [10, 50, 100, 200, 300, 400, 500,1000]
         },
       }
     },
@@ -161,8 +162,9 @@
       selectionChange() {
         console.log('1')
       },
-      sizeChange() {
-        console.log('1')
+      sizeChange(val) {
+        this.page.currentPage = 1;
+        this.page.pageSize = val;
       },
       currentChange(val) {
         this.page.currentPage = val

+ 1 - 0
src/views/workManagement/receipt/configuration/statisticalList.json

@@ -53,6 +53,7 @@
       "prop": "status",
       "type": "select",
       "index": 1,
+      "width": 80,
       "search": true,
       "overHidden": true,
       "dicData": [

+ 3 - 3
src/views/workManagement/receipt/statisticalList.vue

@@ -34,7 +34,7 @@
         ></select-component>
       </template>
       <template slot-scope="scope" slot="cornId">
-        {{ scope.row.cornName }}
+        <span style="color: #409EFF;cursor: pointer" @click.stop="check(scope.row,scope.index)">{{ scope.row.cornName }}</span>
       </template>
       <template slot-scope="scope" slot="deptid">
         {{ scope.row.deptName }}
@@ -88,7 +88,7 @@
         form: {},
         search:{},
         exportLoading:false,
-        option: {},
+        option: option,
         parentId:0,
         dataList: [],
         options:[],
@@ -113,7 +113,7 @@
     },
     async created() {
 
-      this.option = await this.getColumnData(this.getColumnName(57), option);
+      // this.option = await this.getColumnData(this.getColumnName(57), option);
 
       getUserList().then(res=>{
         res.data.data.map((item,index)=>{