|
@@ -23,59 +23,67 @@
|
|
|
</div>
|
|
|
</div>
|
|
|
<div class="customer-main">
|
|
|
- <containerTitle title="基础信息" />
|
|
|
- <basic-container :showBtn="true">
|
|
|
+ <trade-card title="经办人信息">
|
|
|
<avue-form ref="form" class="trading-form" v-model="form" :option="option">
|
|
|
<template slot="userId">
|
|
|
<el-select v-model="form.userId" filterable clearable size="small" placeholder="请选择" @change="userHandle"
|
|
|
- @clear="form.userName == null" :disabled="disabled || checkDisabled">
|
|
|
+ @clear="form.userName == null" :disabled="disabled || checkDisabled">
|
|
|
<el-option v-for="(item, index) in userList" :key="index" :label="item.realName" :value="item.id">
|
|
|
</el-option>
|
|
|
</el-select>
|
|
|
</template>
|
|
|
+ <template slot="belongToCorpId">
|
|
|
+ <crop-select
|
|
|
+ v-model="form.belongToCorpId"
|
|
|
+ corpType="GS"
|
|
|
+ :disabled="disabled || checkDisabled"
|
|
|
+ @getCorpData="returnBack"
|
|
|
+ style="width: 100%"
|
|
|
+ ref="KHSelect"
|
|
|
+ ></crop-select>
|
|
|
+ </template>
|
|
|
<template slot="deptId">
|
|
|
<avue-input-tree leaf-only style="width: 100%;" size="small" :props="{ label: 'title' }"
|
|
|
- v-model="form.deptId" placeholder=" " type="tree" :dic="dic" :nodeClick="deptClick"
|
|
|
- :disabled="disabled || checkDisabled"></avue-input-tree>
|
|
|
+ v-model="form.deptId" placeholder=" " type="tree" :dic="dic" :nodeClick="deptClick"
|
|
|
+ :disabled="disabled || checkDisabled"></avue-input-tree>
|
|
|
</template>
|
|
|
<template slot="postId">
|
|
|
<el-select v-model="form.postId" clearable filterable placeholder="请选择 岗位" @change="postHandle"
|
|
|
- @clear="form.postId == null" :disabled="disabled || checkDisabled">
|
|
|
+ @clear="form.postId == null" :disabled="disabled || checkDisabled">
|
|
|
<el-option v-for="(item, index) in postDic" :label="item.postName" :value="item.id" :key="index" />
|
|
|
</el-select>
|
|
|
</template>
|
|
|
</avue-form>
|
|
|
- </basic-container>
|
|
|
- <containerTitle title="报销明细" />
|
|
|
- <basic-container>
|
|
|
- <avue-crud ref="crud" :data="dataList" :option="tableOption" :cell-style="cellStyle" @saveColumn="saveColumn"
|
|
|
- @resetColumn="resetColumn">
|
|
|
+ </trade-card>
|
|
|
+ <trade-card title="报销明细">
|
|
|
+ <avue-crud ref="crud" :key="key" :data="dataList" :option="tableOption" :cell-style="cellStyle" @saveColumn="saveColumn"
|
|
|
+ @resetColumn="resetColumn">
|
|
|
<template slot="menuLeft">
|
|
|
<el-button type="primary" icon="el-icon-plus" size="small" @click.stop="newDetails"
|
|
|
- :disabled="disabled || checkDisabled">录入明细</el-button>
|
|
|
+ :disabled="disabled || checkDisabled">录入明细</el-button>
|
|
|
<el-button type="info" icon="el-icon-printer" size="small" @click="openReport">报表打印</el-button>
|
|
|
</template>
|
|
|
<template slot="menu" slot-scope="{ row, index }">
|
|
|
<el-button size="small" icon="el-icon-edit" type="text" @click="rowCell(row, index)"
|
|
|
- :disabled="disabled || checkDisabled">{{ row.$cellEdit ? "保存" : "修改" }}</el-button>
|
|
|
+ :disabled="disabled || checkDisabled">{{ row.$cellEdit ? "保存" : "修改" }}</el-button>
|
|
|
<el-button size="small" icon="el-icon-delete" type="text" @click="rowDel(row, index)"
|
|
|
- :disabled="disabled || checkDisabled">删除</el-button>
|
|
|
+ :disabled="disabled || checkDisabled">删除</el-button>
|
|
|
</template>
|
|
|
<template slot="payDate" slot-scope="{ row, index }">
|
|
|
<el-date-picker v-if="row.$cellEdit" v-model="row.payDate" type="date" placeholder="选择日期" size="small"
|
|
|
- style="width: 100%" format="yyyy-MM-dd" valueFormat="yyyy-MM-dd"></el-date-picker>
|
|
|
+ style="width: 100%" format="yyyy-MM-dd" valueFormat="yyyy-MM-dd"></el-date-picker>
|
|
|
<span v-else>{{ row.payDate }}</span>
|
|
|
</template>
|
|
|
<template slot="moldId" slot-scope="{ row }">
|
|
|
<avue-cascader v-if="row.$cellEdit" v-model="row.moldId" size="small" style="width: 100%;" :dic="dicArea"
|
|
|
- :props="props" check-strictly :emit-path="false" :show-all-levels="false"
|
|
|
- @change="moldChange($event, row, dicArea)" @clear="row.feeList = feesOption" placeholder="请选择">
|
|
|
+ :props="props" check-strictly :emit-path="false" :show-all-levels="false"
|
|
|
+ @change="moldChange($event, row, dicArea)" @clear="row.feeList = feesOption" placeholder="请选择">
|
|
|
</avue-cascader>
|
|
|
<span v-else>{{ row.mold }}</span>
|
|
|
</template>
|
|
|
<template slot="detailId" slot-scope="{ row }">
|
|
|
<el-select v-if="row.$cellEdit" v-model="row.detailId" filterable clearable @change="detailChange(row)"
|
|
|
- size="small">
|
|
|
+ size="small">
|
|
|
<el-option v-for="(item, index) in row.feeList" :key="index" :label="item.cname" :value="item.id">
|
|
|
</el-option>
|
|
|
</el-select>
|
|
@@ -88,16 +96,31 @@
|
|
|
<template slot="payMethod" slot-scope="{ row, index }">
|
|
|
<el-select v-model="row.payMethod" size="small" placeholder="请选择" clearable :disabled="!row.$cellEdit">
|
|
|
<el-option v-for="(item, index) in paymentOption" :key="index" :label="item.dictValue"
|
|
|
- :value="item.dictKey"></el-option>
|
|
|
+ :value="item.dictKey"></el-option>
|
|
|
</el-select>
|
|
|
</template>
|
|
|
<template slot="amount" slot-scope="{ row, index }">
|
|
|
<el-input-number v-if="row.$cellEdit" v-model="row.amount" size="small" :controls="false" :precision="2"
|
|
|
- style="width: 100%" placeholder="金额"></el-input-number>
|
|
|
+ style="width: 100%" placeholder="金额"></el-input-number>
|
|
|
<span v-else>{{ row.amount }}</span>
|
|
|
</template>
|
|
|
</avue-crud>
|
|
|
- </basic-container>
|
|
|
+ </trade-card>
|
|
|
+ <trade-card title="上传附件">
|
|
|
+ <c-upload :basic="true"
|
|
|
+ :enumerationValue="107.1"
|
|
|
+ :data="[]"></c-upload>
|
|
|
+ </trade-card>
|
|
|
+ <trade-card title="付款信息">
|
|
|
+ <avue-form :option="optionTwo" v-model="form">
|
|
|
+ <template slot="paymentMethodName" slot-scope="{ row, index }">
|
|
|
+ <el-select v-model="form.paymentMethodName" size="small" placeholder="请选择" clearable>
|
|
|
+ <el-option v-for="(item, index) in paymentOption" :key="index" :label="item.dictValue"
|
|
|
+ :value="item.dictKey"></el-option>
|
|
|
+ </el-select>
|
|
|
+ </template>
|
|
|
+ </avue-form>
|
|
|
+ </trade-card>
|
|
|
</div>
|
|
|
|
|
|
<el-dialog append-to-body title="审批" class="el-dialogDeep" :visible.sync="checkDialog" width="50%"
|
|
@@ -117,13 +140,14 @@
|
|
|
|
|
|
<script>
|
|
|
import tableOption from "./config/customerContact.json";
|
|
|
+import tableOptionTwo from "./config/customerContactTwo.json";
|
|
|
import {
|
|
|
isDiscount,
|
|
|
isPercentage,
|
|
|
micrometerFormat,
|
|
|
IntegerFormat
|
|
|
} from "@/util/validate";
|
|
|
-import { gainUser } from "@/api/basicData/customerInquiry";
|
|
|
+import {gainUser, getCharge} from "@/api/basicData/customerInquiry";
|
|
|
import { getUserInfo } from "@/api/system/user";
|
|
|
import { getDeptTree } from "@/api/system/dept";
|
|
|
import { getCurrentDate } from "@/util/date";
|
|
@@ -134,6 +158,11 @@ import check from "@/components/check/check";
|
|
|
import checkSchedule from "@/components/check/checkSchedule";
|
|
|
import reportDialog from "@/components/report-dialog/main";
|
|
|
import { getDeptTree as getFeesId, getFeesList } from "@/api/basicData/basicFeesDesc";
|
|
|
+import {customerList as getKHList, detail as khDetail} from "@/api/basicData/customerInformation";
|
|
|
+import {getCorpDetail} from "@/api/maintenance/overpayment";
|
|
|
+import {integralDetail} from "@/api/maintenance/integral";
|
|
|
+import {getlistBankBy, getProfit} from "@/api/basicData/configuration";
|
|
|
+import da from "element-ui/src/locale/lang/da";
|
|
|
|
|
|
export default {
|
|
|
name: "detail",
|
|
@@ -158,7 +187,20 @@ export default {
|
|
|
labelWidth: 100,
|
|
|
column: [
|
|
|
{
|
|
|
- label: "日期",
|
|
|
+ label: "申请报销人",
|
|
|
+ prop: "userId",
|
|
|
+ rules: [
|
|
|
+ {
|
|
|
+ required: true,
|
|
|
+ message: " ",
|
|
|
+ trigger: "change"
|
|
|
+ }
|
|
|
+ ],
|
|
|
+ span: 8,
|
|
|
+ slot: true,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ label: "提交时间",
|
|
|
prop: "claimDate",
|
|
|
span: 8,
|
|
|
type: "date",
|
|
@@ -173,16 +215,17 @@ export default {
|
|
|
]
|
|
|
},
|
|
|
{
|
|
|
- label: "报销人",
|
|
|
- prop: "userId",
|
|
|
- rules: [
|
|
|
- {
|
|
|
- required: true,
|
|
|
- message: " ",
|
|
|
- trigger: "change"
|
|
|
- }
|
|
|
- ],
|
|
|
+ label: "要求支付日期",
|
|
|
+ prop: "requiredPaymentTime",
|
|
|
span: 8,
|
|
|
+ type: "date",
|
|
|
+ format: "yyyy-MM-dd",
|
|
|
+ valueFormat: "yyyy-MM-dd HH:mm:ss"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ label: "所属公司",
|
|
|
+ prop: "belongToCorpId",
|
|
|
+ span: 16,
|
|
|
slot: true,
|
|
|
},
|
|
|
{
|
|
@@ -199,6 +242,58 @@ export default {
|
|
|
slot: true,
|
|
|
},
|
|
|
{
|
|
|
+ label: "所属公司编码",
|
|
|
+ prop: "belongToCorpCode",
|
|
|
+ span: 8,
|
|
|
+ slot: true,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ label: "报销人银行户头",
|
|
|
+ prop: "accountReimbursement",
|
|
|
+ type: 'select',
|
|
|
+ dicData:[],
|
|
|
+ props: {
|
|
|
+ label: "accountName",
|
|
|
+ value: "accountName"
|
|
|
+ },
|
|
|
+ change:(data)=>{
|
|
|
+ let list = this.findObject(this.option.column, "accountReimbursement").dicData
|
|
|
+ for (let item of list){
|
|
|
+ if (data.value == item.accountName){
|
|
|
+ this.form.accountReimbursement = data.value
|
|
|
+ this.form.reimbursementAccountNo = item.accountBank
|
|
|
+ this.form.bankOfDeposit = item.accountNo
|
|
|
+ }
|
|
|
+ }
|
|
|
+ },
|
|
|
+ span: 8,
|
|
|
+ slot: true,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ label: "报销人账号",
|
|
|
+ prop: "reimbursementAccountNo",
|
|
|
+ span: 8,
|
|
|
+ slot: true,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ label: "报销人开户行",
|
|
|
+ prop: "bankOfDeposit",
|
|
|
+ span: 8,
|
|
|
+ slot: true,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ label: "系统编号",
|
|
|
+ prop: "serialNo",
|
|
|
+ span: 8,
|
|
|
+ slot: true,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ label: "单据数量",
|
|
|
+ prop: "billQuantity",
|
|
|
+ span: 8,
|
|
|
+ slot: true,
|
|
|
+ },
|
|
|
+ {
|
|
|
label: "备注",
|
|
|
prop: "remarks",
|
|
|
type: "textarea",
|
|
@@ -207,6 +302,46 @@ export default {
|
|
|
},
|
|
|
],
|
|
|
},
|
|
|
+ optionTwo: {
|
|
|
+ menuBtn: false,
|
|
|
+ labelWidth: 100,
|
|
|
+ column: [
|
|
|
+ {
|
|
|
+ label: "支付时间",
|
|
|
+ prop: "paymentTime",
|
|
|
+ span: 8,
|
|
|
+ type: "date",
|
|
|
+ format: "yyyy-MM-dd",
|
|
|
+ valueFormat: "yyyy-MM-dd HH:mm:ss"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ label: "支付方式",
|
|
|
+ prop: "paymentMethodName",
|
|
|
+ span: 8,
|
|
|
+ slot: true,
|
|
|
+ },{
|
|
|
+ label: "实际付款金额",
|
|
|
+ prop: "paymentAmount",
|
|
|
+ span: 8,
|
|
|
+ slot: true,
|
|
|
+ },{
|
|
|
+ label: "给付人",
|
|
|
+ prop: "dans",
|
|
|
+ span: 8,
|
|
|
+ slot: true,
|
|
|
+ },{
|
|
|
+ label: "财务出纳",
|
|
|
+ prop: "financialCashier",
|
|
|
+ span: 8,
|
|
|
+ slot: true,
|
|
|
+ },{
|
|
|
+ label: "科目编码",
|
|
|
+ prop: "subjectCode",
|
|
|
+ span: 8,
|
|
|
+ slot: true,
|
|
|
+ },
|
|
|
+ ]
|
|
|
+ },
|
|
|
dataList: [],
|
|
|
tableOption: {},
|
|
|
goodsoptions: [],
|
|
@@ -247,14 +382,20 @@ export default {
|
|
|
label: 'title',
|
|
|
},
|
|
|
feesOption: [],
|
|
|
+ tableOptionBack:{},
|
|
|
+ key:0,
|
|
|
+ tenantId:JSON.parse(localStorage.getItem("saber-userInfo")).content.tenant_id
|
|
|
}
|
|
|
},
|
|
|
async created() {
|
|
|
+ if (this.tenantId !== '681169'){
|
|
|
+ this.tableOptionBack = tableOptionTwo
|
|
|
+ }else {
|
|
|
+ this.tableOptionBack = tableOption
|
|
|
+ }
|
|
|
this.$set(this.form, 'claimDate', getCurrentDate()); // 默认当前日期
|
|
|
- this.tableOption = await this.getColumnData(
|
|
|
- this.getColumnName(107),
|
|
|
- tableOption
|
|
|
- );
|
|
|
+ this.tableOption = await this.getColumnData(this.getColumnName(107),this.tableOptionBack);
|
|
|
+ this.key++
|
|
|
gainUser().then(res => {
|
|
|
this.userList = res.data.data;
|
|
|
});
|
|
@@ -315,6 +456,12 @@ export default {
|
|
|
}
|
|
|
},
|
|
|
methods: {
|
|
|
+ returnBack(row) {
|
|
|
+ getlistBankBy(row.id).then(res =>{
|
|
|
+ this.form.belongToCorpCode = row.code
|
|
|
+ this.findObject(this.option.column, "accountReimbursement").dicData = res.data
|
|
|
+ })
|
|
|
+ },
|
|
|
// 查询
|
|
|
queryData(id) {
|
|
|
this.pageLoading = true;
|
|
@@ -402,10 +549,9 @@ export default {
|
|
|
}
|
|
|
},
|
|
|
async resetColumn() {
|
|
|
- this.tableOption = tableOption;
|
|
|
+ this.tableOption = this.tableOptionBack;
|
|
|
const inSave = await this.delColumnData(
|
|
|
- this.getColumnName(107),
|
|
|
- tableOption
|
|
|
+ this.getColumnName(107),this.tableOptionBack
|
|
|
);
|
|
|
if (inSave) {
|
|
|
this.$nextTick(() => {
|