Przeglądaj źródła

费用申请流程开发
对账申请修改时间段格式

Z 2 lat temu
rodzic
commit
1e769e29c5

+ 30 - 0
src/api/bpm/components/financialManage/fee-manage/fee-application/index.js

@@ -0,0 +1,30 @@
+import request from '@/utils/request';
+
+/*  费用申请  */
+
+// 编辑
+export async function feeApplyUpdateAPI(data) {
+  const res = await request.put(`/eom/finfeeapply/update`, data);
+  if (res.data.code == 0) {
+    return res.data.data;
+  }
+  return Promise.reject(new Error(res.data.message));
+}
+
+// 信息
+export async function getFeeApplyInfoAPI(id) {
+  const res = await request.get(`/eom/finfeeapply/getById/${id}`);
+  if (res.data.code == 0) {
+    return res.data.data;
+  }
+  return Promise.reject(new Error(res.data.message));
+}
+
+// 提交-开启流程
+export async function finFeeApplySubmit(data) {
+  const res = await request.post('/bpm/finFeeApply/submit', data);
+  if (res.data.code == 0) {
+    return res.data;
+  }
+  return Promise.reject(new Error(res.data.message));
+}

+ 2 - 1
src/enum/dict.js

@@ -57,7 +57,8 @@ export default {
   质检状态: 'quality_control_code',
   质检结果: 'Qc_results_code',
   采购收货单类型: 'purchase_receive_type',
-  产品不合格类型: 'product_unqualified_type'
+  产品不合格类型: 'product_unqualified_type',
+  关联类型: 'fin_link_type'
 };
 
 export const numberList = [

+ 517 - 0
src/views/bpm/handleTask/components/financialManage/feeManage/feeApplication/addOrEditDialog.vue

@@ -0,0 +1,517 @@
+<template>
+  <div>
+
+    <el-form ref="form" :rules="rules" :model="form" label-width="100px">
+      <headerTitle title="基本信息"></headerTitle>
+      <el-row :gutter="12">
+        <el-col :span="12">
+          <el-form-item
+            label="申请部门"
+            prop="applyDeptId"
+            style="margin-bottom: 22px"
+          >
+            <ele-tree-select
+              :disabled="!['starter'].includes(taskDefinitionKey)"
+              clearable
+              :data="deptTreeList"
+              v-model="form.applyDeptId"
+              valueKey="id"
+              labelKey="name"
+              placeholder="请选择"
+              @change="changeDeptInfo"
+              default-expand-all
+            />
+          </el-form-item>
+        </el-col>
+        <el-col :span="12">
+          <el-form-item
+            label="申请人"
+            prop="applyUserId"
+            style="margin-bottom: 22px"
+          >
+            <personSelect
+              :disabled="!['starter'].includes(taskDefinitionKey)"
+              ref="directorRef"
+              v-model="form.applyUserId"
+              @selfChange="changeUserInfo"
+            />
+          </el-form-item>
+        </el-col>
+      </el-row>
+      <el-row :gutter="12">
+        <el-col :span="12">
+          <el-form-item
+            label="费用类型"
+            prop="feeTypeId"
+            style="margin-bottom: 22px"
+          >
+            <ele-tree-select
+              :disabled="!['starter'].includes(taskDefinitionKey)"
+              clearable
+              filterable
+              ref="feeTypeTree"
+              :data="feeTypeList"
+              v-model="form.feeTypeId"
+              valueKey="id"
+              labelKey="name"
+              placeholder="请选择"
+              @change="changeFeeTypeInfo"
+              default-expand-all
+            />
+          </el-form-item>
+        </el-col>
+        <el-col :span="12">
+          <el-form-item
+            label="金额"
+            prop="amount"
+            style="margin-bottom: 22px">
+            <el-input-number  :disabled="!['starter'].includes(taskDefinitionKey)" v-model="form.amount" :precision="2" :controls="false" style="width: 100%"
+                             :min="0"></el-input-number>
+          </el-form-item>
+        </el-col>
+      </el-row>
+      <el-row :gutter="12">
+        <el-col :span="12">
+          <el-form-item
+            label="关联类型"
+            style="margin-bottom: 22px">
+            <DictSelection  :disabled="!['starter'].includes(taskDefinitionKey)" clearable dictName="关联类型" v-model="form.finLinkType"
+                           @itemChange="handleChangeFinLink"></DictSelection>
+          </el-form-item>
+        </el-col>
+        <el-col :span="12" v-if="['financeApprove'].includes(taskDefinitionKey)">
+          <el-form-item
+            label="会计科目"
+            prop="accountingSubjectId"
+            style="margin-bottom: 22px"
+          >
+            <ele-tree-select
+              clearable
+              filterable
+              ref="treeSelect"
+              :data="accountingSubjectList"
+              v-model="form.accountingSubjectId"
+              valueKey="id"
+              labelKey="name"
+              placeholder="请选择"
+              @change="changeSubjectInfo"
+              default-expand-all
+            />
+          </el-form-item>
+        </el-col >
+
+      </el-row>
+      <el-row v-if="form.finLinkType==1">
+        <el-col :span="12">
+          <el-form-item
+            label="客户名称"
+            prop="contactName"
+            style="margin-bottom: 22px">
+            <el-input  :disabled="!['starter'].includes(taskDefinitionKey)" v-model="form.contactName" @click.native="handleSelectContact" clearable></el-input>
+          </el-form-item>
+        </el-col>
+      </el-row>
+      <el-row v-if="form.finLinkType==2">
+        <el-col :span="12">
+          <el-form-item
+            label="供应商名称"
+            prop="contactName"
+            style="margin-bottom: 22px">
+            <el-input :disabled="!['starter'].includes(taskDefinitionKey)" v-model="form.contactName" @click.native="handleSelectContact" clearable></el-input>
+          </el-form-item>
+        </el-col>
+      </el-row>
+      <el-row v-if="form.finLinkType==3">
+        <el-col :span="12">
+          <el-form-item
+            label="商机名称"
+            style="margin-bottom: 22px">
+            <el-select
+              v-model="form.opportunityId"
+              :disabled="!['starter'].includes(taskDefinitionKey)"
+              style="width: 100%"
+              @change="handleSelectOpportunity">
+              <el-option
+                v-for="item in opportunityList"
+                :key="item.id"
+                :label="item.name"
+                :value="item.id"
+              >
+              </el-option>
+            </el-select>
+          </el-form-item>
+        </el-col>
+      </el-row>
+      <el-row v-if="form.finLinkType==4">
+        <el-col :span="12">
+          <el-form-item
+            label="选择合同"
+            style="margin-bottom: 22px">
+            <el-input :disabled="!['starter'].includes(taskDefinitionKey)" v-model="form.contractName" @click.native="handleSelectContract" clearable></el-input>
+          </el-form-item>
+        </el-col>
+      </el-row>
+      <el-row v-if="form.finLinkType==5">
+      </el-row>
+      <el-row v-if="form.finLinkType==6">
+        <el-col :span="12">
+          <el-form-item
+            label="销售订单"
+            style="margin-bottom: 22px">
+            <el-input :disabled="!['starter'].includes(taskDefinitionKey)" v-model="form.saleOrderCode" @click.native="handleSelectSaleOrder" clearable></el-input>
+          </el-form-item>
+        </el-col>
+        <el-col :span="12">
+          <el-form-item
+            label="采购订单"
+            style="margin-bottom: 22px">
+            <el-input :disabled="!['starter'].includes(taskDefinitionKey)" v-model="form.purchaseOrderCode" @click.native="handleSelectPurchaseOrder" clearable></el-input>
+          </el-form-item>
+        </el-col>
+      </el-row>
+
+
+      <el-row :gutter="12">
+        <el-col :span="24">
+          <el-form-item
+            label="备注"
+            style="margin-bottom: 22px">
+            <el-input :disabled="!['starter'].includes(taskDefinitionKey)" v-model="form.remark" type="textarea" clearable></el-input>
+          </el-form-item>
+        </el-col>
+      </el-row>
+      <el-row :gutter="12">
+        <el-col :span="12">
+          <el-form-item prop="repliedFiles" label="附件">
+            <fileUpload
+              v-if="['starter'].includes(taskDefinitionKey)"
+              v-model="form.files"
+              module="main"
+              :showLib="false"
+              :limit="10"
+            />
+            <template  v-else>
+              <el-link
+
+                v-if="form.files.length"
+                v-for="item in form.files"
+                type="primary"
+                :underline="false"
+                @click="downloadFile(item)">
+                {{ item.name }}
+              </el-link>
+            </template>
+
+          </el-form-item>
+        </el-col>
+      </el-row>
+
+
+    </el-form>
+    <!--选择客户/供应商-->
+    <customer-list-dialog v-if="customerListDialogFlag" :customerListDialogFlag.sync="customerListDialogFlag"
+                          ref="customerListDialogRef" @changeParent="getCustomerData"></customer-list-dialog>
+    <!--选择合同-->
+    <contract-list-dialog v-if="contractListDialogFlag" :contractListDialogFlag.sync="contractListDialogFlag"
+                          ref="contractListDialogRef" @changeParent="getContractData"></contract-list-dialog>
+    <!--选择销售订单-->
+    <sale-order-list-dialog ref="saleOrderListDialogRef" @changeParent="getSaleOrderData"></sale-order-list-dialog>
+    <!--选择采购订单-->
+    <purchase-order-list-dialog ref="purchaseOrderListDialogRef"
+                                @changeParent="getPurchaseOrderData"></purchase-order-list-dialog>
+  </div>
+</template>
+<script>
+import personSelect from "@/components/CommomSelect/person-select.vue";
+import {listOrganizations} from "@/api/system/organization";
+import {mapGetters} from "vuex";
+import customerListDialog from "./customerListDialog.vue";
+import contractListDialog from './contractListDialog.vue'
+import saleOrderListDialog from "@/views/bpm/handleTask/components/saleOrder/invoice/orderListDialog.vue";
+import purchaseOrderListDialog from "@/views/bpm/handleTask/components/purchaseOrder/invoice/orderListDialog.vue";
+import fileUpload from "@/components/upload/fileUpload.vue";
+import {
+  feeApplyUpdateAPI,
+  finFeeApplySubmit,
+  getFeeApplyInfoAPI
+} from "@/api/bpm/components/financialManage/fee-manage/fee-application";
+import {getTreeByPid} from "@/api/classifyManage";
+import {getTableList} from '@/api/bpm/components/saleManage/quotation';
+import {getFile} from "@/api/system/file";
+
+export default {
+  name: "add-or-edit-dialog",
+  components: {
+    fileUpload,
+    purchaseOrderListDialog,
+    saleOrderListDialog,
+    personSelect,
+    customerListDialog,
+    contractListDialog
+  },
+  computed: {
+    ...mapGetters(['user'])
+  },
+  props: {
+    businessId: {
+      default: ''
+    },
+    taskDefinitionKey:{
+      default: ''
+    },
+  },
+  data() {
+    return {
+      contractListDialogFlag: false,
+      customerListDialogFlag: false,
+      dialogType: '',
+      title: '',
+      form: {
+        accountingSubjectId: '',
+        accountingSubjectName: "",
+        amount: undefined,
+        applyDeptId: '',
+        applyDeptName: "",
+        applyUserId: '',
+        applyUserName: "",
+        contactId: '',
+        contactName: "",
+        contractCode: "",
+        contractId: '',
+        contractName: "",
+        finLinkType: '',
+        finLinkTypeName: '',
+        feeTypeId: '',
+        feeTypeName: "",
+        feeTypeCode: "",
+        files: [],
+        opportunityId: '',
+        opportunityName: "",
+        projectId: '',
+        projectName: "",
+        purchaseOrderCode: "",
+        purchaseOrderId: '',
+        remark: "",
+        saleOrderCode: "",
+        saleOrderId: ''
+      },
+      feeTypeList: [],
+      accountingSubjectList: [],
+      deptList: [],
+      deptTreeList: [],
+      opportunityList: [],
+      rules: {
+        applyDeptId: {required: true, message: '请选择', trigger: 'change'},
+        applyUserId: {required: true, message: '请选择', trigger: 'change'},
+        accountingSubjectId: {required: true, message: '请选择', trigger: 'change'},
+        feeTypeId: {required: true, message: '请选择', trigger: 'change'},
+        amount: {required: true, message: '请输入', trigger: 'blur'},
+      }
+    }
+  },
+  created() {
+    this.init()
+  },
+  methods: {
+    //初始化
+    async init(row = {}, type) {
+      await this.getClassifyList(25, 'feeTypeList')
+      await this.getClassifyList(24, 'accountingSubjectList')
+      await this.getDeptList()
+      await this.getFeeApplyInfoInfo(this.businessId)
+      this.$nextTick(async () => {
+        await this.getUserList(this.form.applyDeptId);
+      })
+    },
+    //获取详情
+    async getFeeApplyInfoInfo(id) {
+      this.form = await getFeeApplyInfoAPI(id)
+    },
+    downloadFile(file) {
+      getFile({objectName: file.storePath}, file.name);
+    },
+    //修改关联类型
+    handleChangeFinLink(val) {
+      this.form = Object.assign(this.form, {
+        accountingSubjectId: '',
+        accountingSubjectName: "",
+        contactId: '',
+        contactName: "",
+        contractCode: "",
+        contractId: '',
+        contractName: "",
+        opportunityId: '',
+        opportunityName: "",
+        projectId: '',
+        projectName: "",
+        purchaseOrderCode: "",
+        purchaseOrderId: '',
+        saleOrderCode: "",
+        saleOrderId: ''
+      })
+      if (!val.dictValue) return
+      this.form.finLinkTypeName = val.dictValue || ''
+      if (val.dictCode == 3) {
+        this.getOpportunityList()
+      }
+
+    },
+    //获取分类管理中的数据
+    async getClassifyList(id, listName) {
+      let res = await getTreeByPid(id)
+      this[listName] = res.data
+    },
+    //获取费用类别选中数据
+    changeFeeTypeInfo(val) {
+      if (!val) {
+        this.form.feeTypeName = ''
+        this.form.feeTypeCode = ''
+      }
+      let data = this.$refs.feeTypeTree?.$refs?.tree?.getCurrentNode() || {}
+      this.form.feeTypeName = data.name
+      this.form.feeTypeCode = data.code
+    },
+    //获取会计科目选中数据
+    changeSubjectInfo(val) {
+      if (!val) return this.form.accountingSubjectName = ''
+      let data = this.$refs.treeSelect?.$refs?.tree?.getCurrentNode() || {}
+      this.form.accountingSubjectName = data.name
+    },
+
+    //选择客户或者供应商
+    handleSelectContact(val) {
+      if (val.target.nodeName == 'I') {
+        this.form.contactId = ''
+        this.form.contactName = ''
+        this.form.opportunityId = ''
+        this.form.opportunityName = ''
+        this.opportunityList = []
+        return
+      }
+      this.customerListDialogFlag = true
+      let params = {
+        id: this.form.contactId,
+        assetTreeId: this.form.finLinkType == 2 ? '19' : '17',
+        classType: this.form.finLinkType || 1,
+        titleName: this.form.finLinkType == 2 ? '选择供应商' : '选择客户',
+      }
+      this.$nextTick(() => {
+        this.$refs.customerListDialogRef.init(params)
+      })
+    },
+    //获取选择 供应商/客户 数据
+    getCustomerData(params) {
+      this.form.contactId = params.id
+      this.form.contactName = params.name
+    },
+    //获取客户的商机列表
+    async getOpportunityList() {
+      const data = await getTableList({
+        pageNum: 1,
+        size: 999,
+        approvalStatus: 2
+      });
+      //  contactName: name,
+      this.opportunityList = data.list;
+    },
+    //获取选择的商机数据
+    handleSelectOpportunity(val) {
+      if (!val) return this.form.opportunityName = ''
+      this.form.opportunityName = this.opportunityList.find(item => item.id == val)?.name
+    },
+    // 获取部门数据
+    getDeptList() {
+      listOrganizations().then((list) => {
+        this.deptList = list;
+        this.deptTreeList = this.$util.toTreeData({
+          data: list,
+          idField: 'id',
+          parentIdField: 'parentId'
+        });
+      });
+    },
+    // 选择负责人部门
+    changeDeptInfo(id) {
+      const info = this.deptList.find((e) => e.id == id) || {};
+      this.form.applyDeptName = info.name;
+      this.form.applyUserId = '';
+      this.form.applyUserName = '';
+      this.getUserList(id);
+    },
+    // 获取人员数据
+    getUserList(deptId) {
+      if (deptId) {
+        this.$refs.directorRef.getList({deptId});
+      }
+    },
+    //选择人员数据
+    changeUserInfo(val, info) {
+      this.form.applyUserName = info.name;
+    },
+    //选择合同
+    handleSelectContract(val) {
+      if (val.target.nodeName == 'I') {
+        this.form.contractId = ''
+        this.form.contractName = ''
+        return
+      }
+      this.contractListDialogFlag = true
+      this.$nextTick(() => {
+        this.$refs.contractListDialogRef.init()
+      })
+    },
+    //获取合同数据
+    getContractData(params) {
+      this.form.contractId = params.type == 1 ? params.partaId : params.partbName
+      this.form.contractName = params.type == 1 ? params.partaName : params.partbName
+    },
+    //选择销售订单
+    handleSelectSaleOrder(val) {
+      if (val.target.nodeName == 'I') {
+        this.form.saleOrderId = ''
+        this.form.saleOrderCode = ''
+        return
+      }
+      this.$refs.saleOrderListDialogRef.open();
+    },
+    //获取销售订单数据
+    getSaleOrderData(obj) {
+      this.form = Object.assign({}, this.form, {
+        saleOrderId: obj.id,
+        saleOrderCode: obj.orderNo
+      });
+    },
+    //选择采购订单
+    handleSelectPurchaseOrder(val) {
+      if (val.target.nodeName == 'I') {
+        this.form.purchaseOrderId = ''
+        this.form.purchaseOrderCode = ''
+        return
+      }
+      this.$refs.purchaseOrderListDialogRef.open();
+    },
+    //获取采购订单数据
+    getPurchaseOrderData(obj) {
+      this.form = Object.assign({}, this.form, {
+        purchaseOrderId: obj.id,
+        purchaseOrderCode: obj.orderNo
+      });
+    },
+
+    //
+    getTableValue() {
+      return new Promise((resolve) => {
+        this.$refs.form.validate(async valid => {
+          if (!valid) return this.$message.warning('有必填项未填,请检查')
+          const API = feeApplyUpdateAPI
+          const id = await API(this.form)
+          resolve(id)
+        })
+      })
+    },
+  }
+}
+</script>
+<style scoped lang="scss">
+
+</style>

+ 302 - 0
src/views/bpm/handleTask/components/financialManage/feeManage/feeApplication/contractListDialog.vue

@@ -0,0 +1,302 @@
+<template>
+  <el-dialog
+    title="选择合同"
+    custom-class="ele-dialog-form long-dialog-form"
+    :visible.sync="contractListDialogFlag"
+    :before-close="handleClose"
+    :close-on-click-modal="false"
+    top="5vh"
+    :close-on-press-escape="false"
+    append-to-body
+    width="80%"
+  >
+    <el-card shadow="never">
+      <searchContract @search="reload"></searchContract>
+      <ele-split-layout
+        width="244px"
+        allow-collapse
+        :right-style="{ overflow: 'hidden' }"
+      >
+        <div class="ele-border-lighter split-layout-right-content">
+          <AssetTree
+            @handleNodeClick="handleNodeClick"
+            id="20"
+            :isFirstRefreshTable="false"
+            ref="treeList"
+          />
+        </div>
+        <!-- 表格 -->
+        <template v-slot:content>
+          <ele-pro-table
+            ref="table"
+            :columns="columns"
+            :datasource="datasource"
+            row-key="id"
+            height="calc(100vh - 500px)"
+            class="dict-table"
+            @cell-click="cellClick"
+          >
+            <!-- 表头工具栏 -->
+            <template v-slot:action="{ row }">
+              <el-radio class="radio" v-model="radio" :label="row.id"><i></i></el-radio>
+            </template>
+          </ele-pro-table>
+        </template>
+      </ele-split-layout>
+    </el-card>
+
+    <div class="btns" slot="footer">
+      <el-button type="primary" size="small" @click="selected">选择</el-button>
+      <el-button size="small" @click="handleClose">关闭</el-button>
+    </div>
+  </el-dialog>
+</template>
+
+<script>
+import searchContract from './contractSearch.vue';
+import {getTableList} from '@/api/bpm/components/contractManage/contractBook';
+import AssetTree from '@/components/AssetTree';
+
+export default {
+  components: {
+    AssetTree,
+    searchContract
+  },
+  props: {
+    type: {
+      default: 1,
+      type: Number
+    },
+    contractListDialogFlag: {
+      default: false,
+      type: Boolean
+    },
+  },
+  data() {
+    return {
+      currentIndex: null,
+      columns: [
+        {
+          columnKey: 'index',
+          label: '序号',
+          type: 'index',
+          width: 55,
+          align: 'center',
+          showOverflowTooltip: true,
+          fixed: 'left'
+        },
+        {
+          action: 'action',
+          slot: 'action',
+          align: 'center',
+          label: '选择'
+        },
+        {
+          prop: 'contractName',
+          label: '合同名称',
+          align: 'center',
+          showOverflowTooltip: true,
+          minWidth: 200
+        },
+        {
+          prop: 'typeName',
+          label: '合同类型',
+          align: 'center',
+          showOverflowTooltip: true,
+          minWidth: 140
+        },
+        {
+          prop: 'partaName',
+          label: '甲方名称',
+          align: 'center',
+          showOverflowTooltip: true,
+          minWidth: 150
+        },
+        {
+          prop: 'partaLinkName',
+          label: '甲方联系人',
+          align: 'center',
+          showOverflowTooltip: true,
+          minWidth: 130
+        },
+
+        {
+          prop: 'partaTel',
+          label: '甲方联系电话',
+          align: 'center',
+          showOverflowTooltip: true,
+          minWidth: 130
+        },
+        {
+          prop: 'partbName',
+          label: '乙方名称',
+          align: 'center',
+          showOverflowTooltip: true,
+          minWidth: 130
+        },
+        {
+          prop: 'partbLinkName',
+          label: '乙方联系人',
+          align: 'center',
+          showOverflowTooltip: true,
+          minWidth: 130
+        },
+        {
+          prop: 'partbTel',
+          label: '乙方联系电话',
+          align: 'center',
+          showOverflowTooltip: true,
+          minWidth: 130
+        },
+
+        {
+          prop: 'contractNo',
+          label: '编码',
+          align: 'center',
+          showOverflowTooltip: true,
+          minWidth: 170
+        },
+        {
+          prop: 'contractNumber',
+          label: '编号',
+          align: 'center',
+          showOverflowTooltip: true,
+          minWidth: 200
+        },
+
+        {
+          prop: 'enabled',
+          label: '是否可用',
+          align: 'center',
+          showOverflowTooltip: true,
+          minWidth: 140,
+          formatter: (_row, _column, cellValue) => {
+            return _row.enabled ? '是' : '否';
+          }
+        },
+        {
+          prop: 'contractStartDate',
+          label: '签订日期',
+          align: 'center',
+          showOverflowTooltip: true,
+          minWidth: 140
+        },
+        {
+          prop: 'contractEndDate',
+          label: '结束日期',
+          align: 'center',
+          showOverflowTooltip: true,
+          minWidth: 140
+        },
+        {
+          prop: 'receiptPaymentType',
+          label: '收付款类型',
+          align: 'center',
+          showOverflowTooltip: true,
+          minWidth: 130,
+          formatter: (_row, _column, cellValue) => {
+            return _row.receiptPaymentType == 1 ? '固定' : '分期';
+          }
+        },
+        {
+          prop: 'totalPrice',
+          label: '合同总金额',
+          align: 'center',
+          showOverflowTooltip: true,
+          minWidth: 130
+        },
+
+        {
+          prop: 'createTime',
+          label: '创建时间',
+          align: 'center',
+          showOverflowTooltip: true,
+          minWidth: 150
+        }
+      ],
+
+      radio: null
+    };
+  },
+
+  methods: {
+    init(item, currentIndex) {
+      this.currentIndex = currentIndex;
+      // if (item && item.id) {
+      //   this.radio = item.id;
+      // }
+    },
+
+    /* 表格数据源 */
+    datasource({page, limit, where, order}) {
+      return getTableList({
+        pageNum: page,
+        size: limit,
+        type: this.type,
+        status: 2,
+        hasGeneratedOrder: 0,
+        ...where
+      });
+    },
+
+    /* 刷新表格 */
+    reload(where) {
+      this.$refs.table.reload({pageNum: 1, where: where});
+    },
+
+    handleNodeClick(data, node) {
+      this.reload({categoryId: data.id});
+    },
+
+    // 单击获取id
+    cellClick(row) {
+      this.current = row;
+      console.log(row);
+      this.radio = row.id;
+    },
+    handleClose() {
+      this.$emit('update:contractListDialogFlag', false)
+    },
+
+    selected() {
+      if (!this.current) {
+        return this.$message.warning('请至少选择一条数据');
+      }
+      this.$emit('changeParent', this.current, this.currentIndex);
+      this.handleClose();
+    }
+  }
+};
+</script>
+
+<style lang="scss" scoped>
+.tree_col {
+  border: 1px solid #eee;
+  padding: 10px 0;
+  box-sizing: border-box;
+  height: 500px;
+  overflow: auto;
+}
+
+.table_col {
+  padding-left: 10px;
+
+  ::v-deep .el-table th.el-table__cell {
+    background: #f2f2f2;
+  }
+}
+
+.pagination {
+  text-align: right;
+  padding: 10px 0;
+}
+
+.btns {
+  text-align: center;
+  padding: 10px 0;
+}
+
+.topsearch {
+  margin-bottom: 15px;
+}
+</style>

+ 108 - 0
src/views/bpm/handleTask/components/financialManage/feeManage/feeApplication/contractSearch.vue

@@ -0,0 +1,108 @@
+<!-- 搜索表单 -->
+<template>
+    <el-form
+      size="small"
+      label-width="90px"
+      class="ele-form-search"
+      @keyup.enter.native="search"
+      @submit.native.prevent
+    >
+      <el-row :gutter="10">
+  
+        
+        <el-col v-bind="styleResponsive ? { md: 6 } : { span: 6 }">
+          <el-form-item label="合同名称">
+            <el-input
+              clearable
+              size="small"
+              v-model="where.contractName"
+              placeholder="请输入"
+            />
+          </el-form-item>
+        </el-col>
+        <el-col v-bind="styleResponsive ? { md: 6 } : { span: 6 }">
+          <el-form-item label="客户名称">
+            <el-input
+              clearable
+              size="small"
+              v-model="where.contactName"
+              placeholder="请输入"
+            />
+          </el-form-item>
+        </el-col>
+        <el-col v-bind="styleResponsive ? { md: 6 } : { span: 6 }">
+          <el-form-item label="签订人">
+            <el-input
+              clearable
+              size="small"
+              v-model="where.linkName"
+              placeholder="请输入"
+            />
+          </el-form-item>
+        </el-col>
+  
+  
+        <el-col v-bind="styleResponsive ? { md: 6 } : { span: 4 }">
+          <el-form-item>
+            <el-button
+              size="small"
+              type="primary"
+              icon="el-icon-search"
+              class="ele-btn-icon"
+              @click="search"
+            >
+              查询
+            </el-button>
+  
+            <el-button
+              @click="reset"
+              icon="el-icon-refresh"
+              class="ele-btn-icon"
+              size="medium"
+              >重置</el-button
+            >
+  
+            <slot></slot>
+          </el-form-item>
+        </el-col>
+      </el-row>
+    </el-form>
+  </template>
+  
+  <script>
+    export default {
+      data() {
+        // 默认表单数据
+        const defaultWhere = {
+          name: '',
+          code: '',
+          modelType: ''
+        };
+        return {
+          defaultWhere,
+          // 表单数据
+          where: { ...defaultWhere },
+          loading:false
+        };
+      },
+      computed: {
+        // 是否开启响应式布局
+        styleResponsive() {
+          return this.$store.state.theme.styleResponsive;
+        }
+      },
+      methods: {
+        /* 搜索 */
+        search() {
+          this.$emit('search', this.where);
+        },
+        /*  重置 */
+        reset() {
+          this.where = { ...this.defaultWhere };
+          this.search();
+        },
+      
+      }
+    };
+  </script>
+  

+ 321 - 0
src/views/bpm/handleTask/components/financialManage/feeManage/feeApplication/customerListDialog.vue

@@ -0,0 +1,321 @@
+<template>
+  <el-dialog :title="title" custom-class="ele-dialog-form long-dialog-form" :visible.sync="customerListDialogFlag"
+             :before-close="handleClose" :close-on-click-modal="false" top="5vh"
+             :close-on-press-escape="false" append-to-body width="80%">
+    <el-card shadow="never">
+      <customer-search @search="reload"></customer-search>
+      <ele-split-layout width="244px" allow-collapse :right-style="{ overflow: 'hidden' }">
+        <div class="ele-border-lighter split-layout-right-content">
+          <AssetTree @handleNodeClick="handleNodeClick" :key="assetTreeId" :id="assetTreeId"
+                     :isFirstRefreshTable="false" ref="treeList"/>
+        </div>
+        <!-- 表格 -->
+        <template v-slot:content>
+          <ele-pro-table ref="table" :columns="columns" :datasource="datasource" :key="assetTreeId" row-key="id"
+                         height="calc(100vh - 350px)" class="dict-table" @cell-click="cellClick">
+            <!-- 表头工具栏 -->
+            <template v-slot:action="{ row }">
+              <el-radio class="radio" v-model="radio" :label="row.id"><i></i></el-radio>
+            </template>
+          </ele-pro-table>
+        </template>
+      </ele-split-layout>
+    </el-card>
+
+    <div class="btns" slot="footer">
+      <el-button type="primary" size="small" @click="selected">选择</el-button>
+      <el-button size="small" @click="handleClose">关闭</el-button>
+    </div>
+
+  </el-dialog>
+</template>
+
+<script>
+
+import {contactPage} from '@/api/bpm/components/saleManage/contact';
+import customerSearch from './customerSearch.vue';
+import AssetTree from '@/components/AssetTree';
+
+export default {
+  components: {
+    customerSearch,
+    AssetTree
+  },
+  props: {
+    customerListDialogFlag: {
+      type: Boolean,
+      default: false
+    }
+  },
+  data() {
+    return {
+      title: '',
+      radio: null,
+      assetTreeId: '17',
+      classType: 1,
+    }
+  },
+  //1 17 客户 /2 19供应商
+  computed: {
+    columns() {
+      let list = {
+        17: [
+
+          {
+            action: 'action',
+            slot: 'action',
+            align: 'center',
+            label: '选择'
+          },
+          {
+            columnKey: 'index',
+            label: '序号',
+            type: 'index',
+            width: 55,
+            align: 'center',
+            showOverflowTooltip: true,
+            fixed: 'left'
+          },
+          {
+            prop: 'code',
+            label: '客户编码',
+            align: 'center',
+            showOverflowTooltip: true,
+            minWidth: 140
+          },
+          {
+            prop: 'name',
+            label: '客户名称',
+            align: 'center',
+            slot: 'name',
+            showOverflowTooltip: true,
+            minWidth: 200
+          },
+          {
+            prop: 'serialNo',
+            label: '客户代号',
+            align: 'center',
+            showOverflowTooltip: true,
+            minWidth: 140
+          },
+          {
+            prop: 'phone',
+            label: '客户电话',
+            align: 'center',
+            showOverflowTooltip: true,
+            minWidth: 120
+          },
+          {
+            prop: 'addressName',
+            label: '单位地址',
+            align: 'center',
+            showOverflowTooltip: true,
+            minWidth: 120,
+            formatter: (_row, _column, cellValue) => {
+              let addr = '' + _row.addressName ? _row.addressName.replaceAll(',', '') : '';
+              addr += _row.address ? _row.address : '';
+              return addr;
+            }
+          },
+          {
+            prop: 'linkName',
+            label: '联系人',
+            align: 'center',
+            showOverflowTooltip: true,
+            minWidth: 120
+          },
+          {
+            prop: 'linkPhone',
+            label: '联系人电话',
+            align: 'center',
+            showOverflowTooltip: true,
+            minWidth: 120
+          },
+          {
+            prop: 'status',
+            label: '状态',
+            align: 'center',
+            showOverflowTooltip: true,
+            minWidth: 100,
+            formatter: (_row, _column, cellValue) => {
+              return _row.status === 1 ? '启用' : '禁用';
+            }
+          },
+
+
+        ],
+        19: [
+
+          {
+            action: 'action',
+            slot: 'action',
+            align: 'center',
+            label: '选择'
+          },
+          {
+            columnKey: 'index',
+            label: '序号',
+            type: 'index',
+            width: 55,
+            align: 'center',
+            showOverflowTooltip: true,
+            fixed: 'left'
+          },
+          {
+            prop: 'code',
+            label: '供应商编码',
+            align: 'center',
+            showOverflowTooltip: true,
+            minWidth: 140
+          },
+          {
+            prop: 'name',
+            label: '供应商名称',
+            align: 'center',
+            slot: 'name',
+            showOverflowTooltip: true,
+            minWidth: 200
+          },
+          {
+            prop: 'serialNo',
+            label: '供应商代号',
+            align: 'center',
+            showOverflowTooltip: true,
+            minWidth: 140
+          },
+          {
+            prop: 'phone',
+            label: '供应商电话',
+            align: 'center',
+            showOverflowTooltip: true,
+            minWidth: 120
+          },
+          {
+            prop: 'addressName',
+            label: '单位地址',
+            align: 'center',
+            showOverflowTooltip: true,
+            minWidth: 120,
+            formatter: (_row, _column, cellValue) => {
+              let addr = '' + _row.addressName ? _row.addressName.replaceAll(',', '') : '';
+              addr += _row.address ? _row.address : '';
+              return addr;
+            }
+          },
+          {
+            prop: 'linkName',
+            label: '联系人',
+            align: 'center',
+            showOverflowTooltip: true,
+            minWidth: 120
+          },
+          {
+            prop: 'linkPhone',
+            label: '联系人电话',
+            align: 'center',
+            showOverflowTooltip: true,
+            minWidth: 120
+          },
+          {
+            prop: 'status',
+            label: '状态',
+            align: 'center',
+            showOverflowTooltip: true,
+            minWidth: 100,
+            formatter: (_row, _column, cellValue) => {
+              return _row.status === 1 ? '启用' : '禁用';
+            }
+          },
+
+
+        ]
+      }
+      return list[this.assetTreeId]
+    },
+  },
+
+  watch: {},
+  methods: {
+    init({id, ...params}) {
+      this.title = params.titleName
+      this.assetTreeId = params.assetTreeId
+      this.classType = params.classType
+      // if (id) {
+      //   this.radio = id
+      // }
+    },
+    /* 表格数据源 */
+    datasource({page, limit, where, order}) {
+      return contactPage({
+        pageNum: page,
+        size: limit,
+        type: this.classType,
+        ...where
+      });
+    },
+
+    /* 刷新表格 */
+    reload(where) {
+      where.type = this.classType
+      this.$refs.table.reload({page: 1, where});
+    },
+
+    handleNodeClick(data, node) {
+      this.curNodeData = data;
+      this.reload({categoryId: data.id});
+    },
+
+
+    // 单击获取id
+    cellClick(row) {
+      this.current = row
+      this.radio = row.id
+    },
+    handleClose() {
+      this.$emit('update:customerListDialogFlag', false)
+    },
+
+    selected() {
+      if (!this.current) {
+        return this.$message.warning('请选择上级客户')
+      }
+      this.$emit('changeParent', this.current)
+      this.handleClose()
+    },
+
+
+  }
+}
+</script>
+
+<style lang="scss" scoped>
+.tree_col {
+  border: 1px solid #eee;
+  padding: 10px 0;
+  box-sizing: border-box;
+  height: 500px;
+  overflow: auto;
+}
+
+.table_col {
+  padding-left: 10px;
+
+  ::v-deep .el-table th.el-table__cell {
+    background: #f2f2f2;
+  }
+}
+
+.pagination {
+  text-align: right;
+  padding: 10px 0;
+}
+
+.btns {
+  text-align: center;
+  padding: 10px 0;
+}
+
+.topsearch {
+  margin-bottom: 15px;
+}
+</style>

+ 98 - 0
src/views/bpm/handleTask/components/financialManage/feeManage/feeApplication/customerSearch.vue

@@ -0,0 +1,98 @@
+<!-- 搜索表单 -->
+<template>
+  <el-form
+    label-width="100px"
+    class="ele-form-search"
+    @keyup.enter.native="search"
+    @submit.native.prevent
+  >
+    <el-row :gutter="15">
+      <el-col v-bind="styleResponsive ? { lg: 6, md: 12 } : { span: 6 }">
+        <el-form-item label="编码/代号:" prop="codeOrSerialNo">
+          <el-input
+            clearable
+            v-model="params.codeOrSerialNo"
+            placeholder="请输入"
+            maxlength="50"
+          ></el-input>
+        </el-form-item>
+      </el-col>
+      <el-col v-bind="styleResponsive ? { lg: 6, md: 12 } : { span: 6 }">
+        <el-form-item label="名称:" prop="name">
+          <el-input
+            clearable
+            placeholder="请输入"
+            v-model.trim="params.name"
+          ></el-input>
+        </el-form-item>
+      </el-col>
+      <el-col v-bind="styleResponsive ? { lg: 6, md: 12 } : { span: 6 }">
+        <el-form-item label="是否启用:" prop="codeOrSerialNo">
+          <el-select v-model="params.status" placeholder="请选择" class="w100" clearable>
+            <el-option
+              v-for="item in statusList"
+              :key="item.value"
+              :label="item.label"
+              :value="item.value"
+            ></el-option>
+          </el-select>
+        </el-form-item>
+      </el-col>
+      <el-col v-bind="styleResponsive ? { lg: 6, md: 12 } : { span: 6 }">
+        <div class="ele-form-actions">
+          <el-button
+            type="primary"
+            icon="el-icon-search"
+            class="ele-btn-icon"
+            @click="search"
+          >
+            查询
+          </el-button>
+          <el-button @click="reset">重置</el-button>
+        </div>
+      </el-col>
+    </el-row>
+  </el-form>
+</template>
+<script>
+export default {
+  data() {
+    // 默认表单数据
+    const defaultParams = {
+      type: 1,
+      name: '',
+      codeOrSerialNo: '',
+      status: ''
+    };
+    return {
+      defaultParams,
+      // 表单数据
+      params: {...defaultParams},
+      // 状态数据源
+      statusList: [
+        {value: 1, label: "启用"},
+        {value: 2, label: "禁用"}
+      ],
+    };
+  },
+  computed: {
+    // 是否开启响应式布局
+    styleResponsive() {
+      return this.$store.state.theme.styleResponsive;
+    }
+  },
+  methods: {
+    /* 搜索 */
+    search() {
+      this.$emit('search', {
+        ...this.params,
+      });
+    },
+    /*  重置 */
+    reset() {
+      this.params = {...this.defaultParams};
+      this.search();
+    }
+  }
+};
+</script>

+ 198 - 0
src/views/bpm/handleTask/components/financialManage/feeManage/feeApplication/detailDialog.vue

@@ -0,0 +1,198 @@
+<template>
+ <div>
+   <el-form ref="form" :model="form" label-width="100px">
+     <headerTitle title="基本信息"></headerTitle>
+     <el-row :gutter="12">
+       <el-col :span="12">
+         <el-form-item
+           label="申请部门:"
+           prop="applyDeptId"
+
+         >
+           {{ form.applyDeptName }}
+         </el-form-item>
+       </el-col>
+       <el-col :span="12">
+         <el-form-item
+           label="申请人:"
+           prop="applyUserId"
+
+         >
+           {{ form.applyUserName }}
+         </el-form-item>
+       </el-col>
+     </el-row>
+     <el-row :gutter="12">
+       <el-col :span="12">
+         <el-form-item
+           label="费用类型:"
+           prop="feeTypeId"
+
+         >
+           {{ form.feeTypeName }}
+         </el-form-item>
+       </el-col>
+       <el-col :span="12">
+         <el-form-item
+           label="金额:"
+           prop="amount"
+         >
+           {{ form.amount }}
+         </el-form-item>
+       </el-col>
+     </el-row>
+     <el-row :gutter="12">
+       <el-col :span="24">
+         <el-form-item
+           label="关联类型:"
+         >
+           {{ form.finLinkTypeName }}
+         </el-form-item>
+       </el-col>
+     </el-row>
+     <el-row v-if="form.finLinkType==1">
+       <el-col :span="12">
+         <el-form-item
+           label="客户名称:"
+           prop="contactName"
+         >
+           {{ form.contactName }}
+         </el-form-item>
+       </el-col>
+     </el-row>
+     <el-row v-if="form.finLinkType==2">
+       <el-col :span="12">
+         <el-form-item
+           label="供应商名称:"
+           prop="contactName"
+         >
+           {{ form.contactName }}
+         </el-form-item>
+       </el-col>
+     </el-row>
+     <el-row v-if="form.finLinkType==3">
+       <el-col :span="12">
+         <el-form-item
+           label="商机名称:"
+         >
+           {{ form.opportunityName }}
+         </el-form-item>
+       </el-col>
+     </el-row>
+     <el-row v-if="form.finLinkType==4">
+       <el-col :span="12">
+         <el-form-item
+           label="选择合同:"
+         >
+           {{ form.contractName }}
+         </el-form-item>
+       </el-col>
+     </el-row>
+     <el-row v-if="form.finLinkType==5">
+     </el-row>
+     <el-row v-if="form.finLinkType==6">
+       <el-col :span="12">
+         <el-form-item
+           label="销售订单:"
+         >
+           {{ form.saleOrderCode }}
+         </el-form-item>
+       </el-col>
+       <el-col :span="12">
+         <el-form-item
+           label="采购订单:"
+         >
+           {{ form.purchaseOrderCode }}
+         </el-form-item>
+       </el-col>
+     </el-row>
+
+
+     <el-row :gutter="12">
+       <el-col :span="24">
+         <el-form-item
+           label="备注:">
+           {{ form.remark }}
+         </el-form-item>
+       </el-col>
+     </el-row>
+     <el-row :gutter="12">
+       <el-col :span="12">
+         <el-form-item prop="" label="附件:">
+           <el-link
+             v-if="form.files.length"
+             v-for="item in form.files"
+             type="primary"
+             :underline="false"
+             @click="downloadFile(item)"
+           >
+             {{ item.name }}
+           </el-link
+           >
+         </el-form-item>
+       </el-col>
+     </el-row>
+
+
+   </el-form>
+ </div>
+</template>
+
+<script>
+import {getFile} from '@/api/system/file';
+import dictMixins from '@/mixins/dictMixins';
+import bpmDetail from '@/views/bpm/processInstance/detail.vue';
+import fileUpload from "@/components/upload/fileUpload.vue";
+import {getFeeApplyInfoAPI} from "@/api/bpm/components/financialManage/fee-manage/fee-application";
+
+export default {
+  mixins: [dictMixins],
+  components: {
+    fileUpload,
+    bpmDetail
+  },
+  props:{
+    businessId: {
+      default: ''
+    }
+  },
+  data() {
+    return {
+      title: '详情',
+      form: {},
+    };
+  },
+  async created() {
+    await this.getFeeApplyInfoInfo(this.businessId)
+  },
+  methods: {
+    //获取详情
+    async getFeeApplyInfoInfo(id) {
+      this.form = await getFeeApplyInfoAPI(id)
+    },
+    downloadFile(file) {
+      getFile({objectName: file.storePath}, file.name);
+    },
+  }
+};
+</script>
+
+<style scoped lang="scss">
+.ele-dialog-form {
+  .el-form-item {
+    margin-bottom: 10px;
+  }
+}
+
+.headbox {
+  display: flex;
+  justify-content: flex-start;
+  align-items: center;
+
+  .amount {
+    font-size: 14px;
+    font-weight: bold;
+    margin-right: 20px;
+  }
+}
+</style>

+ 152 - 0
src/views/bpm/handleTask/components/financialManage/feeManage/feeApplication/submit.vue

@@ -0,0 +1,152 @@
+<template>
+  <el-col :span="16" :offset="6">
+    <el-form label-width="100px" ref="formRef" :model="form">
+      <el-form-item
+        label="审批建议"
+        prop="reason"
+        style="margin-bottom: 20px"
+        :rules="{
+          required: true,
+          message: '请选择',
+          trigger: 'change'
+        }"
+      >
+        <el-input
+          type="textarea"
+          v-model="form.reason"
+          placeholder="请输入审批建议"
+        />
+      </el-form-item>
+    </el-form>
+    <div style="margin-left: 10%; margin-bottom: 20px; font-size: 14px">
+      <el-button
+        icon="el-icon-edit-outline"
+        type="success"
+        size="mini"
+        @click="handleAudit(1)"
+      >通过
+      </el-button>
+      <el-button
+        icon="el-icon-circle-close"
+        type="danger"
+        size="mini"
+        @click="handleAudit(0)"
+        v-if="!['starter'].includes(taskDefinitionKey)"
+      >驳回
+      </el-button>
+
+      <!-- <el-button
+        icon="el-icon-circle-close"
+        type="danger"
+        size="mini"
+        @click="handleBackList"
+        >退回
+      </el-button> -->
+      <!-- <el-button
+        icon="el-icon-circle-close"
+        type="danger"
+        size="mini"
+        @click="handleAudit(0)"
+        v-if="taskDefinitionKey != 'productionSupervisorApprove1'"
+        >不通过
+      </el-button>
+      <el-button
+        icon="el-icon-edit-outline"
+        type="primary"
+        size="mini"
+        v-if="taskDefinitionKey != 'productionSupervisorApprove1'"
+        @click="handleUpdateAssignee"
+        >转办
+      </el-button> -->
+    </div>
+  </el-col>
+</template>
+
+<script>
+import {UpdateInformation} from '@/api/bpm/components/saleManage/saleorder';
+import {approveTaskWithVariables} from '@/api/bpm/task';
+
+// 流程实例的详情页,可用于审批
+export default {
+  name: '',
+  components: {
+    //   Parser
+  },
+  props: {
+    businessId: {
+      default: ''
+    },
+    taskId: {
+      default: ''
+    },
+    id: {
+      default: ''
+    },
+    taskDefinitionKey: {
+      default: ''
+    }
+  },
+  data() {
+    return {
+      form: {
+        technicianId: '',
+        reason: '',
+
+      },
+      tabOptions: [
+        {key: 'starter', permissionType: 'update', name: '发起人申请'},
+        {key: 'deptLeaderApprove', permissionType: 'view', name: '部门主管审批'},
+        {key: 'financeApprove', permissionType: 'update', name: '财务审批'},
+      ],
+    };
+  },
+  created() {
+  },
+  methods: {
+    /** 处理转办审批人 */
+    handleUpdateAssignee() {
+      this.$emit('handleUpdateAssignee');
+    },
+    /** 退回 */
+    handleBackList() {
+      this.$emit('handleBackList');
+    },
+
+    async handleAudit(status) {
+      let permissionType = this.tabOptions.find(item => item.key == this.taskDefinitionKey)?.permissionType
+      if (permissionType === 'update') {
+        const id = await this.getTableValue();
+        if (typeof id !== 'string') return
+      }
+      await this._approveTaskWithVariables(status);
+    },
+    async _approveTaskWithVariables(status) {
+      let variables = {
+        pass: !!status
+      };
+      approveTaskWithVariables({
+        id: this.taskId,
+        reason: this.form.reason,
+        variables
+      }).then((res) => {
+        if (res.data.code != '-1') {
+          this.$emit('handleAudit', {
+            status,
+            title: status === 0 ? '驳回' : ''
+          });
+        }
+      });
+    },
+
+    getTableValue() {
+      return new Promise((resolve, reject) => {
+        this.$emit('getTableValue', async (data) => {
+          resolve(await data);
+        });
+      });
+    }
+  }
+};
+</script>
+
+<style lang="scss"></style>

