Bladeren bron

1.公务成本细节调整
2.公务出访bug修复

yuanrf 5 dagen geleden
bovenliggende
commit
8dedf9e25b
2 gewijzigde bestanden met toevoegingen van 366 en 309 verwijderingen
  1. 50 22
      src/components/Finance/ConferenceCost.vue
  2. 316 287
      src/components/Resource/OpOfficialActivities.vue

+ 50 - 22
src/components/Finance/ConferenceCost.vue

@@ -32,14 +32,14 @@
                 </div>
             </div>
             <div class="conferencecost-header-right">
-                <el-button v-if="control.isGM" size="small" type="primary"
+                <el-button v-if="control.isGM && userId != 21" size="small" type="primary"
                     @click="permissionSettingDialog = true">权限分配</el-button>
-                <el-select v-if="control.isReview" size="small" v-model="fileSelect" clearable placeholder="请选择"
+                <el-select v-if="canSave" size="small" v-model="fileSelect" clearable placeholder="请选择"
                     style="width: 150px;margin-left: 10px;">
                     <el-option v-for="item in filetype" :key="item.id" :label="item.name" :value="item.id">
                     </el-option>
                 </el-select>
-                <el-button v-if="control.isReview" style="margin-left: 10px;" size="small" type="primary"
+                <el-button v-if="canSave" style="margin-left: 10px;" size="small" type="primary"
                     @click="FileDown">生成表格</el-button>
                 <el-button v-if="control.isReview" size="small" @click="ConferenceAffairsAudit(1)"
                     type="primary">审核通过</el-button>
@@ -48,9 +48,9 @@
             </div>
         </div>
         <div class="conferencecost-content">
-            <el-table border ref="multipleTable" :data="tableDatas" tooltip-effect="dark" style="width: 100%"
+            <el-table border ref="tableRef" :data="tableDatas" tooltip-effect="dark" style="width: 100%"
                 @selection-change="handleSelectionChange">
-                <el-table-column type="selection" width="55">
+                <el-table-column v-if="control.isReview" type="selection" width="55">
                 </el-table-column>
                 <el-table-column label="序号" prop="index" width="55">
                 </el-table-column>
@@ -74,6 +74,20 @@
                             :controls="false" v-model="scope.row.costPrice"></el-input-number>
                     </template>
                 </el-table-column>
+                <el-table-column prop="name" label="数量" width="80">
+                    <template slot-scope="scope">
+                        <el-input-number @change="calculateQuotation(scope.row)" :precision="2" size="mini"
+                            :controls="false" v-model="scope.row.count"></el-input-number>
+                    </template>
+                </el-table-column>
+                <el-table-column prop="name" label="单位" width="100">
+                    <template slot-scope="scope">
+                        <el-select size="small" v-model="scope.row.unit" placeholder="" clearable>
+                            <el-option v-for="item in units" :key="item.id" :label="item.text" :value="item.id">
+                            </el-option>
+                        </el-select>
+                    </template>
+                </el-table-column>
                 <el-table-column prop="name" label="币种" width="100">
                     <template slot-scope="scope">
                         <el-select size="small" @change="currencychange(scope.row)" v-model="scope.row.currency"
@@ -90,29 +104,30 @@
                             :controls="false" v-model="scope.row.rate"></el-input-number>
                     </template>
                 </el-table-column>
-                <el-table-column prop="name" label="数量" width="80">
+
+                <el-table-column prop="name" label="系数" width="100">
                     <template slot-scope="scope">
                         <el-input-number @change="calculateQuotation(scope.row)" :precision="2" size="mini"
-                            :controls="false" v-model="scope.row.count"></el-input-number>
-                    </template>
-                </el-table-column>
-                <el-table-column prop="name" label="单位" width="100">
-                    <template slot-scope="scope">
-                        <el-select size="small" v-model="scope.row.unit" placeholder="" clearable>
-                            <el-option v-for="item in units" :key="item.id" :label="item.text" :value="item.id">
-                            </el-option>
-                        </el-select>
+                            :controls="false" v-model="scope.row.coefficient"></el-input-number>
                     </template>
                 </el-table-column>
-                <el-table-column prop="name" label="系数" width="100">
+                <el-table-column prop="name" :label="`单项成本金额`" width="130">
                     <template slot-scope="scope">
-                        <el-input-number @change="calculateQuotation(scope.row)" :precision="2" size="mini"
-                            :controls="false" v-model="scope.row.coefficient"></el-input-number>
+                        {{ townum(scope.row.costPrice * scope.row.count) }}
+                        <!-- <el-input-number :precision="2" size="mini" :controls="false" v-model="scope.row.baoJiaPrice"></el-input-number> -->
                     </template>
                 </el-table-column>
-                <el-table-column prop="name" label="单项报价金额" width="100">
+                <el-table-column prop="name" label="单项报价金额" width="160">
                     <template slot-scope="scope">
-                        {{ townum(scope.row.baoJiaPrice) }}
+                        {{ `${townum(scope.row.baoJiaPrice)} (CNY)` }}
+                        <div v-if="scope.row.currency != 836">
+
+                            {{ `${townum(scope.row.costPrice * scope.row.coefficient * scope.row.count)}
+                            (${getCurrencyCode(scope.row)})`
+
+                            }}
+
+                        </div>
                         <!-- <el-input-number :precision="2" size="mini" :controls="false" v-model="scope.row.baoJiaPrice"></el-input-number> -->
                     </template>
                 </el-table-column>
@@ -193,7 +208,7 @@
                     </el-option>
                 </el-select>
             </div>
-            <div class="conferencecost-Interestrate">
+            <div class="conferencecost-Interestrate" v-if="false">
                 该会务利润率超过
                 <el-input-number style="width:120px;" :precision="2" size="mini" :controls="false"
                     v-model="liom"></el-input-number>%
@@ -352,7 +367,7 @@ export default {
                 priceType: '',//费用类型
                 priceName: '',//费用名称
                 costPrice: 0,//成本费用
-                currency: '',//币种
+                currency: 836,//币种
                 rate: 0,//当时汇率
                 count: 0,//数量333
                 unit: '',//单位
@@ -610,6 +625,11 @@ export default {
                 }
             })
         },
+        // 获取每行数据的币种代码
+        getCurrencyCode(row) {
+            const currency = this.options.find(option => option.currencyId === row.currency);
+            return currency ? currency.currencyCode : '';
+        },
         // 合并为单一函数,移除冗余API调用
         ConferenceAffairsLoad() {
             this.conferencecostLoading = true;
@@ -647,6 +667,14 @@ export default {
                     if (res.data.code == 200) {
                         this.conferenceAffairsCost = data.conferenceAffairsCost;
                         this.tableDatas = data.conferenceAffairsCostChi;
+                        // 设置默认选中所有行
+                        this.$nextTick(() => {
+                            if (this.tableDatas.length > 0) {
+                                this.tableDatas.forEach(row => {
+                                    this.$refs.tableRef.toggleRowSelection(row, true);
+                                });
+                            }
+                        });
                     }
 
                     if (res.data.code == 201) {

File diff suppressed because it is too large
+ 316 - 287
src/components/Resource/OpOfficialActivities.vue