nahida vor 1 Jahr
Ursprung
Commit
2f9a8ec1b9

+ 66 - 0
src/views/qyxypj/qypjdf/detail.vue

@@ -0,0 +1,66 @@
+<script setup>
+import request from "@/utils/request.js";
+import {detailMap, titleMap} from "@/views/qyxypj/qypjdf/detailMap.js";
+import { ref, onMounted } from 'vue';
+
+const data = ref([]);
+
+const getData = async () => {
+  const res = await request('/basicData/xcrEBaseinfo/getCreditScoreMostDetailsByUniCode', {
+    params: {
+      uniCode: '91431227MA4LB1K97C'
+    }
+  });
+
+  const dataList = [];
+  for (let dataKey in res.data) {
+    const temp = {
+      key: dataKey,
+      label: detailMap.get(dataKey),
+      value: res.data[dataKey]
+    };
+    dataList.push(temp);
+  }
+
+  // 分组,每组分别包含前13个、14-20个、21-28个
+  const groupedData = [
+    dataList.slice(0, 13),
+    dataList.slice(13, 20),
+    dataList.slice(20, 28)
+  ];
+
+  data.value = groupedData;
+
+  console.log(data.value);
+};
+
+const init = () => {
+  getData();
+};
+
+onMounted(() => {
+  init();
+});
+</script>
+
+<template>
+  <div>
+    <div class="p-10px">
+      <div>当前查询的企业:新晃中民燃气有限公司</div>
+      <div>当前查询的统一社会信用代码:91431227MA4LB1K97C</div>
+      <div>信用等级为:AAA</div>
+      <div>总分为:91.00</div>
+    </div>
+    <div v-for="(group, groupIndex) in data" :key="groupIndex" class="mb-20px">
+      <el-descriptions :title="titleMap.get(groupIndex+1)" :column="4" border>
+        <el-descriptions-item v-for="(item, itemIndex) in group" :key="itemIndex" :label="item.label" width="100px">
+          {{ item.value }}
+        </el-descriptions-item>
+      </el-descriptions>
+    </div>
+  </div>
+</template>
+
+<style scoped lang="scss">
+/* 你的样式 */
+</style>

+ 34 - 0
src/views/qyxypj/qypjdf/detailMap.js

@@ -0,0 +1,34 @@
+export const detailMap = new Map();
+
+detailMap.set('abnormalOperationScore', '经营异常扣分 (最高扣10分)');
+detailMap.set('administrativeAwardScore', '行政奖励得分 (最高算3分)');
+detailMap.set('administrativeEnforcementScore', '行政强制扣分 (最高扣5分)');
+detailMap.set('administrativePenaltyScore', '行政处罚扣分 (最高扣20分)');
+detailMap.set('administrativeSupervisionScore', '行政监督检查不合格 (最高扣1分)');
+detailMap.set('annualReportScore', '企业年报 (最高算2分)');
+detailMap.set('bankCreditRating', '银行信用等级 (最高算1分)');
+detailMap.set('certificateScore', '资质证书 (最高算3分)');
+detailMap.set('corporateImageScore', '形象宣传 (最高算1分)');
+detailMap.set('enforcementTargetScore', '被执行人信息 (最高扣10分)');
+detailMap.set('environmentalProtectionCreditRating', '环保信用等级 (最高算1分)');
+detailMap.set('intellectualPropertyScore', '商标 (最高算3分)');
+detailMap.set('licensedCompanyCreditEvaluation', '持牌企业征信、信用评级机构评价结果 (最高算5分)');
+detailMap.set('marketRegulationCreditRating', '市场监管领域信用等级 (最高算1分)');
+detailMap.set('operationYearsScore', '经营年限 (最高算1分)');
+detailMap.set('otherCreditEvaluationInfo', '其他领域信用评价信息 (最高算4分)');
+detailMap.set('projectExperience', '项目经验 (最高算2分)');
+detailMap.set('publicCreditEvaluationResult', '信用平台企业公共信用评价结果 (最高算5分)');
+detailMap.set('publicUtilityArrearsScore', '公用事业欠费 (最高扣1分)');
+detailMap.set('qualityInspection', '质量抽检 (最高算1分)');
+detailMap.set('registeredCapitalScore', '注册资金 (最高算1分)');
+detailMap.set('socialHonor', '社会荣誉 (最高算3分)');
+detailMap.set('socialResponsibility', '社会责任 (最高算4分)');
+detailMap.set('taxArrears', '税费欠缴 (最高扣3分)');
+detailMap.set('taxCreditRating', '纳税信用等级 (最高算3分)');
+detailMap.set('taxScore', '企业纳税 (最高算4分)');
+detailMap.set('utilityPaymentScore', '公用事业缴费 (最高算1分)');
+
+export const titleMap = new Map();
+titleMap.set(1,'企业竞争力得分');
+titleMap.set(2,'参考信用评价得分');
+titleMap.set(3,'企业风险信息扣分');