+ 2 - 2
src/views/bpm/handleTask/components/purchaseOrder/accountstatement/page.vue

@@ -134,8 +134,8 @@ export default {
           break
         default:
           this.dataForm.dateValue = ''
-          this.dataForm.startDate = this.dataForm.dateTimeRange[0]
-          this.dataForm.endDate = this.dataForm.dateTimeRange[1]
+          this.dataForm.startDate = this.dataForm.dateTimeRange[0] + ' 00:00:00'
+          this.dataForm.endDate = this.dataForm.dateTimeRange[1] + ' 12:59:59'
       }
     },
     //查询获取订单数据

+ 2 - 2
src/views/bpm/handleTask/components/purchaseOrder/accountstatement/purchaseForm.vue

@@ -176,8 +176,8 @@ export default {
           <el-date-picker
             :disabled="dialogType=='view'"
             v-model="dataForm.dateTimeRange"
-            value-format="yyyy-MM-dd HH:mm:ss"
-            type="datetimerange"
+            value-format="yyyy-MM-dd"
+            type="daterange"
             @change="reloadTableData"
             range-separator="至"
             start-placeholder="开始日期"

+ 1 - 1
src/views/bpm/handleTask/components/purchaseOrder/detailDialog.vue

@@ -81,7 +81,7 @@
             {{ form.requireUserName }}
           </el-form-item>
           <el-form-item
-            label="应付金额:"
+            label="优惠总金额:"
             prop="payAmount"
             style="margin-bottom: 16px"
           >

+ 2 - 2
src/views/bpm/handleTask/components/saleOrder/accountstatement/page.vue

@@ -135,8 +135,8 @@ export default {
           break
         default:
           this.dataForm.dateValue = ''
-          this.dataForm.startDate = this.dataForm.dateTimeRange[0]
-          this.dataForm.endDate = this.dataForm.dateTimeRange[1]
+          this.dataForm.startDate = this.dataForm.dateTimeRange[0] + ' 00:00:00'
+          this.dataForm.endDate = this.dataForm.dateTimeRange[1] + ' 12:59:59'
       }
     },
     //查询获取订单数据

