소스 검색

feat(license): 显示各类许可证到期时间并优化界面布局

- 在营业执照、合同、娱乐经营许可证和食品经营许可证页面显示到期时间
- 统一使用 expirationTime 字段替代原有的 expireTime 和 entertainmentLicenseExpireTime
- 优化许可证页面的布局样式,调整内容区域宽度和按钮间距
- 更新娱乐经营许可证相关接口路径,修正命名不一致问题
- 修复部分页面中许可证状态判断逻辑的比较运算符使用问题
- 增强数据获取时的空值处理,使用可选链操作符防止运行时错误
congxuesong 2 주 전
부모
커밋
f2d56f1af9

+ 3 - 3
src/api/modules/licenseManagement.ts

@@ -14,7 +14,7 @@ export const getFoodBusinessLicense = params => {
 
 // 获取娱乐经营许可证
 export const getEntertainmentBusinessLicense = params => {
-  return http.get(PORT_NONE + `/license/queryEntertainmentLicenceList`, params);
+  return http.get(PORT_NONE + `/license/queryEntertainmentLicenseList`, params);
 };
 
 // 获取合同图片列表
@@ -34,7 +34,7 @@ export const getChangeRecords = params => {
 
 // 获取娱乐经营许可证变更记录
 export const getEntertainmentChangeRecords = params => {
-  return http.get(PORT_NONE + `/license/queryEntertainmentLicenceByStatusList`, params);
+  return http.get(PORT_NONE + `/license/queryEntertainmentByStatusList`, params);
 };
 // 获取合同审核状态
 export const getStoreContractStatus = params => {
@@ -48,7 +48,7 @@ export const getStoreFoodLicenceStatus = params => {
 
 // 获取娱乐经营许可证审核状态
 export const getStoreEntertainmentLicenceStatus = params => {
-  return http.get(PORT_NONE + `/license/getStoreEntertainmentLicenceStatus`, params);
+  return http.get(PORT_NONE + `/license/queryStoreEntertainmentStatus`, params);
 };
 
 // 提交食品经营许可证审核

+ 5 - 2
src/views/licenseManagement/businessLicense.vue

@@ -1,6 +1,6 @@
 <template>
   <div class="card content-box">
-    <div class="tip-text">如需更换请联系客服</div>
+    <div class="tip-text">营业执照到期时间:{{ expirationTime || "--" }}</div>
     <div class="license-container" v-if="licenseImage">
       <div class="license-display">
         <el-image :src="licenseImage" fit="contain" class="license-image" :preview-src-list="[licenseImage]">
@@ -28,6 +28,7 @@ import { getBusinessLicense } from "@/api/modules/licenseManagement";
 import { localGet } from "@/utils";
 
 const licenseImage = ref<string>("");
+const expirationTime = ref<string>("");
 
 const id = localGet("createdId");
 
@@ -41,7 +42,8 @@ const initData = async () => {
   };
   const res: any = await getBusinessLicense(params);
   if (res.code == 200) {
-    licenseImage.value = res.data[0].imgUrl;
+    licenseImage.value = res.data[0]?.imgUrl;
+    expirationTime.value = res.data[0]?.expirationTime;
   }
 };
 </script>
@@ -63,6 +65,7 @@ const initData = async () => {
   background-color: var(--el-border-color-lighter);
 }
 .tip-text {
+  align-self: flex-start;
   margin-top: 20px;
   margin-bottom: 50px;
   font-size: 18px;

+ 8 - 5
src/views/licenseManagement/contractManagement.vue

@@ -1,9 +1,7 @@
 <template>
   <div class="card content-box">
     <div class="content-section">
-      <div class="tip-text">
-        如需续约合同或更改合同图片请在此处上传,重新上传之后需要重新进行审核,审核通过后,新的合同图片将会覆盖之前的合同
-      </div>
+      <div class="tip-text">店铺到期时间:{{ expirationTime || "--" }}</div>
       <div class="action-buttons">
         <el-button type="primary" @click="handleReplace"> 更换 </el-button>
         <el-button type="primary" @click="handleViewChangeRecord"> 查看变更记录 </el-button>
@@ -154,6 +152,7 @@ const statusMap: Record<number, { name: string; class: string }> = {
 };
 
 const contractList = ref<any>([]);
+const expirationTime = ref<string>("");
 const replaceDialogVisible = ref(false);
 const changeRecordDialogVisible = ref(false);
 const fileList = ref<UploadFile[]>([]);
@@ -203,6 +202,10 @@ const initData = async () => {
   const res: any = await getContractImages(params);
   if (res.code == 200) {
     contractList.value = res.data;
+    // 如果返回的数据中包含到期时间,从第一个合同项中获取
+    if (res.data && res.data.length > 0 && res.data[0]?.expirationTime) {
+      expirationTime.value = res.data[0].expirationTime;
+    }
   }
 };
 
@@ -215,7 +218,7 @@ const handleReplace = async () => {
     id: localGet("createdId")
   };
   const res: any = await getStoreContractStatus(params);
-  if (res.data.renewContractStatus === 2) {
+  if (res.data.renewContractStatus == 2) {
     ElMessage.warning("合同审核中,请耐心等待");
   } else {
     replaceDialogVisible.value = true;
@@ -614,9 +617,9 @@ const getStatusName = (status: number) => {
 }
 .content-section {
   display: flex;
-  gap: 50px;
   align-items: center;
   justify-content: space-between;
+  width: 100%;
   margin-top: 20px;
   margin-bottom: 50px;
 }

+ 6 - 7
src/views/licenseManagement/entertainmentLicense.vue

@@ -1,7 +1,7 @@
 <template>
   <div class="card content-box">
     <div class="content-section">
-      <div class="tip-text">娱乐经营许可证到期时间:{{ entertainmentLicenseExpireTime || "--" }}</div>
+      <div class="tip-text">娱乐经营许可证到期时间:{{ expirationTime || "--" }}</div>
       <div class="action-buttons">
         <el-button type="primary" @click="handleReplace"> 更换 </el-button>
         <el-button type="primary" @click="handleViewChangeRecord"> 查看变更记录 </el-button>
@@ -132,7 +132,7 @@ const statusMap: Record<number, { name: string; class: string }> = {
 };
 
 const id = localGet("createdId");
-const entertainmentLicenseExpireTime = ref<string>("");
+const expirationTime = ref<string>("");
 const licenseImage = ref<string>("");
 const replaceDialogVisible = ref(false);
 const changeRecordDialogVisible = ref(false);
@@ -179,8 +179,8 @@ const initData = async () => {
   };
   const res: any = await getEntertainmentBusinessLicense(params);
   if (res.code == 200) {
-    licenseImage.value = res.data[0].imgUrl;
-    entertainmentLicenseExpireTime.value = res.data[0].expireTime;
+    licenseImage.value = res.data[0]?.imgUrl;
+    expirationTime.value = res.data[0]?.expirationTime;
   }
 };
 
@@ -193,7 +193,7 @@ const handleReplace = async () => {
     id: localGet("createdId")
   };
   const res: any = await getStoreEntertainmentLicenceStatus(params);
-  if (res.data.entertainmentLicenceStatus === 2) {
+  if (res.data.EntertainmentStatus == 2) {
     ElMessage.warning("娱乐经营许可证审核中,请耐心等待");
   } else {
     replaceDialogVisible.value = true;
@@ -600,14 +600,13 @@ const getStatusText = (status: string) => {
 }
 .content-section {
   display: flex;
-  gap: 50px;
   align-items: center;
   justify-content: space-between;
+  width: 100%;
   margin-top: 20px;
   margin-bottom: 50px;
 }
 .tip-text {
-  margin-right: 450px;
   font-size: 18px;
   color: var(--el-text-color-regular);
 }

+ 6 - 6
src/views/licenseManagement/foodBusinessLicense.vue

@@ -1,9 +1,7 @@
 <template>
   <div class="card content-box">
     <div class="content-section">
-      <div class="tip-text">
-        如需变更请在此处上传,重新上传之后需要重新进行审核,审核通过后,新的食品经营许可证将会覆盖之前的食品经营许可证
-      </div>
+      <div class="tip-text">食品经营许可证到期时间:{{ expirationTime || "--" }}</div>
       <div class="action-buttons">
         <el-button type="primary" @click="handleReplace"> 更换 </el-button>
         <el-button type="primary" @click="handleViewChangeRecord"> 查看变更记录 </el-button>
@@ -136,6 +134,7 @@ const statusMap: Record<number, { name: string; class: string }> = {
 const id = localGet("createdId");
 
 const licenseImage = ref<string>("");
+const expirationTime = ref<string>("");
 const replaceDialogVisible = ref(false);
 const changeRecordDialogVisible = ref(false);
 const fileList = ref<UploadFile[]>([]);
@@ -181,7 +180,8 @@ const initData = async () => {
   };
   const res: any = await getFoodBusinessLicense(params);
   if (res.code == 200) {
-    licenseImage.value = res.data[0].imgUrl;
+    licenseImage.value = res.data[0]?.imgUrl;
+    expirationTime.value = res.data[0]?.expirationTime;
   }
 };
 
@@ -194,7 +194,7 @@ const handleReplace = async () => {
     id: localGet("createdId")
   };
   const res: any = await getStoreFoodLicenceStatus(params);
-  if (res.data.foodLicenceStatus === 2) {
+  if (res.data.foodLicenceStatus == 2) {
     ElMessage.warning("食品经营许可证审核中,请耐心等待");
   } else {
     replaceDialogVisible.value = true;
@@ -601,9 +601,9 @@ const getStatusText = (status: string) => {
 }
 .content-section {
   display: flex;
-  gap: 50px;
   align-items: center;
   justify-content: space-between;
+  width: 100%;
   margin-top: 20px;
   margin-bottom: 50px;
 }