فهرست منبع

1.机器设备-进口设备作价页面开发

GouGengquan 8 ماه پیش
والد
کامیت
f7d28ed6f7
2فایلهای تغییر یافته به همراه360 افزوده شده و 15 حذف شده
  1. 10 0
      src/api/assetsCalculateEqptData.js
  2. 350 15
      src/views/assets/workbench/calculate/importInfo.vue

+ 10 - 0
src/api/assetsCalculateEqptData.js

@@ -13,4 +13,14 @@ export function getDataPage(params) {
 // 更新机器设备数据
 export function updateData(params) {
     return request.put('/assetsCalculateEqptData/update', params)
+}
+
+// 分页查询进口设备信息
+export function getImpDataPage(params) {
+    return request.get('/assetsCalculateEqptData/getImpDataPage', { params: params })
+}
+
+// 更新机器设备进口设备数据
+export function updateImpData(params) {
+    return request.put('/assetsCalculateEqptData/updateImpData', params)
 }

+ 350 - 15
src/views/assets/workbench/calculate/importInfo.vue

@@ -33,17 +33,22 @@
                     style="width: 200px;" />
                 <el-input v-model="eqptDataQuery.equipmentName" placeholder="请输入设备名称" clearable
                     style="width: 200px;margin-left: 10px;" />
-                <el-select v-model="eqptDataQuery.equipmentType" filterable placeholder="请选择设备类型" clearable
-                    style="width: 200px;margin-left: 10px;">
+                <el-select v-if="activeName === 'all'" v-model="eqptDataQuery.equipmentType" filterable
+                    placeholder="请选择设备类型" clearable style="width: 200px;margin-left: 10px;">
                     <el-option label="国产设备" value="国产设备"></el-option>
                     <el-option label="非标设备" value="非标设备"></el-option>
                     <el-option label="进口设备" value="进口设备"></el-option>
                 </el-select>
-                <el-button type="danger" @click="getEqptDataPage()" style="margin-left: 10px;">
+                <el-button v-if="activeName === 'all'" type="danger" @click="getEqptDataPage()"
+                    style="margin-left: 10px;">
+                    搜索
+                </el-button>
+                <el-button v-if="activeName === 'imported'" type="danger" @click="getImpEqptDataPage()"
+                    style="margin-left: 10px;">
                     搜索
                 </el-button>
             </div>
-            <el-table :data="eqptPageData" border stripe>
+            <el-table :data="eqptPageData" border stripe v-show="activeName === 'all'">
                 <el-table-column prop="sortId" label="序号" width="80">
                     <template #default="{ row }">
                         <el-form-item prop="sortId">
@@ -165,7 +170,8 @@
                 <el-table-column prop="unTaxedUnitPrice" label="不含税单价" width="150">
                     <template #default="{ row }">
                         <!-- 计算不含税单价 -->
-                        <span>{{ row.unTaxedUnitPrice = (row.taxedUnitPrice / (1 + row.taxRate / 100)).toFixed(2) }}</span>
+                        <span>{{ row.unTaxedUnitPrice = (row.taxedUnitPrice / (1 + row.taxRate / 100)).toFixed(2)
+                        }}</span>
                     </template>
                 </el-table-column>
                 <el-table-column prop="remark" label="备注" width="250">
@@ -190,7 +196,8 @@
                     </el-table-column>
                     <el-table-column prop="netValue" label="净值" width="100">
                         <template #default="{ row }">
-                            <span>{{ row.netValue = (row.originalValue * 1 * row.comprehensiveDepreciationRate / 100)
+                            <span>{{ row.netValue = (row.originalValue * 1 * row.comprehensiveDepreciationRate /
+                                100)
                             }}</span>
                         </template>
                     </el-table-column>
@@ -339,7 +346,8 @@
                 </el-table-column>
                 <el-table-column label="运杂费" width="100">
                     <template #default="{ row }">
-                        <span>{{ row.freightAndMiscellaneousFee = (row.quotation * row.freightAndMiscellaneousFeeRate /
+                        <span>{{ row.freightAndMiscellaneousFee = (row.quotation *
+                            row.freightAndMiscellaneousFeeRate /
                             100).toFixed(0) }}</span>
                     </template>
                 </el-table-column>
@@ -368,12 +376,14 @@
                 </el-table-column>
                 <el-table-column prop="installationFee" label="安装费" width="100">
                     <template #default="{ row }">
-                        <span>{{ row.installationFee = (row.quotation * row.installationRate / 100).toFixed(2) }}</span>
+                        <span>{{ row.installationFee = (row.quotation * row.installationRate / 100).toFixed(2)
+                        }}</span>
                     </template>
                 </el-table-column>
                 <el-table-column label="设备工程费" width="100">
                     <template #default="{ row }">
-                        <span>{{ row.equipmentEngineeringCosts = (row.quotation * 1 + row.freightAndMiscellaneousFee * 1 +
+                        <span>{{ row.equipmentEngineeringCosts = (row.quotation * 1 + row.freightAndMiscellaneousFee
+                            * 1 +
                             row.baseFee * 1 + row.installationFee * 1).toFixed(0) }}</span>
                     </template>
                 </el-table-column>
@@ -405,11 +415,285 @@
                     </template>
                 </el-table-column>
             </el-table>
+            <el-table :data="eqptImpPageData" border stripe v-show="activeName === 'imported'">
+                <el-table-column prop="sortId" label="序号" width="80">
+                    <template #default="{ row }">
+                        <el-form-item prop="sortId">
+                            <el-form :model="row" @submit.native.prevent>
+                                <el-input v-model="row.sortId" />
+                            </el-form>
+                        </el-form-item>
+                    </template>
+                </el-table-column>
+                <el-table-column prop="equipmentName" label="设备名称" width="250">
+                    <template #default="{ row }">
+                        <el-form-item prop="equipmentName">
+                            <el-form :model="row" @submit.native.prevent>
+                                <el-input v-model="row.equipmentName" placeholder="请输入设备名称" />
+                            </el-form>
+                        </el-form-item>
+                    </template>
+                </el-table-column>
+                <el-table-column prop="model" label="规格型号" width="250">
+                    <template #default="{ row }">
+                        <el-form-item prop="model">
+                            <el-form :model="row" @submit.native.prevent>
+                                <el-input v-model="row.model" placeholder="请输入规格型号" />
+                            </el-form>
+                        </el-form-item>
+                    </template>
+                </el-table-column>
+                <el-table-column prop="manufacturer" label="生产厂家" width="250">
+                    <template #default="{ row }">
+                        <el-form-item prop="manufacturer">
+                            <el-form :model="row" @submit.native.prevent>
+                                <el-input v-model="row.manufacturer" placeholder="请输入生产厂家" />
+                            </el-form>
+                        </el-form-item>
+                    </template>
+                </el-table-column>
+                <el-table-column prop="unitOfMeasurement" label="计量单位" width="150">
+                    <template #default="{ row }">
+                        <el-form-item prop="unitOfMeasurement">
+                            <el-form :model="row" @submit.native.prevent>
+                                <el-input v-model="row.unitOfMeasurement" placeholder="请输入计量单位" />
+                            </el-form>
+                        </el-form-item>
+                    </template>
+                </el-table-column>
+                <el-table-column prop="quantity" label="数量" width="150">
+                    <template #default="{ row }">
+                        <el-form-item prop="quantity">
+                            <el-form :model="row" @submit.native.prevent>
+                                <el-input v-model="row.quantity" placeholder="请输入数量" />
+                            </el-form>
+                        </el-form-item>
+                    </template>
+                </el-table-column>
+                <el-table-column prop="purchaseDate" label="购置日期" width="150">
+                    <template #default="{ row }">
+                        <el-form-item prop="purchaseDate">
+                            <el-form :model="row" @submit.native.prevent>
+                                <el-input v-model="row.purchaseDate" placeholder="请输入购置日期" />
+                            </el-form>
+                        </el-form-item>
+                    </template>
+                </el-table-column>
+                <el-table-column prop="activationDate" label="启用日期" width="150">
+                    <template #default="{ row }">
+                        <el-form-item prop="activationDate">
+                            <el-form :model="row" @submit.native.prevent>
+                                <el-input v-model="row.activationDate" placeholder="请输入启用日期" />
+                            </el-form>
+                        </el-form-item>
+                    </template>
+                </el-table-column>
+                <el-table-column prop="originalValue" label="账面原值" width="150">
+                    <template #default="{ row }">
+                        <el-form-item prop="originalValue">
+                            <el-form :model="row" @submit.native.prevent>
+                                <el-input v-model="row.bookOriginalValue" placeholder="请输入账面原值" />
+                            </el-form>
+                        </el-form-item>
+                    </template>
+                </el-table-column>
+                <el-table-column prop="ppi" label="价格指数" width="150">
+                    <template #default="{ row }">
+                        <el-form-item prop="ppi">
+                            <el-form :model="row" @submit.native.prevent>
+                                <el-input v-model="row.ppi" placeholder="价格指数" />
+                            </el-form>
+                        </el-form-item>
+                    </template>
+                </el-table-column>
+                <el-table-column prop="pricingBasis" label="取价依据" width="150">
+                    <template #default="{ row }">
+                        <el-form-item prop="pricingBasis">
+                            <el-form :model="row" @submit.native.prevent>
+                                <el-input v-model="row.pricingBasis" placeholder="取价依据" />
+                            </el-form>
+                        </el-form-item>
+                    </template>
+                </el-table-column>
+                <el-table-column prop="purchasePrice" label="购置价(CIF到岸价)" width="150">
+                    <template #default="{ row }">
+                        <span>{{ row.purchasePrice = (row.ppi * row.contractAmount).toFixed(2) }}</span>
+                    </template>
+                </el-table-column>
+                <el-table-column label="(CIF到岸价)折人民币">
+                    <el-table-column prop="centralParityRate" label="基准日汇率中间价" width="150">
+                        <template #default="{ row }">
+                            <el-form-item prop="centralParityRate">
+                                <el-form :model="row" @submit.native.prevent>
+                                    <el-input v-model="row.centralParityRate" placeholder="基准日汇率中间价" />
+                                </el-form>
+                            </el-form-item>
+                        </template>
+                    </el-table-column>
+                    <el-table-column prop="CIFLandedPrice" label="(CIF到岸价)折人民币" width="150">
+                        <template #default="{ row }">
+                            <span>{{ row.CIFLandedPrice = (row.purchasePrice * row.centralParityRate).toFixed(0) }}</span>
+                        </template>
+                    </el-table-column>
+                </el-table-column>
+                <el-table-column prop="tariffRate" label="关税税率" width="150">
+                    <template #default="{ row }">
+                        <el-form-item prop="tariffRate">
+                            <el-form :model="row" @submit.native.prevent>
+                                <el-input v-model="row.tariffRate" placeholder="关税税率" />
+                            </el-form>
+                        </el-form-item>
+                    </template>
+                </el-table-column>
+                <el-table-column prop="tariff" label="关税" width="150">
+                    <template #default="{ row }">
+                        <span>{{ row.tariff = (row.CIFLandedPrice * row.tariffRate).toFixed(2) }}</span>
+                    </template>
+                </el-table-column>
+                <el-table-column prop="importVATRate" label="进口增值税率" width="150">
+                    <template #default="{ row }">
+                        <el-form-item prop="importVATRate">
+                            <el-form :model="row" @submit.native.prevent>
+                                <el-input v-model="row.importVATRate" placeholder="进口增值税率" />
+                            </el-form>
+                        </el-form-item>
+                    </template>
+                </el-table-column>
+                <el-table-column prop="importVAT" label="进口增值税" width="150">
+                    <template #default="{ row }">
+                        <span>{{ row.importVAT = ((row.CIFLandedPrice * 1 + row.tariff * 1) * row.importVATRate).toFixed(2)
+                        }}</span>
+                    </template>
+                </el-table-column>
+                <el-table-column prop="eqptPrice" label="设备价格" width="150">
+                    <template #default="{ row }">
+                        <span>{{ row.eqptPrice = (row.CIFLandedPrice * 1 + row.tariff * 1 + row.importVAT * 1).toFixed(2) }}</span>
+                    </template>
+                </el-table-column>
+                <el-table-column prop="bankChargesRate" label="银行财务费率" width="150">
+                    <template #default="{ row }">
+                        <el-form-item prop="bankChargesRate">
+                            <el-form :model="row" @submit.native.prevent>
+                                <el-input v-model="row.bankChargesRate" placeholder="银行财务费率" />
+                            </el-form>
+                        </el-form-item>
+                    </template>
+                </el-table-column>
+                <el-table-column prop="bankCharges" label="银行财务费" width="150">
+                    <template #default="{ row }">
+                        <span>{{ row.bankCharges = (row.CIFLandedPrice * row.bankChargesRate).toFixed(2) }}</span>
+                    </template>
+                </el-table-column>
+                <el-table-column prop="foreignTransactionRate" label="外贸手续费率" width="150">
+                    <template #default="{ row }">
+                        <el-form-item prop="foreignTransactionRate">
+                            <el-form :model="row" @submit.native.prevent>
+                                <el-input v-model="row.foreignTransactionRate" placeholder="外贸手续费率" />
+                            </el-form>
+                        </el-form-item>
+                    </template>
+                </el-table-column>
+                <el-table-column prop="foreignTransaction" label="外贸手续费" width="150">
+                    <template #default="{ row }">
+                        <span>{{ row.foreignTransaction = (row.CIFLandedPrice * row.foreignTransactionRate).toFixed(2)
+                        }}</span>
+                    </template>
+                </el-table-column>
+                <el-table-column prop="totalFees" label="费用小计" width="150">
+                    <template #default="{ row }">
+                        <span>{{ row.totalFees = (row.bankCharges * 1 + row.foreignTransaction * 1).toFixed(2) }}</span>
+                    </template>
+                </el-table-column>
+                <el-table-column prop="originalPrice" label="设备原价" width="150">
+                    <template #default="{ row }">
+                        <span>{{ row.originalPrice = (row.eqptPrice * 1 + row.totalFees * 1).toFixed(2) }}</span>
+                    </template>
+                </el-table-column>
+                <el-table-column prop="productCode" label="商品编号" width="150">
+                    <template #default="{ row }">
+                        <el-form-item prop="productCode">
+                            <el-form :model="row" @submit.native.prevent>
+                                <el-input v-model="row.productCode" placeholder="商品编号" />
+                            </el-form>
+                        </el-form-item>
+                    </template>
+                </el-table-column>
+                <el-table-column prop="currency" label="币种" width="150">
+                    <template #default="{ row }">
+                        <el-form-item prop="currency">
+                            <el-form :model="row" @submit.native.prevent>
+                                <el-input v-model="row.currency" placeholder="币种" />
+                            </el-form>
+                        </el-form-item>
+                    </template>
+                </el-table-column>
+                <el-table-column prop="address" label="地址" width="150">
+                    <template #default="{ row }">
+                        <el-form-item prop="address">
+                            <el-form :model="row" @submit.native.prevent>
+                                <el-input v-model="row.address" placeholder="地址" />
+                            </el-form>
+                        </el-form-item>
+                    </template>
+                </el-table-column>
+                <el-table-column prop="transactionMethod" label="成交方式" width="150">
+                    <template #default="{ row }">
+                        <el-form-item prop="transactionMethod">
+                            <el-form :model="row" @submit.native.prevent>
+                                <el-input v-model="row.transactionMethod" placeholder="成交方式" />
+                            </el-form>
+                        </el-form-item>
+                    </template>
+                </el-table-column>
+                <el-table-column prop="contractAmount" label="合同金额" width="150">
+                    <template #default="{ row }">
+                        <el-form-item prop="contractAmount">
+                            <el-form :model="row" @submit.native.prevent>
+                                <el-input v-model="row.contractAmount" placeholder="合同金额" />
+                            </el-form>
+                        </el-form-item>
+                    </template>
+                </el-table-column>
+                <el-table-column prop="contractSigningDate" label="合同签订日期" width="150">
+                    <template #default="{ row }">
+                        <el-form-item prop="contractSigningDate">
+                            <el-form :model="row" @submit.native.prevent>
+                                <el-input v-model="row.contractSigningDate" placeholder="合同签订日期" />
+                            </el-form>
+                        </el-form-item>
+                    </template>
+                </el-table-column>
+                <el-table-column prop="destinationPort" label="到岸港口" width="150">
+                    <template #default="{ row }">
+                        <el-form-item prop="destinationPort">
+                            <el-form :model="row" @submit.native.prevent>
+                                <el-input v-model="row.destinationPort" placeholder="到岸港口" />
+                            </el-form>
+                        </el-form-item>
+                    </template>
+                </el-table-column>
+                <el-table-column fixed="right" label="操作" min-width="55">
+                    <template #default="{ row }">
+                        <el-button link type="primary" size="small" @click="saveImp(row)">保存</el-button>
+                    </template>
+                </el-table-column>
+            </el-table>
         </div>
-        <el-pagination background layout="prev, pager, next"
+        <!-- <el-button @click="generateEquipmentCalculate()">生成测算表</el-button> -->
+        <el-pagination v-if="activeName === 'all'" background layout="prev, pager, next"
             style="--el-color-primary: #ff6154;margin-top: 20px; float: right;" v-model:page-count="eqptDataQuery.pages"
             v-model:current-page="eqptDataQuery.current" @current-change="getEqptDataPage" />
-        <el-button @click="generateEquipmentCalculate()">生成测算表</el-button>
+        <el-pagination v-if="activeName === 'imported'" background layout="prev, pager, next"
+            style="--el-color-primary: #ff6154;margin-top: 20px; float: right;" v-model:page-count="eqptDataQuery.pages"
+            v-model:current-page="eqptDataQuery.current" @current-change="getImpEqptDataPage" />
+        <el-tabs v-model="activeName" tab-position="bottom" @tab-change="tabChange()" style="display:inline-block;margin-left: 15.5%">
+            <el-tab-pane label="所有设备测算" name="all">
+            </el-tab-pane>
+            <el-tab-pane label="进口设备测算" name="imported">
+            </el-tab-pane>
+            <el-tab-pane label="非标设备测算" name="nonStandard">
+            </el-tab-pane>
+        </el-tabs>
     </div>
 </template>
 
@@ -417,7 +701,7 @@
 import { mapStores } from 'pinia';
 import { assetsProjectInfo } from '@/stores/assetsProjectStore';
 import { importEqptExcelData, getCalculateBaseInfo, getValuationBasisDate, generateEquipmentCalculate } from '@/api/assetsCalculate';
-import { getDataPage, updateData } from '@/api/assetsCalculateEqptData';
+import { getDataPage, updateData, getImpDataPage, updateImpData } from '@/api/assetsCalculateEqptData';
 import { getDaysBetween } from '@/utils/date';
 import { eqptLifeIfrRefsList } from '@/api/eqptLifeIfrRefs';
 import { getPPIDownData, getPPIByNameType } from '@/api/eqptPPI'
@@ -425,7 +709,7 @@ import { getPPIDownData, getPPIByNameType } from '@/api/eqptPPI'
 export default {
     data() {
         return {
-            baseURL: import.meta.env.VITE_BASE_URL,
+            activeName: 'all',
             fileList: [],
             imageList: [],
             eqptDataQuery: {
@@ -438,6 +722,7 @@ export default {
                 equipmentType: null
             },
             eqptPageData: [],
+            eqptImpPageData: [],
             calculateBaseInfo: {},
             eqptLifeIfrRefs: [],
             ppiOptions: []
@@ -453,6 +738,26 @@ export default {
     },
     methods: {
         getDaysBetween,
+        tabChange() {
+            this.eqptDataQuery = {
+                current: 1,
+                size: 10,
+                pages: 1,
+                calculateId: null,
+                sortId: null,
+                equipmentName: null,
+                equipmentType: null
+            }
+            if (this.activeName === 'all') {
+                this.getEqptDataPage();
+            }
+            if (this.activeName === 'imported') {
+                this.getImpEqptDataPage();
+            }
+            if (this.activeName === 'nonStandard') {
+
+            }
+        },
         uploadEqptExcel() {
             if (this.eqptPageData && this.eqptPageData.length > 0) {
                 ElMessageBox.confirm('上传新的申报信息将会覆盖旧数据', '确认上传', {
@@ -522,6 +827,15 @@ export default {
                 this.getEqptLifeIfrRefs();
             })
         },
+        // 分页查询进口设备信息
+        getImpEqptDataPage() {
+            this.eqptDataQuery.calculateId = this.projectStore.calculateProgress.id;
+            this.eqptDataQuery.equipmentType = '进口设备';
+            getImpDataPage(this.eqptDataQuery).then(res => {
+                this.eqptDataQuery.pages = res.data.pages
+                this.eqptImpPageData = res.data.records;
+            })
+        },
         // 获取测算表基础信息
         getBaseInfo() {
             getCalculateBaseInfo(this.projectStore.calculateProgress.id).then(res => {
@@ -619,8 +933,6 @@ export default {
 
             // 将三部分相加并四舍五入到最接近的整数
             const result = Math.round(partAE5 + partAG5AI5AK5 + partAL5);
-
-            console.log(AE5,AG5,AI5,AK5,AL5,AS4,AS5)
             return result;
         },
         // 计算单价
@@ -633,6 +945,7 @@ export default {
                 }
             }
         },
+        // 更新国产设备测算
         save(row) {
             updateData(row).then(res => {
                 if (res.code == 200) {
@@ -709,6 +1022,19 @@ export default {
                     })
                 }
             })
+        },
+        // 更新进口设备测算
+        saveImp(row) {
+            updateImpData(row).then(res => {
+                if (res.code == 200) {
+                    ElMessage({
+                        showClose: true,
+                        message: res.message,
+                        type: 'success'
+                    })
+                    this.getImpEqptDataPage();
+                }
+            })
         }
     },
 
@@ -780,4 +1106,13 @@ export default {
 .el-form-item {
     margin-bottom: 0
 }
+
+:deep(.el-tabs__item) {
+    padding-left: 0px !important;
+}
+
+/* 将tap的下划线移动到顶部 */
+:deep(.el-tabs__active-bar) {
+    margin-bottom: 35px !important;
+}
 </style>