Jelajahi Sumber

项目推进

nahida 1 tahun lalu
induk
melakukan
dd1e1ed1ec

+ 1 - 1
.env.development

@@ -1,5 +1,5 @@
 # 变量必须以 VITE_ 为前缀才能暴露给外部读取
 NODE_ENV = 'development'
 VITE_APP_BASE_API = '/api'
-VITE_APP_BASE_URL = 'http://192.168.110.235:20002'
+VITE_APP_BASE_URL = 'http://192.168.110.13:20002'
 VITE_APP_TITLE = '怀化高新区企业信用分级分类网'

+ 5 - 0
components.d.ts

@@ -20,6 +20,8 @@ declare module 'vue' {
     ElOption: typeof import('element-plus/es')['ElOption']
     ElPagination: typeof import('element-plus/es')['ElPagination']
     ElSelect: typeof import('element-plus/es')['ElSelect']
+    ElTable: typeof import('element-plus/es')['ElTable']
+    ElTableColumn: typeof import('element-plus/es')['ElTableColumn']
     ElUpload: typeof import('element-plus/es')['ElUpload']
     FourDynamics: typeof import('./src/components/FourDynamics.vue')['default']
     IconCommunity: typeof import('./src/components/icons/IconCommunity.vue')['default']
@@ -34,4 +36,7 @@ declare module 'vue' {
     RouterView: typeof import('vue-router')['RouterView']
     SmallSearch: typeof import('./src/components/SmallSearch.vue')['default']
   }
+  export interface ComponentCustomProperties {
+    vLoading: typeof import('element-plus/es')['ElLoadingDirective']
+  }
 }

TEMPAT SAMPAH
public/static/img3.png


+ 28 - 0
src/components/base/BaseContainer.vue

@@ -38,6 +38,34 @@ watch(() => props.showData, (newValue) => {
           map.set(dialogMap.get(itemKey),item[itemKey].split('T')[0])
           continue;
         }
+        if(dialogMap.get(itemKey) == '许可决定日期'){
+          map.set(dialogMap.get(itemKey),item[itemKey].split('T')[0])
+          continue;
+        }
+        if(dialogMap.get(itemKey) == '有效起始日期'){
+          map.set(dialogMap.get(itemKey),item[itemKey].split('T')[0])
+          continue;
+        }
+        if(dialogMap.get(itemKey) == '有效截至日期'){
+          map.set(dialogMap.get(itemKey),item[itemKey].split('T')[0])
+          continue;
+        }
+        if(dialogMap.get(itemKey) == '立案时间'){
+          map.set(dialogMap.get(itemKey),item[itemKey].split('T')[0])
+          continue;
+        }
+        if(dialogMap.get(itemKey) == '处罚决定日期'){
+          map.set(dialogMap.get(itemKey),item[itemKey].split('T')[0])
+          continue;
+        }
+        if(dialogMap.get(itemKey) == '处罚有效期'){
+          map.set(dialogMap.get(itemKey),item[itemKey].split('T')[0])
+          continue;
+        }
+        if(dialogMap.get(itemKey) == '法定代表人证件号码'){
+          map.set(dialogMap.get(itemKey),'**************')
+          continue;
+        }
         map.set(dialogMap.get(itemKey),item[itemKey])
       }
       data.value.push(map);

+ 1 - 1
src/router/route.ts

