补充招投标供应商企业详情查看
This commit is contained in:
@@ -506,6 +506,16 @@
|
||||
<el-table-column label="联系人" prop="contactPerson" min-width="120" :show-overflow-tooltip="true" />
|
||||
<el-table-column label="联系电话" prop="contactPhone" min-width="150" :show-overflow-tooltip="true" />
|
||||
<el-table-column label="银行账户" prop="supplierBankAccount" min-width="180" :show-overflow-tooltip="true" />
|
||||
<el-table-column label="操作" width="100" align="center" fixed="right">
|
||||
<template slot-scope="scope">
|
||||
<el-button
|
||||
type="text"
|
||||
size="mini"
|
||||
:loading="enterpriseDetailLoading"
|
||||
@click="handleSupplierEnterpriseDetail(scope.row)"
|
||||
>详情</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
|
||||
<el-divider content-position="left">重要日期</el-divider>
|
||||
@@ -552,6 +562,41 @@
|
||||
</div>
|
||||
</el-dialog>
|
||||
|
||||
<el-dialog
|
||||
title="企业信息详情"
|
||||
:visible.sync="enterpriseDetailOpen"
|
||||
width="1000px"
|
||||
append-to-body
|
||||
@close="resetEnterpriseDetail"
|
||||
>
|
||||
<el-descriptions :column="2" border v-loading="enterpriseDetailLoading">
|
||||
<el-descriptions-item label="统一社会信用代码">{{ enterpriseDetailData.socialCreditCode || "-" }}</el-descriptions-item>
|
||||
<el-descriptions-item label="企业名称">{{ enterpriseDetailData.enterpriseName || "-" }}</el-descriptions-item>
|
||||
<el-descriptions-item label="企业类型">{{ enterpriseDetailData.enterpriseType || "-" }}</el-descriptions-item>
|
||||
<el-descriptions-item label="企业性质">{{ enterpriseDetailData.enterpriseNature || "-" }}</el-descriptions-item>
|
||||
<el-descriptions-item label="行业分类">{{ enterpriseDetailData.industryClass || "-" }}</el-descriptions-item>
|
||||
<el-descriptions-item label="所属行业">{{ enterpriseDetailData.industryName || "-" }}</el-descriptions-item>
|
||||
<el-descriptions-item label="成立日期">{{ parseTime(enterpriseDetailData.establishDate, "{y}-{m}-{d}") || "-" }}</el-descriptions-item>
|
||||
<el-descriptions-item label="注册地址">{{ enterpriseDetailData.registerAddress || "-" }}</el-descriptions-item>
|
||||
<el-descriptions-item label="法定代表人">{{ enterpriseDetailData.legalRepresentative || "-" }}</el-descriptions-item>
|
||||
<el-descriptions-item label="法定代表人证件类型">{{ enterpriseDetailData.legalCertType || "-" }}</el-descriptions-item>
|
||||
<el-descriptions-item label="法定代表人证件号码">{{ enterpriseDetailData.legalCertNo || "-" }}</el-descriptions-item>
|
||||
<el-descriptions-item label="经营状态">{{ formatEnterpriseStatus(enterpriseDetailData.status) }}</el-descriptions-item>
|
||||
<el-descriptions-item label="风险等级">{{ formatEnterpriseRiskLevel(enterpriseDetailData.riskLevel) }}</el-descriptions-item>
|
||||
<el-descriptions-item label="企业来源">{{ formatEnterpriseSource(enterpriseDetailData.entSource) }}</el-descriptions-item>
|
||||
<el-descriptions-item label="数据来源">{{ formatEnterpriseDataSource(enterpriseDetailData.dataSource) }}</el-descriptions-item>
|
||||
<el-descriptions-item label="创建时间">{{ parseTime(enterpriseDetailData.createTime) || "-" }}</el-descriptions-item>
|
||||
<el-descriptions-item label="股东1">{{ enterpriseDetailData.shareholder1 || "-" }}</el-descriptions-item>
|
||||
<el-descriptions-item label="股东2">{{ enterpriseDetailData.shareholder2 || "-" }}</el-descriptions-item>
|
||||
<el-descriptions-item label="股东3">{{ enterpriseDetailData.shareholder3 || "-" }}</el-descriptions-item>
|
||||
<el-descriptions-item label="股东4">{{ enterpriseDetailData.shareholder4 || "-" }}</el-descriptions-item>
|
||||
<el-descriptions-item label="股东5">{{ enterpriseDetailData.shareholder5 || "-" }}</el-descriptions-item>
|
||||
</el-descriptions>
|
||||
<div slot="footer" class="dialog-footer">
|
||||
<el-button @click="enterpriseDetailOpen = false">关闭</el-button>
|
||||
</div>
|
||||
</el-dialog>
|
||||
|
||||
<el-dialog
|
||||
:title="upload.title"
|
||||
:visible.sync="upload.open"
|
||||
@@ -608,6 +653,12 @@
|
||||
/>
|
||||
|
||||
<el-table :data="failureList" v-loading="failureLoading">
|
||||
<el-table-column label="失败Sheet" prop="sheetName" align="center" width="140" />
|
||||
<el-table-column label="失败行号" prop="sheetRowNum" align="center" width="120">
|
||||
<template slot-scope="scope">
|
||||
<span>{{ scope.row.sheetRowNum ? `第${scope.row.sheetRowNum}行` : "-" }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="采购事项ID" prop="purchaseId" align="center" />
|
||||
<el-table-column label="项目名称" prop="projectName" align="center" :show-overflow-tooltip="true" />
|
||||
<el-table-column label="标的物名称" prop="subjectName" align="center" :show-overflow-tooltip="true" />
|
||||
@@ -640,6 +691,12 @@ import {
|
||||
listTransaction,
|
||||
updateTransaction
|
||||
} from "@/api/ccdiPurchaseTransaction";
|
||||
import { getEnterpriseBaseInfo } from "@/api/ccdiEnterpriseBaseInfo";
|
||||
import {
|
||||
getDataSourceOptions,
|
||||
getEnterpriseRiskLevelOptions,
|
||||
getEnterpriseSourceOptions
|
||||
} from "@/api/ccdiEnum";
|
||||
import { getToken } from "@/utils/auth";
|
||||
import ImportResultDialog from "@/components/ImportResultDialog.vue";
|
||||
|
||||
@@ -699,10 +756,16 @@ export default {
|
||||
title: "",
|
||||
open: false,
|
||||
detailOpen: false,
|
||||
enterpriseDetailOpen: false,
|
||||
enterpriseDetailLoading: false,
|
||||
enterpriseDetailData: {},
|
||||
transactionDetail: { supplierList: [] },
|
||||
isAdd: false,
|
||||
dateRange: [],
|
||||
winnerSupplierIndex: null,
|
||||
enterpriseRiskLevelOptions: [],
|
||||
enterpriseSourceOptions: [],
|
||||
enterpriseDataSourceOptions: [],
|
||||
queryParams: {
|
||||
pageNum: 1,
|
||||
pageSize: 10,
|
||||
@@ -813,6 +876,7 @@ export default {
|
||||
created() {
|
||||
this.getList();
|
||||
this.restoreImportState();
|
||||
this.loadEnterpriseDetailOptions();
|
||||
},
|
||||
beforeDestroy() {
|
||||
if (this.importPollingTimer) {
|
||||
@@ -821,6 +885,26 @@ export default {
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
loadEnterpriseDetailOptions() {
|
||||
return Promise.all([
|
||||
getEnterpriseRiskLevelOptions(),
|
||||
getEnterpriseSourceOptions(),
|
||||
getDataSourceOptions()
|
||||
]).then(([riskRes, sourceRes, dataSourceRes]) => {
|
||||
this.enterpriseRiskLevelOptions = riskRes.data || [];
|
||||
this.enterpriseSourceOptions = sourceRes.data || [];
|
||||
this.enterpriseDataSourceOptions = dataSourceRes.data || [];
|
||||
}).catch(() => {
|
||||
this.enterpriseRiskLevelOptions = [];
|
||||
this.enterpriseSourceOptions = [];
|
||||
this.enterpriseDataSourceOptions = [];
|
||||
});
|
||||
},
|
||||
getEnterpriseOptionLabel(options, value) {
|
||||
if (!value) return "-";
|
||||
const matched = (options || []).find(item => item.value === value);
|
||||
return matched ? matched.label : value;
|
||||
},
|
||||
getList() {
|
||||
this.loading = true;
|
||||
const params = this.addDateRangeFlat(this.queryParams, this.dateRange, "applyDateStart", "applyDateEnd");
|
||||
@@ -859,23 +943,25 @@ export default {
|
||||
maximumFractionDigits: 2
|
||||
});
|
||||
},
|
||||
formatEnterpriseRiskLevel(value) {
|
||||
return this.getEnterpriseOptionLabel(this.enterpriseRiskLevelOptions, value);
|
||||
},
|
||||
formatEnterpriseSource(value) {
|
||||
return this.getEnterpriseOptionLabel(this.enterpriseSourceOptions, value);
|
||||
},
|
||||
formatEnterpriseDataSource(value) {
|
||||
return this.getEnterpriseOptionLabel(this.enterpriseDataSourceOptions, value);
|
||||
},
|
||||
formatEnterpriseStatus(value) {
|
||||
return value || "-";
|
||||
},
|
||||
getSupplierFieldRules(field) {
|
||||
const ruleMap = {
|
||||
supplierName: [
|
||||
{ required: true, message: "供应商名称不能为空", trigger: "blur" },
|
||||
{ max: 200, message: "供应商名称长度不能超过200个字符", trigger: "blur" }
|
||||
{ required: true, message: "供应商名称不能为空", trigger: "blur" }
|
||||
],
|
||||
supplierUscc: [
|
||||
{ pattern: /^$|^[0-9A-HJ-NPQRTUWXY]{2}\d{6}[0-9A-HJ-NPQRTUWXY]{10}$/, message: "请输入正确的18位统一信用代码", trigger: "blur" }
|
||||
],
|
||||
contactPerson: [
|
||||
{ max: 50, message: "联系人长度不能超过50个字符", trigger: "blur" }
|
||||
],
|
||||
contactPhone: [
|
||||
{ pattern: /^$|^1[3-9]\d{9}$|^0\d{2,3}-?\d{7,8}$/, message: "请输入正确的联系电话(手机号或座机号)", trigger: "blur" }
|
||||
],
|
||||
supplierBankAccount: [
|
||||
{ max: 50, message: "银行账户长度不能超过50个字符", trigger: "blur" }
|
||||
{ required: true, message: "统一信用代码不能为空", trigger: "blur" }
|
||||
],
|
||||
};
|
||||
return ruleMap[field] || [];
|
||||
@@ -889,6 +975,11 @@ export default {
|
||||
this.winnerSupplierIndex = null;
|
||||
this.resetForm("form");
|
||||
},
|
||||
resetEnterpriseDetail() {
|
||||
this.enterpriseDetailOpen = false;
|
||||
this.enterpriseDetailLoading = false;
|
||||
this.enterpriseDetailData = {};
|
||||
},
|
||||
handleQuery() {
|
||||
this.queryParams.pageNum = 1;
|
||||
this.getList();
|
||||
@@ -928,6 +1019,28 @@ export default {
|
||||
this.detailOpen = true;
|
||||
});
|
||||
},
|
||||
async handleSupplierEnterpriseDetail(row) {
|
||||
const socialCreditCode = row && row.supplierUscc ? row.supplierUscc.trim() : "";
|
||||
if (!socialCreditCode) {
|
||||
this.$message.warning("暂无企业信息");
|
||||
return;
|
||||
}
|
||||
this.enterpriseDetailLoading = true;
|
||||
this.enterpriseDetailData = {};
|
||||
try {
|
||||
const response = await getEnterpriseBaseInfo(socialCreditCode);
|
||||
if (!response || !response.data) {
|
||||
this.$message.warning("暂无企业信息");
|
||||
return;
|
||||
}
|
||||
this.enterpriseDetailData = response.data;
|
||||
this.enterpriseDetailOpen = true;
|
||||
} catch (error) {
|
||||
this.$message.warning("暂无企业信息");
|
||||
} finally {
|
||||
this.enterpriseDetailLoading = false;
|
||||
}
|
||||
},
|
||||
handleAddSupplier() {
|
||||
this.form.supplierList.push(createSupplierRow());
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user