linwenxin преди 7 месеца
родител
ревизия
fa3a9b8ed6

+ 57 - 0
src/api/masterAccountingManagement.js

@@ -0,0 +1,57 @@
+import request, { postBlob } from '@/utils/request'
+
+export function partsCreditGatherList(data) {
+  return request({
+    url: `/parts/credit/gather/list?moduleId=${data.moduleId}`,
+    method: 'post',
+    data
+  })
+}
+
+export function partsCreditGatherListExport(data, name) {
+  return postBlob({
+    url: '/parts/credit/gather/list/export',
+    data,
+    name
+  })
+}
+
+export function partsCreditList(data) {
+  return request({
+    url: `/parts/credit/list?moduleId=${data.moduleId}`,
+    method: 'post',
+    data
+  })
+}
+
+export function partsCreditListExport(data, name) {
+  return postBlob({
+    url: '/parts/credit/list/export',
+    data,
+    name
+  })
+}
+
+export function ppartsCreditDetail(params) {
+  return request({
+    url: `/parts/credit/detail`,
+    method: 'post',
+    params
+  })
+}
+
+export function partsCreditCode(params) {
+  return request({
+    url: `/parts/credit/code`,
+    method: 'post',
+    params
+  })
+}
+
+export function partsCreditChangeCash(params) {
+  return request({
+    url: `/parts/credit/change-cash`,
+    method: 'post',
+    params
+  })
+}

+ 8 - 0
src/api/material-system/website/website-parts-shop-sales.js

@@ -42,6 +42,14 @@ export function partsPartssalesorderCode(params) {
   })
   })
 }
 }
 
 
+export function partsSalesOrderChangeCredit(params) {
+  return request({
+    url: `/parts/sales/order/change-credit`,
+    method: 'post',
+    params
+  })
+}
+
 export function partsPartssalesorderSalesOrderDetail(params) {
 export function partsPartssalesorderSalesOrderDetail(params) {
   return request({
   return request({
     url: `/parts/sales/order/loadSalesOrderById`,
     url: `/parts/sales/order/loadSalesOrderById`,

+ 14 - 1
src/views/partsManagement/accessoryWebsite/website-parts-shop-sales-manage/website-parts-shop-sales/components/pay-popup-window.vue

@@ -15,6 +15,7 @@
         <el-descriptions-item label="支付方式">
         <el-descriptions-item label="支付方式">
           <el-radio v-model="radio" label="wx">微信支付</el-radio>
           <el-radio v-model="radio" label="wx">微信支付</el-radio>
           <el-radio v-if="partsIsCash" v-model="radio" label="xj">现金支付</el-radio>
           <el-radio v-if="partsIsCash" v-model="radio" label="xj">现金支付</el-radio>
+          <el-radio v-model="radio" label="CREDIT">记账</el-radio>
         </el-descriptions-item>
         </el-descriptions-item>
         <el-descriptions-item v-if="data.payFlag === 0 && data.payType === 4 && radio === 'wx'" label="支付商户">
         <el-descriptions-item v-if="data.payFlag === 0 && data.payType === 4 && radio === 'wx'" label="支付商户">
           <el-select style="width: 220px" v-model="payConfigId" size="small" clearable placeholder="请选择支付商户">
           <el-select style="width: 220px" v-model="payConfigId" size="small" clearable placeholder="请选择支付商户">
@@ -43,6 +44,9 @@
         <el-button size="small" type="info" @click="handleClose">未收款</el-button>
         <el-button size="small" type="info" @click="handleClose">未收款</el-button>
         <el-button size="small" type="primary" @click="yjsqxj">已收取现金</el-button>
         <el-button size="small" type="primary" @click="yjsqxj">已收取现金</el-button>
       </div>
       </div>
+      <div style="text-align: center" v-if="radio === 'CREDIT'">
+        <el-button size="small" type="info" @click="jizhanggongn">确定记账</el-button>
+      </div>
     </div>
     </div>
   </el-dialog>
   </el-dialog>
 </template>
 </template>
@@ -51,7 +55,8 @@
 import {
 import {
   partsPartssalesorderCode,
   partsPartssalesorderCode,
   partsPartssalesorderChangeCash,
   partsPartssalesorderChangeCash,
-  queryPayStatus
+  queryPayStatus,
+  partsSalesOrderChangeCredit
 } from '@/api/material-system/website/website-parts-shop-sales'
 } from '@/api/material-system/website/website-parts-shop-sales'
 import { adminWebsitPayConfigList } from '@/api/common.js'
 import { adminWebsitPayConfigList } from '@/api/common.js'
 import QRCode from 'qrcodejs2'
 import QRCode from 'qrcodejs2'
@@ -188,6 +193,14 @@ export default {
         this.$emit('setVisible', false)
         this.$emit('setVisible', false)
         this.$emit('success')
         this.$emit('success')
       })
       })
+    },
+    jizhanggongn() {
+      partsSalesOrderChangeCredit({
+        id: this.item.id
+      }).then(res => {
+        this.$emit('setVisible', false)
+        this.$emit('success')
+      })
     }
     }
   }
   }
 }
 }