@@ -10,7 +10,7 @@ export const routes: RouteRecordRaw[] = [
     children: [
       { path: '/:pathMatch(.*)*', redirect: '/home' },
       {
-        path: 'home',
+        path: '/home',
         name: 'home',
         component: () => import('@/views/HomeView/index.vue'),
         meta: {

+ 15 - 3
src/views/HomeView/index.vue

@@ -81,7 +81,6 @@ const toCompanyList = (n:number)=>{
       n
     }
   })
-
 }
 const dialogName = ref('')
 const showConpanyDetail = (item:any,method:Function,name:string)=>{
@@ -104,6 +103,10 @@ const complaint = ()=>{
 const leaveMessage = ()=>{
   router.push('/message')
 }
+const toOrtherLink = ()=>{
+  window.open('https://www.creditchina.gov.cn/xyxf/lczy/')
+}
+
 init()
 </script>
 
@@ -137,6 +140,15 @@ init()
           <div class="p-10px pt-20px text-13px line-height-20px pb-30px">你可以通过本平台的网站对失信违约行为予以投诉,您的个人信息将予以严格保密</div>
           <div class="bg-blue text-center text-white w-80% mr-a ml-a line-height-30px h-30px rounded-10px cursor-pointer hover:op-70" @click="complaint">进入</div>
         </div>
+        <div class="absolute right--185px top-277px w-170px h-220px bg-white" >
+          <div class="mt-20px text-#ff0000 text-20px font-bold text-center relative">
+            <div class="w-20px h-20px absolute left-8px top-0px"><img class="w-100% h-100%" src="/static/img3.png" /></div>
+            &nbsp;&nbsp;信用修复服务
+          </div>
+          <div class="bg-#ff0000 h-2px w-90% mr-a ml-a"></div>
+          <div class="p-10px pt-20px text-13px line-height-20px pb-20px">您可以通过本平台的网站进入信用中国网站,请仔细阅读流程指引和修复指南,并严格按要求准备材料。</div>
+          <div class="bg-blue text-center text-white w-80% mr-a ml-a line-height-30px h-30px rounded-10px cursor-pointer hover:op-70" @click="toOrtherLink">进入</div>
+        </div>
         <div class="w-451px h-256px bg-white mb-20px mr-10px">
           <div class="h-4px bg-blue"></div>
           <div class=" flex justify-between">
@@ -164,7 +176,7 @@ init()
           <div class="h-2px bg-blue"></div>
           <div class="p-10px flex justify-between cursor-pointer" v-for="(item,index) in data1" :key="index" @click="showConpanyDetail(item,get1,'行政许可')">
             <div>{{item.administrativePartyName}}</div>
-            <div>{{item.licenseDecisionDate}}</div>
+            <div>{{item.licenseDecisionDate.split("T")[0]}}</div>
           </div>
         </div>
         <div class="w-451px h-256px bg-white mb-20px mr-10px">
@@ -214,7 +226,7 @@ init()
           <div class="w-140px border-solid border-#00306e border-b-5px relative">
             <img class="w-21px h-21px m-3px " src="/src/assets/img/信用小图标.png" />
             <span class="color-#003aac text-16px">园区动态通告</span>
-            <span class="absolute right--775px top-3px cursor-pointer text-#959595" @click="$router.push('/about')">查看更多 ></span>
+            <span class="absolute right--755px top-3px cursor-pointer text-#959595" @click="$router.push('/about')">查看更多 ></span>
           </div>
         </div>
         <div class="w-100% overflow-auto h-500px">

+ 1 - 1
src/views/companyList/index.vue

@@ -97,7 +97,7 @@ init();
 </script>
 
 <template>
-  <div class="conpanyListContainer pt-20px">
+  <div class="conpanyListContainer pt-20px pb-40px">
     <div class="w-912px bg-white mr-a ml-a pt-20px border-solid border-1px border-color-#e6e6e6 rounded-10px">
       <div v-for="(item,index) in currentShowList" :key="index" @click="showConpanyDetail(item)" class="cursor-pointer">
         <div class="text-20px p-20px flex justify-between">

+ 62 - 8
src/views/creditServices/index.vue

@@ -1,8 +1,8 @@
 <script setup lang="ts">
 
 import { ref , reactive} from 'vue'
-import { ElMessage, type FormInstance, type FormProps, type FormRules } from 'element-plus'
-import { delImgById, saveSelfReport } from '@/views/creditServices/type'
+import { ElMessage, type FormInstance, type FormProps, type FormRules, type UploadRawFile } from 'element-plus'
+import { delImgById, getCompanyDetailByUnicode, saveSelfReport } from '@/views/creditServices/type'
 import SmallSearch from '@/components/SmallSearch.vue'
 import NewDynamics from '@/components/NewDynamics.vue'
 import { downloadFile } from '@/utils/request'
@@ -96,24 +96,52 @@ const handleRemove = async (uploadFile:any) => {
 }
 
 const handleFileSuccess = (q:any)=>{
+  isloading.value = false;
+  if(q.code == 500){
+    ElMessage.error('文件大于了30M')
+    return;
+  }
   ElMessage.success('上传成功');
   uploadFilesList.value.push(q.data);
 }
 const fileList = ref([]);
 const canSelfReport = ref<boolean>(true);
 const BASE_URL = import.meta.env.VITE_APP_BASE_URL;
-
+const isloading = ref<boolean>(false)
+const beforeUpload = (q:UploadRawFile)=>{
+  if(q.size > 1024*1024*30){
+    ElMessage.error('文件大于了30M')
+    return false;
+  };
+  isloading.value = true
+}
+const checkInformation = async (unicode:string)=>{
+  const res = await getCompanyDetailByUnicode(unicode);
+  if(res.code == 200){
+    res.data.forEach((q:any)=>{
+      q.createTime = q.createTime.split('T')[0];
+      q.files = q.files.map((w:FileType)=>w.fileOriginalName+"<br>").join("<br>");
+      if(!q.files){
+        q.files = '没有上传文件';
+      }
+    })
+    companyUploadInformationList.value = res.data;
+    dialogVisible.value = true;
+  }
+}
+const dialogVisible = ref(false);
+const companyUploadInformationList = ref<any>([]);
 </script>
 
 <template>
-  <div class="serviceContainer">
+  <div class="serviceContainer" v-loading="isloading">
     <div class="w-912px ml-auto mr-auto pt-20px mb-20px text-14px">
       你所在的位置:<span class="cursor-pointer">首页</span> > <span class="color-#006eff">企业自主上报</span>
     </div>
     <div class="flex justify-between w-912px mr-a ml-a">
       <div class="w-603px pl-24px pr-24px pt-30px text-black bg-white">
         <div>
-          <el-button class="float-right" @click="downloadFile(BASE_URL+'/owSelfReporting/downloadTemplateWord','企业自主上报模版.doc')" type="success">下载上报模版</el-button>
+          <el-button class="float-right" @click="downloadFile(BASE_URL+'/owSelfReporting/downloadTemplateWord','企业自主上报模版.xlsx')" type="success">下载上报模版</el-button>
           <div>企业自主上报信息</div>
           <div>
 <!--            <el-radio-group v-model="labelPosition" aria-label="label position">-->
@@ -143,7 +171,8 @@ const BASE_URL = import.meta.env.VITE_APP_BASE_URL;
                 <el-input v-model="selfReportForm.enterpriseName" />
               </el-form-item>
               <el-form-item label="统一社会信用代码" prop="unifiedSocialCreditCode">
-                <el-input v-model="selfReportForm.unifiedSocialCreditCode" />
+                <el-input v-model="selfReportForm.unifiedSocialCreditCode" style="width: 290px;" />
+                <el-button :disabled="!/^([0-9A-HJ-NPQRTUWXY]{2}\d{6}[0-9A-HJ-NPQRTUWXY]{10}|[1-9]\d{14})$/.test(selfReportForm.unifiedSocialCreditCode)" type="primary" style="margin-left: 10px" @click="checkInformation(selfReportForm.unifiedSocialCreditCode)">查询上报信息</el-button>
               </el-form-item>
               <el-upload
                 ref="uploadRef"
@@ -151,14 +180,21 @@ const BASE_URL = import.meta.env.VITE_APP_BASE_URL;
                 :action="upload.url"
                 :on-remove="handleRemove"
                 :multiple="true"
-                accept=".doc, .docx, .png, .jpg, .pdf"
+                accept=".doc, .docx, .png, .jpg, .pdf, .xls, .xlsx "
                 :on-success="handleFileSuccess"
                 :data="{moduleName:'上报模块'}"
+                :before-upload="beforeUpload"
               >
                 <el-button type="primary">上传附件</el-button>
                 <template #tip>
                   <div class="el-upload__tip">
-                    只能上传doc docx png jpg pdf文件
+                    <span style="color: #fd2626">请同时上传信息盖章扫描件和EXCLE电子档</span>
+                    <br>
+                    <br>
+                    只能上传doc docx png jpg pdf xls xlsx文件
+                    <br>
+                    <br>
+                    且大小控制在30M内
                   </div>
                 </template>
               </el-upload>
@@ -173,6 +209,24 @@ const BASE_URL = import.meta.env.VITE_APP_BASE_URL;
         <NewDynamics />
       </div>
     </div>
+    <el-dialog v-model="dialogVisible" title="企业上报情况" width="500" draggable>
+      <el-table :data="companyUploadInformationList" max-height="300">
+        <el-table-column prop="contacts" label="联系人" />
+        <el-table-column prop="createTime" label="上报时间" width="150" />
+        <el-table-column prop="files" label="上报文件名" width="200">
+          <template #default="scope">
+            <div v-html="scope.row.files"></div>
+          </template>
+        </el-table-column>
+      </el-table>
+      <template #footer>
+        <div class="dialog-footer">
+          <el-button type="primary" @click="dialogVisible = false">
+            了解
+          </el-button>
+        </div>
+      </template>
+    </el-dialog>
   </div>
 </template>
 

+ 9 - 0
src/views/creditServices/type/index.ts

@@ -35,4 +35,13 @@ export const delImgById = (id:number) => {
       id
     }
   });
+}
+
+//根据unicode查询企业明细
+export const getCompanyDetailByUnicode = (unicode:string)=>{
+  return request.get<any,any>('/owSelfReporting/checkInformationByUnicode',{
+    params:{
+      unicode
+    }
+  });
 }

