|
@@ -123,135 +123,162 @@
|
|
|
<div>科目名称:{{subjectRow.accountCnName}}</div>
|
|
|
<div style="margin-top: 20px">
|
|
|
<el-form :model="subjectRow" ref="subjectRow" label-width="70px" class="demo-ruleForm">
|
|
|
- <div>外币核算:</div>
|
|
|
- <el-row>
|
|
|
- <el-col :span="4">
|
|
|
- <el-form-item label="币种:" prop="curCode">
|
|
|
- <el-input style="width: 100%;" v-model="subjectRow.curCode"
|
|
|
- size="small" autocomplete="off"
|
|
|
- clearable placeholder="请输入币种" >
|
|
|
- </el-input>
|
|
|
- </el-form-item>
|
|
|
- </el-col>
|
|
|
- <el-col :span="4">
|
|
|
- <el-form-item label="汇率:" prop="exrate">
|
|
|
- <el-input style="width: 100%;" v-model="subjectRow.exrate"
|
|
|
- size="small" autocomplete="off"
|
|
|
- clearable placeholder="请输入汇率" >
|
|
|
- </el-input>
|
|
|
- </el-form-item>
|
|
|
- </el-col>
|
|
|
- <el-col :span="4">
|
|
|
- <el-form-item label="借方金额:" prop="amountDrUsd">
|
|
|
- <el-input style="width: 100%;" v-model="subjectRow.amountDrUsd"
|
|
|
- size="small" autocomplete="off"
|
|
|
- clearable placeholder="请输入借方金额" >
|
|
|
- </el-input>
|
|
|
- </el-form-item>
|
|
|
- </el-col>
|
|
|
- <el-col :span="4">
|
|
|
- <el-form-item label="贷方金额:" prop="amountCrUsd">
|
|
|
- <el-input style="width: 100%;" v-model="subjectRow.amountCrUsd"
|
|
|
- size="small" autocomplete="off"
|
|
|
- clearable placeholder="请输入贷方金额" >
|
|
|
- </el-input>
|
|
|
- </el-form-item>
|
|
|
- </el-col>
|
|
|
- <el-col :span="4">
|
|
|
- <el-form-item label="本币借方:" prop="amountDr">
|
|
|
- <el-input style="width: 100%;" v-model="subjectRow.amountDr"
|
|
|
- size="small" autocomplete="off"
|
|
|
- clearable placeholder="请输入本币借方" >
|
|
|
- </el-input>
|
|
|
- </el-form-item>
|
|
|
- </el-col>
|
|
|
- <el-col :span="4">
|
|
|
- <el-form-item label="本币贷方:" prop="amountCr">
|
|
|
- <el-input style="width: 100%;" v-model="subjectRow.amountCr"
|
|
|
- size="small" autocomplete="off"
|
|
|
- clearable placeholder="请输入本币贷方" >
|
|
|
- </el-input>
|
|
|
- </el-form-item>
|
|
|
- </el-col>
|
|
|
- </el-row>
|
|
|
- <div>数量核算:</div>
|
|
|
- <el-row>
|
|
|
- <el-col :span="4">
|
|
|
- <el-form-item label="单位:" prop="unitNo">
|
|
|
- <el-input style="width: 100%;" v-model="subjectRow.unitNo"
|
|
|
- size="small" autocomplete="off"
|
|
|
- clearable placeholder="请输入单位" >
|
|
|
- </el-input>
|
|
|
- </el-form-item>
|
|
|
- </el-col>
|
|
|
- <el-col :span="4">
|
|
|
- <el-form-item label="规格:" prop="voucherNo">
|
|
|
- <el-input style="width: 100%;" v-model="subjectRow.voucherNo"
|
|
|
- size="small" autocomplete="off"
|
|
|
- clearable placeholder="请输入规格" >
|
|
|
- </el-input>
|
|
|
- </el-form-item>
|
|
|
- </el-col>
|
|
|
- <el-col :span="4">
|
|
|
- <el-form-item label="借方数量:" prop="quantityDr">
|
|
|
- <el-input style="width: 100%;" v-model="subjectRow.quantityDr"
|
|
|
- size="small" autocomplete="off"
|
|
|
- clearable placeholder="请输入借方数量" >
|
|
|
- </el-input>
|
|
|
- </el-form-item>
|
|
|
- </el-col>
|
|
|
- <el-col :span="4">
|
|
|
- <el-form-item label="借方单价:" prop="voucherNo">
|
|
|
- <el-input style="width: 100%;" v-model="subjectRow.voucherNo"
|
|
|
- size="small" autocomplete="off"
|
|
|
- clearable placeholder="请输入借方单价" >
|
|
|
- </el-input>
|
|
|
- </el-form-item>
|
|
|
- </el-col>
|
|
|
- <el-col :span="4">
|
|
|
- <el-form-item label="贷方数量:" prop="quantityCr">
|
|
|
- <el-input style="width: 100%;" v-model="subjectRow.quantityCr"
|
|
|
- size="small" autocomplete="off"
|
|
|
- clearable placeholder="请输入贷方数量" >
|
|
|
- </el-input>
|
|
|
- </el-form-item>
|
|
|
- </el-col>
|
|
|
- <el-col :span="4">
|
|
|
- <el-form-item label="贷方单价:" prop="voucherNo">
|
|
|
- <el-input style="width: 100%;" v-model="subjectRow.voucherNo"
|
|
|
- size="small" autocomplete="off"
|
|
|
- clearable placeholder="请输入贷方单价" >
|
|
|
- </el-input>
|
|
|
- </el-form-item>
|
|
|
- </el-col>
|
|
|
- </el-row>
|
|
|
-
|
|
|
+ <!--#region-->
|
|
|
+ <!--<div>外币核算:</div>-->
|
|
|
+ <!--<el-row>-->
|
|
|
+ <!-- <el-col :span="4">-->
|
|
|
+ <!-- <el-form-item label="币种:" prop="curCode">-->
|
|
|
+ <!-- <el-input style="width: 100%;" v-model="subjectRow.curCode"-->
|
|
|
+ <!-- size="small" autocomplete="off"-->
|
|
|
+ <!-- clearable placeholder="请输入币种" >-->
|
|
|
+ <!-- </el-input>-->
|
|
|
+ <!-- </el-form-item>-->
|
|
|
+ <!-- </el-col>-->
|
|
|
+ <!-- <el-col :span="4">-->
|
|
|
+ <!-- <el-form-item label="汇率:" prop="exrate">-->
|
|
|
+ <!-- <el-input style="width: 100%;" v-model="subjectRow.exrate"-->
|
|
|
+ <!-- size="small" autocomplete="off"-->
|
|
|
+ <!-- clearable placeholder="请输入汇率" >-->
|
|
|
+ <!-- </el-input>-->
|
|
|
+ <!-- </el-form-item>-->
|
|
|
+ <!-- </el-col>-->
|
|
|
+ <!-- <el-col :span="4">-->
|
|
|
+ <!-- <el-form-item label="借方金额:" prop="amountDrUsd">-->
|
|
|
+ <!-- <el-input style="width: 100%;" v-model="subjectRow.amountDrUsd"-->
|
|
|
+ <!-- size="small" autocomplete="off"-->
|
|
|
+ <!-- clearable placeholder="请输入借方金额" >-->
|
|
|
+ <!-- </el-input>-->
|
|
|
+ <!-- </el-form-item>-->
|
|
|
+ <!-- </el-col>-->
|
|
|
+ <!-- <el-col :span="4">-->
|
|
|
+ <!-- <el-form-item label="贷方金额:" prop="amountCrUsd">-->
|
|
|
+ <!-- <el-input style="width: 100%;" v-model="subjectRow.amountCrUsd"-->
|
|
|
+ <!-- size="small" autocomplete="off"-->
|
|
|
+ <!-- clearable placeholder="请输入贷方金额" >-->
|
|
|
+ <!-- </el-input>-->
|
|
|
+ <!-- </el-form-item>-->
|
|
|
+ <!-- </el-col>-->
|
|
|
+ <!-- <el-col :span="4">-->
|
|
|
+ <!-- <el-form-item label="本币借方:" prop="amountDr">-->
|
|
|
+ <!-- <el-input style="width: 100%;" v-model="subjectRow.amountDr"-->
|
|
|
+ <!-- size="small" autocomplete="off"-->
|
|
|
+ <!-- clearable placeholder="请输入本币借方" >-->
|
|
|
+ <!-- </el-input>-->
|
|
|
+ <!-- </el-form-item>-->
|
|
|
+ <!-- </el-col>-->
|
|
|
+ <!-- <el-col :span="4">-->
|
|
|
+ <!-- <el-form-item label="本币贷方:" prop="amountCr">-->
|
|
|
+ <!-- <el-input style="width: 100%;" v-model="subjectRow.amountCr"-->
|
|
|
+ <!-- size="small" autocomplete="off"-->
|
|
|
+ <!-- clearable placeholder="请输入本币贷方" >-->
|
|
|
+ <!-- </el-input>-->
|
|
|
+ <!-- </el-form-item>-->
|
|
|
+ <!-- </el-col>-->
|
|
|
+ <!--</el-row>-->
|
|
|
+ <!--#endregion-->
|
|
|
+ <!--#region-->
|
|
|
+ <!--<div>数量核算:</div>-->
|
|
|
+ <!--<el-row>-->
|
|
|
+ <!-- <el-col :span="4">-->
|
|
|
+ <!-- <el-form-item label="单位:" prop="unitNo">-->
|
|
|
+ <!-- <el-input style="width: 100%;" v-model="subjectRow.unitNo"-->
|
|
|
+ <!-- size="small" autocomplete="off"-->
|
|
|
+ <!-- clearable placeholder="请输入单位" >-->
|
|
|
+ <!-- </el-input>-->
|
|
|
+ <!-- </el-form-item>-->
|
|
|
+ <!-- </el-col>-->
|
|
|
+ <!-- <el-col :span="4">-->
|
|
|
+ <!-- <el-form-item label="规格:" prop="voucherNo">-->
|
|
|
+ <!-- <el-input style="width: 100%;" v-model="subjectRow.voucherNo"-->
|
|
|
+ <!-- size="small" autocomplete="off"-->
|
|
|
+ <!-- clearable placeholder="请输入规格" >-->
|
|
|
+ <!-- </el-input>-->
|
|
|
+ <!-- </el-form-item>-->
|
|
|
+ <!-- </el-col>-->
|
|
|
+ <!-- <el-col :span="4">-->
|
|
|
+ <!-- <el-form-item label="借方数量:" prop="quantityDr">-->
|
|
|
+ <!-- <el-input style="width: 100%;" v-model="subjectRow.quantityDr"-->
|
|
|
+ <!-- size="small" autocomplete="off"-->
|
|
|
+ <!-- clearable placeholder="请输入借方数量" >-->
|
|
|
+ <!-- </el-input>-->
|
|
|
+ <!-- </el-form-item>-->
|
|
|
+ <!-- </el-col>-->
|
|
|
+ <!-- <el-col :span="4">-->
|
|
|
+ <!-- <el-form-item label="借方单价:" prop="voucherNo">-->
|
|
|
+ <!-- <el-input style="width: 100%;" v-model="subjectRow.voucherNo"-->
|
|
|
+ <!-- size="small" autocomplete="off"-->
|
|
|
+ <!-- clearable placeholder="请输入借方单价" >-->
|
|
|
+ <!-- </el-input>-->
|
|
|
+ <!-- </el-form-item>-->
|
|
|
+ <!-- </el-col>-->
|
|
|
+ <!-- <el-col :span="4">-->
|
|
|
+ <!-- <el-form-item label="贷方数量:" prop="quantityCr">-->
|
|
|
+ <!-- <el-input style="width: 100%;" v-model="subjectRow.quantityCr"-->
|
|
|
+ <!-- size="small" autocomplete="off"-->
|
|
|
+ <!-- clearable placeholder="请输入贷方数量" >-->
|
|
|
+ <!-- </el-input>-->
|
|
|
+ <!-- </el-form-item>-->
|
|
|
+ <!-- </el-col>-->
|
|
|
+ <!-- <el-col :span="4">-->
|
|
|
+ <!-- <el-form-item label="贷方单价:" prop="voucherNo">-->
|
|
|
+ <!-- <el-input style="width: 100%;" v-model="subjectRow.voucherNo"-->
|
|
|
+ <!-- size="small" autocomplete="off"-->
|
|
|
+ <!-- clearable placeholder="请输入贷方单价" >-->
|
|
|
+ <!-- </el-input>-->
|
|
|
+ <!-- </el-form-item>-->
|
|
|
+ <!-- </el-col>-->
|
|
|
+ <!--</el-row>-->
|
|
|
+ <!--#endregion-->
|
|
|
<el-row :gutter="40">
|
|
|
<el-col :span="12" v-if="subjectAccount.isCorp">
|
|
|
<div>客户核算:</div>
|
|
|
<el-form-item label="客户名称:" prop="corpCnName">
|
|
|
- <el-input style="width: 100%;" v-model="subjectRow.corpCnName"
|
|
|
- size="small" autocomplete="off"
|
|
|
- clearable placeholder="请输入客户名称" >
|
|
|
- </el-input>
|
|
|
+ <search-query style="width: 100%"
|
|
|
+ :datalist="corpCnNameData"
|
|
|
+ :selectValue="subjectRow.corpCnName"
|
|
|
+ :filterable="true"
|
|
|
+ :clearable="true"
|
|
|
+ :remote="true"
|
|
|
+ :buttonIf="false"
|
|
|
+ placeholder="请选择客户名称"
|
|
|
+ :forParameter="{key:'id',label:'cnName',value:'cnName'}"
|
|
|
+ @corpFocus="getBcorpsListfun"
|
|
|
+ @remoteMethod="getBcorpsListfun"
|
|
|
+ @corpChange="corpChange($event,'corpCnName')">
|
|
|
+ </search-query>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
<el-col :span="12" v-if="subjectAccount.isDept">
|
|
|
<div>部门核算:</div>
|
|
|
<el-form-item label="部门名称:" prop="deptName">
|
|
|
- <el-input style="width: 100%;" v-model="subjectRow.deptName"
|
|
|
- size="small" autocomplete="off"
|
|
|
- clearable placeholder="请输入部门名称" >
|
|
|
- </el-input>
|
|
|
+ <tree-select v-model="subjectRow.deptName"
|
|
|
+ filterable
|
|
|
+ :data="deptData"
|
|
|
+ :props="{label:'title',children:'children'}"
|
|
|
+ nodeKey="title"
|
|
|
+ size="small"
|
|
|
+ :multiple="false"
|
|
|
+ placeholder="请选择部门名称"
|
|
|
+ @focus="getDeptTreefun"
|
|
|
+ @input="corpChange($event,'deptName')">
|
|
|
+ </tree-select>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
<el-col :span="12" v-if="subjectAccount.isEmpl">
|
|
|
<div>职员核算:</div>
|
|
|
<el-form-item label="职员名称:" prop="emplName">
|
|
|
- <el-input style="width: 100%;" v-model="subjectRow.emplName"
|
|
|
- size="small" autocomplete="off"
|
|
|
- clearable placeholder="请输入职员名称" >
|
|
|
- </el-input>
|
|
|
+ <search-query :datalist="emplData"
|
|
|
+ :selectValue="subjectRow.emplName"
|
|
|
+ :clearable="true"
|
|
|
+ :buttonIf="false"
|
|
|
+ :filterable="true"
|
|
|
+ :remote="true"
|
|
|
+ placeholder="请选择职员名称"
|
|
|
+ :forParameter="{ key:'id', label:'name', value:'name'}"
|
|
|
+ @corpFocus="userGetListfun"
|
|
|
+ @corpChange="corpChange($event,'emplName')"
|
|
|
+ @remoteMethod="userGetListfun" >
|
|
|
+ </search-query>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
<el-col :span="12" v-if="subjectAccount.isItem">
|
|
@@ -261,6 +288,18 @@
|
|
|
size="small" autocomplete="off"
|
|
|
clearable placeholder="请输入项目名称" >
|
|
|
</el-input>
|
|
|
+ <search-query :datalist="itemData"
|
|
|
+ :selectValue="subjectRow.itemName"
|
|
|
+ :clearable="true"
|
|
|
+ :buttonIf="false"
|
|
|
+ :filterable="true"
|
|
|
+ :remote="true"
|
|
|
+ placeholder="请选择项目名称"
|
|
|
+ :forParameter="{ key:'id', label:'cnName', value:'cnName'}"
|
|
|
+ @corpFocus="baccitemstypeListfun"
|
|
|
+ @corpChange="corpChange($event,'itemName')"
|
|
|
+ @remoteMethod="baccitemstypeListfun" >
|
|
|
+ </search-query>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
</el-row>
|
|
@@ -283,15 +322,21 @@
|
|
|
import {getCurrentDate, getYearDate} from "@/util/date";
|
|
|
import fromtableDetails from "@/views/iosBasicData/finvouchers/assembly/fromtableDetails.vue";
|
|
|
import {accountsDetail} from "@/api/iosBasicData/accounts";
|
|
|
+ import {getBcorpsList} from "@/api/iosBasicData/bcorps";
|
|
|
+ import TreeSelect from "@/components/iosbasic-data/TreeSelect.vue";
|
|
|
+ import {getDeptLazyTree, getDeptTree} from "@/api/system/dept";
|
|
|
+ import {getList as userGetList} from '@/api/system/user'
|
|
|
+ import {baccitemstypeList} from "@/api/iosBasicData/baccitemstype";
|
|
|
|
|
|
export default {
|
|
|
- components: {SearchQuery,fromtableDetails},
|
|
|
+ components: {TreeSelect, SearchQuery,fromtableDetails},
|
|
|
data(){
|
|
|
return {
|
|
|
pageLoading:false, // 整个的动画
|
|
|
saveLoading:false, // 按钮动画
|
|
|
// 获取的数据
|
|
|
form:{
|
|
|
+ voucherType:'PZDH-J', // 凭证类型
|
|
|
voucherDate:getCurrentDate(),
|
|
|
finVouchersItemsList:[],
|
|
|
},
|
|
@@ -300,6 +345,10 @@
|
|
|
handleSelectionData:[], // 分录多选的数据
|
|
|
subjectRow:{}, // 科目弹窗的显示数据
|
|
|
subjectAccount:{},// 当前选择科目的数据
|
|
|
+ corpCnNameData:[], // 客户核算 下拉数据
|
|
|
+ deptData:[], // 部门核算 下拉数据
|
|
|
+ emplData:[], // 职员核算 下拉数据
|
|
|
+ itemData:[], // 项目核算 下拉数据
|
|
|
}
|
|
|
},
|
|
|
created() {
|
|
@@ -312,6 +361,7 @@
|
|
|
finvouchersDetail(id).then(res=>{
|
|
|
this.pageLoading = false
|
|
|
this.form = res.data.data
|
|
|
+ console.log(this.form,361)
|
|
|
})
|
|
|
},
|
|
|
// 添加分录
|
|
@@ -338,7 +388,6 @@
|
|
|
},
|
|
|
// 删除分录
|
|
|
deleteEntryfun(){
|
|
|
- console.log(this.handleSelectionData,323)
|
|
|
if (this.handleSelectionData.length == 0) {
|
|
|
return this.$message.warning('请选择至少一条数据')
|
|
|
}
|
|
@@ -351,6 +400,33 @@
|
|
|
// 大保存
|
|
|
finvouchersSubmitfun(){
|
|
|
this.form.businessTypeCode = 'PZDH'
|
|
|
+ this.form.billNoFormat = this.form.voucherType
|
|
|
+ if (this.form.finVouchersItemsList.length < 2) {
|
|
|
+ return this.$message.warning('请填写至少两天数据')
|
|
|
+ }
|
|
|
+ // 判断币种是否一样
|
|
|
+ for (let item of this.form.finVouchersItemsList) {
|
|
|
+ if (this.form.finVouchersItemsList[0].curCode != item.curCode) {
|
|
|
+ return this.$message.warning('请选择相同币种的科目')
|
|
|
+ }
|
|
|
+ }
|
|
|
+ // 判断借方金额合计 是否等于 贷方金额合计
|
|
|
+ let amountDrSum = 0
|
|
|
+ let amountCrSum = 0
|
|
|
+ for (let item of this.form.finVouchersItemsList) {
|
|
|
+ if (item.curCode == 'USD') {
|
|
|
+ amountDrSum += Number(item.amountDrUsd)
|
|
|
+ amountCrSum += Number(item.amountCrUsd)
|
|
|
+ }else {
|
|
|
+ amountDrSum += Number(item.amountDr)
|
|
|
+ amountCrSum += Number(item.amountCr)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (amountDrSum != amountCrSum) {
|
|
|
+ return this.$message.warning('凭证借贷金额不平衡')
|
|
|
+ }
|
|
|
+ console.log(this.form,379)
|
|
|
+
|
|
|
this.pageLoading = true
|
|
|
finvouchersSubmit(this.form).then(res=>{
|
|
|
this.$message.success('操作成功')
|
|
@@ -380,8 +456,70 @@
|
|
|
},
|
|
|
// 下拉回调
|
|
|
corpChange(value,name){
|
|
|
- this.$set(this.form,'voucherType',value)
|
|
|
- this.$set(this.form,'billNoFormat',value)
|
|
|
+ // 客户名称
|
|
|
+ if (name == 'corpCnName') {
|
|
|
+ for (let item of this.corpCnNameData) {
|
|
|
+ if (item.cnName == value) {
|
|
|
+ this.$set(this.subjectRow,'corpEnName',item.enName)
|
|
|
+ this.$set(this.subjectRow,'corpCnName',item.cnName)
|
|
|
+ this.$set(this.subjectRow,'corpId',item.id)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ // 核算
|
|
|
+ else if (name == 'deptName') {
|
|
|
+ for (let item of this.deptData) {
|
|
|
+ if (item.title == value) {
|
|
|
+ this.$set(this.subjectRow,'deptName',item.title)
|
|
|
+ this.$set(this.subjectRow,'deptId',item.id)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ // 职员
|
|
|
+ else if (name == 'emplName') {
|
|
|
+ for (let item of this.emplData) {
|
|
|
+ if (item.name == value) {
|
|
|
+ this.$set(this.subjectRow,'emplName',item.name)
|
|
|
+ this.$set(this.subjectRow,'emplId',item.id)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ // 项目核算
|
|
|
+ else if (name == 'itemName') {
|
|
|
+ for (let item of this.itemData) {
|
|
|
+ if (item.cnName == value) {
|
|
|
+ this.$set(this.subjectRow,'itemName',item.cnName)
|
|
|
+ this.$set(this.subjectRow,'itemId',item.id)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }else if (name == 'voucherType') {
|
|
|
+ this.$set(this.form,'voucherType',value)
|
|
|
+ }
|
|
|
+ },
|
|
|
+ // 接口数据调用
|
|
|
+ // 客户
|
|
|
+ getBcorpsListfun(cnName){
|
|
|
+ getBcorpsList(1,10,{cnName}).then(res=>{
|
|
|
+ this.corpCnNameData = res.data.data.records
|
|
|
+ })
|
|
|
+ },
|
|
|
+ // 部门
|
|
|
+ getDeptTreefun(){
|
|
|
+ getDeptLazyTree(JSON.parse(localStorage.getItem('saber-userInfo')).content.dept_pid.split(',')[0]).then(res=>{
|
|
|
+ this.deptData = res.data.data
|
|
|
+ })
|
|
|
+ },
|
|
|
+ // 职员
|
|
|
+ userGetListfun(account = undefined,type = false,){
|
|
|
+ userGetList(1,10,{account},JSON.parse(localStorage.getItem('saber-userInfo')).content.dept_pid.split(',')[0]).then(res=>{
|
|
|
+ this.emplData = res.data.data.records
|
|
|
+ })
|
|
|
+ },
|
|
|
+ // 项目核算
|
|
|
+ baccitemstypeListfun(cnName){
|
|
|
+ baccitemstypeList(1,10,{cnName}).then(res=>{
|
|
|
+ this.itemData = res.data.data.records
|
|
|
+ })
|
|
|
},
|
|
|
// 表格多选数据
|
|
|
handleSelectionChange(list){
|