+ 221 - 0
src/views/partsManagement/masterAccountingManagement/index.vue

@@ -0,0 +1,221 @@
+<template>
+  <template-page
+    v-if="showTable"
+    ref="pageRef"
+    :get-list="[getList1, getList2][pageLevel]"
+    :exportList="[exportList1, exportList2][pageLevel]"
+    :options-evens-group="[optionsEvensGroup1, optionsEvensGroup2][pageLevel]"
+    :operation="[operation1, operation2][pageLevel]()"
+    :expCode="['exp', 'detailExp'][pageLevel]"
+    :table-attributes="tableAttributes"
+    :table-events="tableEvents"
+    :moreParameters="moreParameters"
+    :column-parsing="columnParsing"
+  >
+    <div slot="moreSearch" v-if="pageLevel == 1">
+      <el-radio-group v-model="tagStatus" size="mini" @change="changeType">
+        <el-radio-button label="">全部</el-radio-button>
+        <el-radio-button :label="false">未收款</el-radio-button>
+        <el-radio-button :label="true">已收款</el-radio-button>
+      </el-radio-group>
+      <br /><br />
+    </div>
+    <div class="cartographer_big">
+      <el-dialog title="费用明细" width="100%" :modal="false" :visible.sync="formBool" :before-close="handleClose">
+        <zj-page-container v-if="formBool">
+          <zj-page-fill class="neibuview">
+            <zj-form-container ref="formRef" :form-data="formData" :form-attributes="{ size: 'mini' }">
+              <zj-form-module title="基本信息" label-width="130px" :form-data="formData" :form-items="formItems" />
+            </zj-form-container>
+          </zj-page-fill>
+          <div>
+            <div style="box-sizing: border-box; padding: 10px; text-align: right">
+              <el-button size="mini" @click="handleClose">取 消</el-button>
+              <el-button v-if="!formEdit" size="mini" @click="formConfirm" type="primary">确 定</el-button>
+            </div>
+          </div>
+        </zj-page-container>
+      </el-dialog>
+    </div>
+  </template-page>
+</template>
+
+<script>
+import TemplatePage from '@/components/template/template-page-1.vue'
+import import_mixin from '@/components/template/import_mixin.js'
+import operation_mixin from '@/components/template/operation_mixin.js'
+import {
+  partsCreditGatherList,
+  partsCreditGatherListExport,
+  partsCreditList,
+  partsCreditListExport,
+  ppartsCreditDetail,
+  partsCreditCode,
+  partsCreditChangeCash
+} from '@/api/masterAccountingManagement'
+export default {
+  components: { TemplatePage },
+  mixins: [import_mixin, operation_mixin],
+  data() {
+    return {
+      // 表格属性
+      tableAttributes: {
+        // 启用勾选列
+        selectColumn: false
+      },
+      // 表格事件
+      tableEvents: {
+        'selection-change': this.selectionChange
+      },
+      // 勾选选中行
+      recordSelected: [],
+      pageLevel: 0,
+      showTable: true,
+      collectItem: {},
+      formData: {
+        companyWechatName: JSON.parse(localStorage.getItem('greemall_user')).companyName
+      },
+      formBool: false,
+      formEdit: false,
+      tagStatus: ''
+    }
+  },
+  computed: {
+    optionsEvensGroup1() {
+      return []
+    },
+    optionsEvensGroup2() {
+      return [
+        [
+          [
+            {
+              name: '返回汇总页面',
+              click: () => {
+                this.pageLevel = 0
+              }
+            }
+          ]
+        ]
+      ]
+    },
+    // 更多参数
+    moreParameters() {
+      return []
+    },
+    formItems() {
+      return [
+        {
+          name: 'el-input',
+          md: 12,
+          attributes: {
+            disabled: this.formEdit
+          },
+          formItemAttributes: {
+            label: '网点名称',
+            prop: 'importWebsitName',
+            rules: []
+          }
+        }
+      ]
+    }
+  },
+  watch: {
+    pageLevel() {
+      this.showTable = false
+      this.$nextTick(() => {
+        this.showTable = true
+      })
+    }
+  },
+  methods: {
+    changeType(val) {
+      this.$refs.pageRef.refreshList()
+    },
+    getList1(p, cb) {
+      var pam = JSON.parse(JSON.stringify(p))
+      try {
+        cb && cb(pam)
+        return partsCreditGatherList(pam)
+      } catch (err) {}
+    },
+    exportList1: partsCreditGatherListExport,
+    getList2(p, cb) {
+      var pam = JSON.parse(JSON.stringify(p))
+      try {
+        pam.params.push({ param: 'a.websit_id', compare: '=', value: this.collectItem.websitId })
+        pam.params.push({ param: 'a.worker_id', compare: '=', value: this.collectItem.workerId })
+        if (this.tagStatus !== '') {
+          pam.params.push({ param: 'a.credit_status', compare: '=', value: this.tagStatus })
+        }
+        cb && cb(pam)
+        return partsCreditList(pam)
+      } catch (err) {}
+    },
+    exportList2: partsCreditListExport,
+    operation1() {
+      return this.operationBtn({
+        detail: {
+          click: ({ row, index, column }) => {
+            this.collectItem = { ...row }
+            this.tagStatus = ''
+            this.pageLevel = 1
+          }
+        }
+      })
+    },
+    operation2() {
+      return this.operationBtn({
+        view: {
+          conditions: ({ row, index, column }) => {
+            return true
+          },
+          click: ({ row, index, column }) => {
+            ppartsCreditDetail({ id: row.id }).then(res => {
+              console.log(res)
+            })
+          }
+        },
+        collection: {
+          prompt: '是否收款?',
+          conditions: ({ row, index, column }) => {
+            return !row.creditStatus
+          },
+          click: ({ row, index, column }) => {}
+        }
+      })
+    },
+    // 表格列解析渲染数据更改
+    columnParsing(item, defaultData) {
+      return defaultData
+    },
+    // 监听勾选变化
+    selectionChange(data) {
+      this.recordSelected = data
+    },
+    // 关闭弹窗
+    handleClose() {
+      this.$data.formData = this.$options.data().formData
+      this.formBool = false
+      this.formEdit = false
+    },
+    // 收款
+    formConfirm() {}
+  }
+}
+</script>
+
+<style lang="scss" scoped>
+.neibuview {
+  box-sizing: border-box;
+  padding-left: 16px;
+
+  ::v-deep & > .zj-page-fill-scroll {
+    box-sizing: border-box;
+    padding-right: 16px;
+
+    & > div:nth-child(1) {
+      margin-top: 20px;
+    }
+  }
+}
+</style>