Browse Source

货代凭证 2024-2-26

caojunjie 1 year ago
parent
commit
384fdcb81d

+ 149 - 0
src/views/iosBasicData/accounts/assembly/accountsDialog.vue

@@ -80,6 +80,116 @@
                         <el-checkbox size="medium" :true-label="1" :false-label="0" v-model="form.isStock">库存</el-checkbox>
                     </el-form-item>
                 </el-col>
+
+                <el-row v-if="form.isItem == 0">
+                    <el-col :span="24">
+                        <el-form-item label="单价" prop="price">
+                            <el-input style="width: 100%;" v-model="form.price"
+                                      size="small" autocomplete="off" @blur="countBlur"
+                                      clearable placeholder="请输入单价" >
+                            </el-input>
+                        </el-form-item>
+                    </el-col>
+                    <el-col :span="6">
+                        <el-form-item label="期初借方数量" prop="quantityOpenDr" label-width="100px" >
+                            <el-input style="width: 100%;" v-model="form.quantityOpenDr"
+                                      size="small" autocomplete="off" @blur="countBlur"
+                                      clearable placeholder="请输入期初借方数量" >
+                            </el-input>
+                        </el-form-item>
+                    </el-col>
+                    <el-col :span="6" v-if="form.curCode == 'USD'">
+                        <el-form-item label="期初借方金额" prop="amountOpenDrUsd" label-width="100px">
+                            <el-input style="width: 100%;" v-model="form.amountOpenDrUsd"
+                                      size="small" autocomplete="off" :disabled="true"
+                                      clearable placeholder="请输入期初借方金额" >
+                            </el-input>
+                        </el-form-item>
+                    </el-col>
+                    <el-col :span="6" v-if="form.curCode == 'CNY'">
+                        <el-form-item label="期初借方金额" prop="quantityOpenDr" label-width="100px">
+                            <el-input style="width: 100%;" v-model="form.amountOpenDr"
+                                      size="small" autocomplete="off" :disabled="true"
+                                      clearable placeholder="请输入期初借方金额" >
+                            </el-input>
+                        </el-form-item>
+                    </el-col>
+                    <el-col :span="6">
+                        <el-form-item label="期初贷方数量" prop="quantityOpenCr" label-width="100px" >
+                            <el-input style="width: 100%;" v-model="form.quantityOpenCr"
+                                      size="small" autocomplete="off" @blur="countBlur"
+                                      clearable placeholder="请输入期初贷方数量" >
+                            </el-input>
+                        </el-form-item>
+                    </el-col>
+                    <el-col :span="6" v-if="form.curCode == 'USD'" >
+                        <el-form-item label="期初贷方金额" prop="amountOpenCrUsd" label-width="100px">
+                            <el-input style="width: 100%;" v-model="form.amountOpenCrUsd"
+                                      size="small" autocomplete="off" :disabled="true"
+                                      clearable placeholder="请输入期初贷方金额" >
+                            </el-input>
+                        </el-form-item>
+                    </el-col>
+                    <el-col :span="6" v-if="form.curCode == 'CNY'" >
+                        <el-form-item label="期初贷方金额" prop="amountOpenCr" label-width="100px">
+                            <el-input style="width: 100%;" v-model="form.amountOpenCr"
+                                      size="small" autocomplete="off" :disabled="true"
+                                      clearable placeholder="请输入期初贷方金额" >
+                            </el-input>
+                        </el-form-item>
+                    </el-col>
+                    <el-col :span="6">
+                        <el-form-item label="本期借方数量" prop="quantityDr" label-width="100px" >
+                            <el-input style="width: 100%;" v-model="form.quantityDr"
+                                      size="small" autocomplete="off" @blur="countBlur"
+                                      clearable placeholder="请输入本期借方数量" >
+                            </el-input>
+                        </el-form-item>
+                    </el-col>
+                    <el-col :span="6" v-if="form.curCode == 'USD'" >
+                        <el-form-item label="本期借方金额" prop="amountDrUsd" label-width="100px">
+                            <el-input style="width: 100%;" v-model="form.amountDrUsd"
+                                      size="small" autocomplete="off" :disabled="true"
+                                      clearable placeholder="请输入本期借方金额" >
+                            </el-input>
+                        </el-form-item>
+                    </el-col>
+                    <el-col :span="6" v-if="form.curCode == 'CNY'" >
+                        <el-form-item label="本期借方金额" prop="amountDr" label-width="100px">
+                            <el-input style="width: 100%;" v-model="form.amountDr"
+                                      size="small" autocomplete="off" :disabled="true"
+                                      clearable placeholder="请输入本期借方金额" >
+                            </el-input>
+                        </el-form-item>
+                    </el-col>
+                    <el-col :span="6">
+                        <el-form-item label="本期贷方数量" prop="quantityCr" label-width="100px" >
+                            <el-input style="width: 100%;" v-model="form.quantityCr"
+                                      size="small" autocomplete="off"
+                                      clearable placeholder="请输入本期贷方数量" >
+                            </el-input>
+                        </el-form-item>
+                    </el-col>
+                    <el-col :span="6" v-if="form.curCode == 'USD'" >
+                        <el-form-item label="本期贷方金额" prop="amountCrUsd" label-width="100px">
+                            <el-input style="width: 100%;" v-model="form.amountCrUsd"
+                                      size="small" autocomplete="off" :disabled="true"
+                                      clearable placeholder="请输入本期贷方金额" >
+                            </el-input>
+                        </el-form-item>
+                    </el-col>
+                    <el-col :span="6" v-if="form.curCode == 'CNY'" >
+                        <el-form-item label="本期贷方金额" prop="amountCr" label-width="100px">
+                            <el-input style="width: 100%;" v-model="form.amountCr"
+                                      size="small" autocomplete="off" :disabled="true"
+                                      clearable placeholder="请输入本期贷方金额" >
+                            </el-input>
+                        </el-form-item>
+                    </el-col>
+
+
+                </el-row>
+
             </el-row>
         </el-form>
     </div>