+ 1 - 1
src/views/message/type/index.ts

@@ -21,7 +21,7 @@ export const saveMessage = (data:messageData)=> {
   })
 }
 //拿到字典信息
-export const getDict = (dick) => {
+export const getDict = (dick:string) => {
   return request.get('/system/dict/data/type/'+dick,{
     params:{
       dick

+ 2 - 1
src/views/newsDetail/index.vue

@@ -20,6 +20,7 @@ const getData = async ()=>{
     if(position != -1){
       res.data.content = replacePlaceholders(res.data.content, imgTemplateArr)
     }
+    res.data.files = res.data.files.filter(item=>!(item.fileOriginalName.endsWith('.jpg') || item.fileOriginalName.endsWith('.png')))
     newsData.value = res.data;
   }
 }
@@ -55,7 +56,7 @@ getData()
     </div>
     <div class="custom-font w-912px ml-a mr-a text-18px mt-10px mb-50px line-height-34px " v-html="newsData?.content"></div>
     <div class="w-912px ml-a mr-a text-14px mt-10px" v-if="newsData?.files.length">
-      <div>附件下载</div>
+      <div v-if="newsData?.files.length>0">附件下载</div>
       <div v-for="(item,index) in newsData?.files" :key="index" class="line-height-40px">
         <!--      <a :href="`${BASE_URL}${item.fileUrl}`" :download="item.fileOriginalName">{{ item.fileOriginalName }}</a>-->
         <div >

+ 1 - 1
vite.config.ts

@@ -31,7 +31,7 @@ export default defineConfig({
   server:{
     proxy:{
       '/api':{
-        target:'http://192.168.110.235:20002',
+        target:'http://192.168.110.13:20002',
         changeOrigin:true,
         rewrite:path=>path.replace(/^\/api/,'')
       }

File diff ditekan karena terlalu besar
+ 0 - 42
vite.config.ts.timestamp-1719194089327-c0a87f2c9dee3.mjs


File diff ditekan karena terlalu besar
+ 0 - 42
vite.config.ts.timestamp-1719292139679-76c7244f4266c.mjs


File diff ditekan karena terlalu besar
+ 0 - 42
vite.config.ts.timestamp-1719454476541-c25d3d094e865.mjs


Beberapa file tidak ditampilkan karena terlalu banyak file yang berubah dalam diff ini