+ 84 - 0
src/views/qyxypj/qypjdf/index.vue

@@ -0,0 +1,84 @@
+<script setup>
+import { ref, onMounted } from 'vue';
+import request from "@/utils/request.js";
+import { ElMessage, ElTable, ElTableColumn, ElPagination } from "element-plus";
+
+const tableData = ref([]);
+const total = ref(0);
+const currentPage = ref(1);
+const pageSize = ref(10);
+
+const getList = async (page = 1, size = 10) => {
+  try {
+    const res = await request('basicData/xcrEBaseinfo/getCreditScoreListDetails', {
+      params: {
+        pageNum: page,
+        pageSize: size,
+      }
+    });
+
+    if (res.code !== 200) {
+      ElMessage.error(res.msg);
+      return;
+    }
+
+    tableData.value = res.data.result;
+    total.value = res.data.totalSize;
+  } catch (error) {
+    ElMessage.error('获取数据失败');
+    console.error(error);
+  }
+};
+
+const handleSizeChange = (val) => {
+  pageSize.value = val;
+  getList(currentPage.value, val);
+};
+
+const handleCurrentChange = (val) => {
+  currentPage.value = val;
+  getList(val, pageSize.value);
+};
+
+onMounted(() => {
+  getList();
+});
+</script>
+
+<template>
+  <div class="p-4">
+    <el-table :data="tableData" border stripe hover class="w-full">
+      <el-table-column prop="enterpriseName" label="企业名称">
+        <template #default="scope">
+          <el-link class="text-blue">{{ scope.row.enterpriseName }}</el-link>
+        </template>
+      </el-table-column>
+      <el-table-column prop="uniCode" label="统一社会信用代码" />
+      <el-table-column prop="grade" label="等级" width="150" />
+      <el-table-column prop="total" label="总分" width="150">
+        <template #default="scope">
+          {{ scope.row.total.toFixed(2) }}
+        </template>
+      </el-table-column>
+      <el-table-column prop="administrativePenaltyScore" label="行政处罚分数" width="150" />
+      <el-table-column prop="enterpriseCompetitivenessScore" label="企业竞争力分数" />
+      <el-table-column prop="referenceCreditRatingScore" label="参考信用评级分数" />
+    </el-table>
+
+    <div class="flex justify-center mt-4">
+      <el-pagination
+          v-model:current-page="currentPage"
+          v-model:page-size="pageSize"
+          :page-sizes="[10, 20, 50, 100]"
+          layout="total, sizes, prev, pager, next, jumper"
+          :total="total"
+          @size-change="handleSizeChange"
+          @current-change="handleCurrentChange"
+      />
+    </div>
+  </div>
+</template>
+
+<style>
+/* 如果需要额外的样式,可以在这里添加 */
+</style>

+ 119 - 0
src/views/qyxypj/xypjdj/index.vue