+ 2 - 2
src/views/bpm/handleTask/components/saleOrder/accountstatement/saleForm.vue

@@ -169,8 +169,8 @@ export default {
           <el-date-picker
             :disabled="dialogType=='view'"
             v-model="dataForm.dateTimeRange"
-            value-format="yyyy-MM-dd HH:mm:ss"
-            type="datetimerange"
+            value-format="yyyy-MM-dd"
+            type="daterange"
             @change="reloadTableData"
             range-separator="至"
             start-placeholder="开始日期"

+ 6 - 9
src/views/bpm/handleTask/components/saleOrder/returnGoods/inventoryTable.vue

@@ -88,11 +88,11 @@
         <span class="is-required">{{ column.label }}</span>
       </template>
       <!-- 操作列 -->
-      <template v-slot:action="{ row }" >
+      <template v-slot:action="{ row,$index }" >
         <el-popconfirm
           class="ele-action"
           title="确定要删除吗?"
-          @confirm="remove(row)"
+          @confirm="remove($index)"
         >
           <template v-slot:reference>
             <el-link type="danger" :underline="false" icon="el-icon-delete">
@@ -420,13 +420,10 @@
         }
       },
 
-      remove(row) {
-        let index = this.form.datasource.findIndex((n) => n.key == row.key);
-        if (index !== -1) {
-          this.form.datasource.splice(index, 1);
-          this.setSort();
-          this.gettotalAmount();
-        }
+      remove(index) {
+        this.form.datasource.splice(index, 1);
+        this.setSort();
+        this.gettotalAmount();
       },
       // 清空表格
       restTable() {