@@ -120,6 +230,45 @@ export default {
         }
     },
     methods:{
+        // 金额计算
+        countBlur(){
+            this.$set(this.form,'price',this.form.price?Number(this.form.price):0) // 单价
+            this.$set(this.form,'quantityOpenDr',this.form.quantityOpenDr?Number(this.form.quantityOpenDr):0) // 期初借方数量
+            this.$set(this.form,'quantityOpenCr',this.form.quantityOpenCr?Number(this.form.quantityOpenCr):0) // 期初贷方数量
+            this.$set(this.form,'quantityDr',this.form.quantityDr?Number(this.form.quantityDr):0) // 本期借方数量
+            this.$set(this.form,'quantityCr',this.form.quantityCr?Number(this.form.quantityCr):0) // 本期贷方数量
+            if (this.form.curCode == 'USD') {
+                // 期初借方外币金额 = 单价 * 期初借方数量
+                this.$set(this.form,'amountOpenDrUsd',Number(this.form.price) * Number(this.form.quantityOpenDr))
+                // 期初贷方外币金额 = 单价 * 期初贷方数量
+                this.$set(this.form,'amountOpenCrUsd',Number(this.form.price) * Number(this.form.quantityOpenCr))
+                // 期初外币余额 = 期初贷方外币金额 - 期初借方外币金额
+                this.$set(this.form,'amountOpenUsdBlc',Number(this.form.amountOpenCrUsd) - Number(this.form.amountOpenDrUsd))
+                // 本期借方外币金额 = 单价 * 本期借方数量
+                this.$set(this.form,'amountDrUsd',Number(this.form.price) * Number(this.form.quantityDr))
+                // 本期贷方外币金额 = 单价 * 本期贷方数量
+                this.$set(this.form,'amountCrUsd',Number(this.form.price) * Number(this.form.quantityCr))
+                // 本期外币余额 = 本期贷方外币金额 - 本期借方外币金额
+                this.$set(this.form,'amountUsdBlc',Number(this.form.amountCrUsd) - Number(this.form.amountDrUsd))
+            }else {
+                // 期初借方本币金额 = 单价 * 期初借方数量
+                this.$set(this.form,'amountOpenDr',Number(this.form.price) * Number(this.form.quantityOpenDr))
+                // 期初贷方本币金额 = 单价 * 期初贷方数量
+                this.$set(this.form,'amountOpenCr',Number(this.form.price) * Number(this.form.quantityOpenCr))
+                // 期初本币余额 = 期初贷方本币金额 - 期初借方本币金额
+                this.$set(this.form,'amountOpenBlc',Number(this.form.amountOpenCr) - Number(this.form.amountOpenDr))
+                // 本期借方本币金额 = 单价 * 本期借方数量
+                this.$set(this.form,'amountDr',Number(this.form.price) * Number(this.form.quantityDr))
+                // 本期贷方本币金额 = 单价 * 本期贷方数量
+                this.$set(this.form,'amountCr',Number(this.form.price) * Number(this.form.quantityCr))
+                // 本期本币余额 = 本期贷方本币金额 - 本期借方本币金额
+                this.$set(this.form,'amountBlc',Number(this.form.amountCr) - Number(this.form.amountDr))
+            }
+            // 期初余额数量 = 期初贷方数量 - 期初借方数量
+            this.$set(this.form,'quantityOpenBlc',Number(this.form.quantityOpenCr) - Number(this.form.quantityOpenDr))
+            // 本期余额数量 = 本期贷方数量 - 本期借方数量
+            this.$set(this.form,'quantityBlc',Number(this.form.quantityCr) - Number(this.form.quantityDr))
+        },
         // 下拉回调
         corpChange(value,name){
             if (name == 'curCode') {

+ 84 - 14
src/views/iosBasicData/finvouchers/assembly/fromtableDetails.vue

@@ -6,6 +6,8 @@
             :header-cell-style="tableHeaderCellStyle"
             :data="tableData"
             border
+            show-summary
+            :summary-method="summaryMethod"
             style="width: 100%"
             @selection-change="handleSelectionChange"
             @row-click="rowClick"
@@ -32,10 +34,11 @@
             </el-table-column>
             <el-table-column
                 prop="accountCode"
-                label="科目代码" width="200px">
+                label="科目代码" width="200px" >
                 <template slot-scope="{ row }">
                     <div style="display: flex;align-items: center;justify-content: space-between">
-                        <search-query style="width: 80%" :datalist="accountData"
+                        <search-query style="width: 80%"
+                                      :datalist="accountData"
                                       :selectValue="row.accountId"
                                       :filterable="true"
                                       :clearable="true"
@@ -52,24 +55,45 @@
                     <span>{{row.accountCnName}}</span>
                 </template>
             </el-table-column>
+            <!--<el-table-column-->
+            <!--    prop="quantityDr"-->
+            <!--    label="借方数量" >-->
+            <!--    <template slot-scope="{ row }">-->
+            <!--        <el-input style="width: 100%;" type="number" v-model="row.quantityDr"-->
+            <!--                  size="small" autocomplete="off"-->
+            <!--                  placeholder="请输入借方数量" >-->
+            <!--        </el-input>-->
+            <!--    </template>-->
+            <!--</el-table-column>-->
+            <!--<el-table-column-->
+            <!--    prop="quantityCr"-->
+            <!--    label="贷方数量" >-->
+            <!--    <template slot-scope="{ row }">-->
+            <!--        <el-input style="width: 100%;" type="number" v-model="row.quantityCr"-->
+            <!--                  size="small" autocomplete="off"-->
+            <!--                  placeholder="请输入贷方数量" >-->
+            <!--        </el-input>-->
+            <!--    </template>-->
+            <!--</el-table-column>-->
+
             <el-table-column label="本币金额">
                 <el-table-column
                     prop="amountDr"
-                    label="借方" width="120px">
+                    label="借方" width="120px" >
                     <template slot-scope="{ row }">
                         <el-input style="width: 100%;" type="number" v-model="row.amountDr"
-                                  size="small" autocomplete="off" :disabled="row.curCode == 'USD'"
-                                   placeholder="请输入借方" >
+                                  size="small" autocomplete="off" :disabled="row.curCode == 'USD' || !row.accountId"
+                                   placeholder="请输入借方" @blur="amountBlur(row,'D')" >
                         </el-input>
                     </template>
                 </el-table-column>
                 <el-table-column
                     prop="amountCr"
-                    label="货方" width="120px">
+                    label="货方" width="120px" >
                     <template slot-scope="{ row }">
                         <el-input style="width: 100%;" type="number" v-model="row.amountCr"
-                                  size="small" autocomplete="off" :disabled="row.curCode == 'USD'"
-                                   placeholder="请输入货方" >
+                                  size="small" autocomplete="off" :disabled="row.curCode == 'USD' || !row.accountId"
+                                   placeholder="请输入货方" @blur="amountBlur(row,'C')" >
                         </el-input>
                     </template>
                 </el-table-column>
@@ -88,8 +112,8 @@
                     label="借方" width="120px">
                     <template slot-scope="{ row }">
                         <el-input style="width: 100%;" type="number" v-model="row.amountDrUsd"
-                                  size="small" autocomplete="off" :disabled="row.curCode == 'CNY'"
-                                  clearable placeholder="请输入借方" >
+                                  size="small" autocomplete="off" :disabled="row.curCode == 'CNY' || !row.accountId"
+                                  clearable placeholder="请输入借方" @blur="amountBlur(row,'Dusd')" >
                         </el-input>
                     </template>
                 </el-table-column>
@@ -98,15 +122,15 @@
                     label="货方" width="120px">
                     <template slot-scope="{ row }">
                         <el-input style="width: 100%;" type="number" v-model="row.amountCrUsd"
-                                  size="small" autocomplete="off" :disabled="row.curCode == 'CNY'"
-                                  clearable placeholder="请输入货方" >
+                                  size="small" autocomplete="off" :disabled="row.curCode == 'CNY' || !row.accountId"
+                                  clearable placeholder="请输入货方" @blur="amountBlur(row,'Cusd')" >
                         </el-input>
                     </template>
                 </el-table-column>
             </el-table-column>
             <el-table-column
                 prop="remarks"
-                label="备注" width="200px" >
+                label="备注">
                 <template slot-scope="{ row }">
                     <el-input style="width: 100%;" type="textarea" v-model="row.remarks"
                               size="small" autocomplete="off"
@@ -150,9 +174,54 @@
             }
         },
         async created() {
+            this.accountsListfun()
             // this.option = await this.getColumnData(this.getColumnName(321.1), this.optionBack);
         },
         methods:{
+            // 自定义合计
+            summaryMethod(param){
+                const { columns, data } = param;
+                const sums = [];
+                columns.forEach((column, index) => {
+                    if (index === 0) {
+                        sums[index] = '总价';
+                        return;
+                    }
+                    const values = data.map(item => Number(item[column.property]));
+                    let arr = ['amountDr','amountCr','amountDrUsd','amountCrUsd']
+                    if (arr.indexOf(column.property) != -1) {
+                        if (!values.every(value => isNaN(value))) {
+                            sums[index] = values.reduce((prev, curr) => {
+                                const value = Number(curr);
+                                if (!isNaN(value)) {
+                                    return prev + curr;
+                                } else {
+                                    return prev;
+                                }
+                            }, 0);
+                            sums[index] += ' 元';
+                        } else {
+                            sums[index] = ' ';
+                        }
+                    }
+                });
+                return sums;
+            },
+            // 借方/贷方
+            amountBlur(row,name){
+                if (name == 'D') {
+                    this.$set(row,'amountCr',0)
+                }
+                if (name == 'C') {
+                    this.$set(row,'amountDr',0)
+                }
+                if (name == 'Dusd') {
+                    this.$set(row,'amountCrUsd',0)
+                }
+                if (name == 'Cusd') {
+                    this.$set(row,'amountDrUsd',0)
+                }
+            },
             // 获取科目类型数据
             accountsListfun(){
                 accountsList(1,10,).then(res=>{
@@ -186,7 +255,8 @@
                         this.$set(row,'curCode',item.curCode)
                         // 汇率
                         this.$set(row,'exrate',item.exrate)
-                        // curCode
+                        // 打开弹窗
+                        this.$emit("auxiliaryAccountingfun",row)
                     }
                 }
             },

+ 257 - 119
src/views/iosBasicData/finvouchers/finvouchersitems.vue

@@ -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){

+ 10 - 0
src/views/iosBasicData/finvouchers/index.vue

@@ -50,6 +50,9 @@
                              @click="rowDel(row)">删除
                   </el-button>
               </template>
+              <template slot="billNo" slot-scope="{row}">
+                  <span class="textHide" style="color: #1e9fff;cursor: pointer;" @click="editFun(row)">{{row.billNo}}</span>
+              </template>
           </avue-crud>
       </basic-container>
       <finvouchersitems ref="finvouchersitemsRef" v-if="!isShow" @goBack="goBack"></finvouchersitems>
@@ -450,4 +453,11 @@
     background: #ecf5ff !important;
     text-align: center;
 }
+.textHide {
+    width: 100%;
+    overflow: hidden;
+    white-space: nowrap;
+    text-overflow: ellipsis;
+}
+
 </style>