@@ -0,0 +1,119 @@
+<script setup>
+import { ref, onMounted, watch } from 'vue'
+import request from "@/utils/request.js"
+import { ElMessage } from "element-plus"
+
+const tableData = ref([])
+const total = ref(0)
+const currentPage = ref(1)
+const pageSize = ref(15)
+
+const formData = ref({
+  uniCode: '',
+  enterpriseName: '',
+  condition: ['AAA', 'AA', 'A', 'B', 'C', 'D']
+})
+
+const getList = async () => {
+  try {
+    const res = await request('/basicData/xcrEBaseinfo/getCreditScoreList', {
+      params: {
+        pageNum: currentPage.value,
+        pageSize: pageSize.value,
+        ...formData.value,
+        condition: formData.value.condition.join(',')
+      }
+    })
+    if (res.code !== 200) {
+      ElMessage.error(res.msg)
+      return
+    }
+    tableData.value = res.data.result
+    total.value = res.data.totalSize
+  } catch (error) {
+    ElMessage.error('获取数据失败')
+    console.error(error)
+  }
+}
+
+const handleSizeChange = (val) => {
+  pageSize.value = val
+  getList()
+}
+
+const handleCurrentChange = (val) => {
+  currentPage.value = val
+  getList()
+}
+
+const handleSearch = () => {
+  currentPage.value = 1 // 重置到第一页
+  getList()
+}
+
+const handleReset = () => {
+  formData.value = {
+    uniCode: '',
+    enterpriseName: '',
+    condition: ['AAA', 'AA', 'A', 'B', 'C', 'D']
+  }
+  currentPage.value = 1
+  getList()
+}
+
+onMounted(() => {
+  getList()
+})
+</script>
+
+<template>
+  <div class="company-info-table p-4">
+    <el-form :inline="true" :model="formData" class="mb-4">
+      <el-form-item label="统一社会信用代码">
+        <el-input v-model="formData.uniCode" placeholder="请输入" clearable />
+      </el-form-item>
+      <el-form-item label="企业名称">
+        <el-input v-model="formData.enterpriseName" placeholder="请输入" clearable />
+      </el-form-item>
+      <el-form-item label="评分等级" class="w-250px">
+        <el-select
+            v-model="formData.condition"
+            multiple
+            collapse-tags
+            collapse-tags-tooltip
+            placeholder="请选择"
+        >
+          <el-option
+              v-for="item in ['AAA', 'AA', 'A', 'B', 'C', 'D']"
+              :key="item"
+              :label="item"
+              :value="item"
+          />
+        </el-select>
+      </el-form-item>
+      <el-form-item>
+        <el-button type="primary" @click="handleSearch">搜索</el-button>
+        <el-button @click="handleReset">重置</el-button>
+      </el-form-item>
+    </el-form>
+
+    <el-table :data="tableData" style="width: 100%" class="mb-4">
+      <el-table-column prop="enterpriseName" label="企业名称" />
+      <el-table-column prop="grade" label="等级" />
+      <el-table-column prop="total" label="总分" />
+      <el-table-column prop="uniCode" label="统一社会信用代码" />
+    </el-table>
+
+    <el-pagination
+        v-model:current-page="currentPage"
+        v-model:page-size="pageSize"
+        :page-sizes="[15, 20, 30, 50]"
+        layout="total, sizes, prev, pager, next, jumper"
+        :total="total"
+        @size-change="handleSizeChange"
+        @current-change="handleCurrentChange"
+        class="flex justify-end"
+    />
+  </div>
+</template>
+

+ 4 - 2
vite.config.js

@@ -31,8 +31,10 @@ export default defineConfig(({ mode, command }) => {
       proxy: {
         // https://cn.vitejs.dev/config/#server-proxy
         '/dev-api': {
-          // target: 'http://localhost:8900/background',
-          target: 'http://localhost:18902',
+          target: 'http://localhost:8900/background',
+          // target: 'http://localhost:18902',
+          // target: 'http://10.101.102.10:8900/background',
+          // target: 'http://192.168.110.235:8900/background',
           changeOrigin: true,
           rewrite: (p) => p.replace(/^\/dev-api/, '')
         }