bugfix
This commit is contained in:
parent
54c953d41f
commit
79d1f8ab35
@ -144,3 +144,42 @@ export function reqEnterpriseAuditInfoSearch(data){
|
||||
})
|
||||
}
|
||||
|
||||
//咨询表单 /product/search_user_inquiry.dspy
|
||||
export function reqSearchUserInquiry(data){
|
||||
return request({
|
||||
url: '/product/search_user_inquiry.dspy',
|
||||
method: 'post',
|
||||
headers: { 'Content-Type': 'application/json' },
|
||||
data
|
||||
})
|
||||
}
|
||||
//审核状态查询 /user/enterprise_audit_info_search.dspy
|
||||
export function reqApproveUserSearch(data){
|
||||
return request({
|
||||
url: '/user/enterprise_audit_info_search.dspy',
|
||||
method: 'post',
|
||||
headers: { 'Content-Type': 'application/json' },
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
//政企审核 更新 /user/enterprise_audit_info_update.dspy
|
||||
|
||||
export function reqEnterpriseUpdate(data){
|
||||
return request({
|
||||
url: '/user/enterprise_audit_info_update.dspy',
|
||||
method: 'post',
|
||||
headers: { 'Content-Type': 'application/json' },
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
//首页类别查询 /product/homepage_product_category.dspy
|
||||
export function reqHomepageProductCategory(data){
|
||||
return request({
|
||||
url: '/product/homepage_product_category.dspy',
|
||||
method: 'post',
|
||||
headers: { 'Content-Type': 'application/json' },
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
@ -345,6 +345,20 @@ export const asyncRoutes = [
|
||||
|
||||
}]
|
||||
},
|
||||
{
|
||||
path: "/consultingMangement",
|
||||
name: 'ConsultingMangement',
|
||||
component: Layout,
|
||||
meta: { title: "咨询表单", fullPath: "/consultingMangement", noCache: true,icon: "el-icon-s-platform" },
|
||||
children: [
|
||||
{
|
||||
path: "index",
|
||||
component: () => import('@/views/operation/consultingMangement/index.vue'),
|
||||
name: 'ConsultingMangement',
|
||||
meta: { title: "咨询表单", fullPath: "/consultingMangement/index", noCache: true,icon: "el-icon-s-platform" },
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
path: "/product",
|
||||
name: 'product',
|
||||
@ -855,13 +869,34 @@ export const asyncRoutes = [
|
||||
meta: { title: "产品最新页", fullPath: "/product/productHome/productIndex", noCache: true },
|
||||
},],
|
||||
},
|
||||
{
|
||||
path: "/qualificationReview",
|
||||
component:Layout,
|
||||
name: "qualificationReview",
|
||||
redirect: "/qualificationReview/index",
|
||||
meta: { fullPath: "/qualificationReview", title: "资质审核", noCache: true, icon: 'el-icon-s-home' },
|
||||
children: [
|
||||
{
|
||||
path: "noApproveInfo",
|
||||
component: () => import("@/views/customer/qualificationReview/noApproveInfo/index.vue"),
|
||||
name: "noApproveInfo",
|
||||
meta: { title: "待审清单", fullPath: "/qualificationReview/index" },
|
||||
},
|
||||
{
|
||||
path: "rejectInfo",
|
||||
component: () => import("@/views/customer/qualificationReview/apprvedInfo/index.vue"),
|
||||
name: "rejectInfo",
|
||||
meta: { title: "已审清单", fullPath: "/qualificationReview/approvedInfo" },
|
||||
},
|
||||
|
||||
]
|
||||
},
|
||||
{
|
||||
path: "/approveMangement",
|
||||
component:Layout,
|
||||
name: "approveMangement",
|
||||
redirect: "/approveMangement/index",
|
||||
meta: { fullPath: "/approveMangement", title: "审核管理", noCache: true, icon: 'el-icon-s-home' },
|
||||
meta: { fullPath: "/approveMangement", title: "供需审核", noCache: true, icon: 'el-icon-s-home' },
|
||||
children: [
|
||||
{
|
||||
path: "pendingPro",
|
||||
|
||||
BIN
f/web-kboss/src/views/customer/ncApprove/img/app.png
Normal file
BIN
f/web-kboss/src/views/customer/ncApprove/img/app.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 3.9 KiB |
1
f/web-kboss/src/views/customer/ncApprove/img/app.svg
Normal file
1
f/web-kboss/src/views/customer/ncApprove/img/app.svg
Normal file
@ -0,0 +1 @@
|
||||
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1755568430743" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="1525" xmlns:xlink="http://www.w3.org/1999/xlink" width="14" height="14"><path d="M782.848 728.576m-185.856 0a185.856 185.856 0 1 0 371.712 0 185.856 185.856 0 1 0-371.712 0Z" fill="#FFE200" p-id="1526"></path><path d="M194.56 166.4H128c-16.896 0-30.72-13.824-30.72-30.72s13.824-30.72 30.72-30.72h66.56c16.896 0 30.72 13.824 30.72 30.72s-13.824 30.72-30.72 30.72z" fill="#FFE200" p-id="1527"></path><path d="M525.824 337.92l-45.568 12.288c3.584 8.192 7.68 17.92 11.264 27.136H354.816v69.12h43.52v-27.136h224.768v27.136h46.08V377.344h-124.928c-4.096-10.752-11.776-27.136-18.432-39.424z m8.704 90.624h-45.568v30.72h-112.64v183.296h42.496v-16.896h70.144V686.08h45.568v-59.904h69.12v15.36h44.544V459.776h-113.664v-31.232z m0 95.744v-27.136h69.12v27.136h-69.12z m-115.712 0v-27.136h70.144v27.136H418.816z m115.712 63.488v-27.136h69.12v27.136h-69.12z m-115.712 0v-27.136h70.144v27.136H418.816zM301.056 856.576c-5.632 0-11.264-1.536-16.896-5.12-10.752-7.168-21.504-14.336-31.232-22.528-16.384-12.8-31.744-27.136-46.08-42.496-11.776-12.288-10.752-31.744 1.536-43.52s31.744-10.752 43.52 1.536c12.288 12.8 25.088 25.088 39.424 35.84 8.704 6.656 17.408 13.312 26.624 18.944 14.336 9.216 18.432 28.16 9.216 42.496-6.144 9.728-15.872 14.848-26.112 14.848zM507.904 917.504c-30.72 0-61.44-3.584-91.648-10.24-15.36-3.584-30.72-7.68-45.056-13.312-15.872-5.632-24.576-23.04-18.944-39.424 5.632-15.872 23.04-24.576 39.424-18.944 12.8 4.608 25.6 8.192 38.4 11.264 25.6 5.632 51.712 8.704 77.824 8.704 16.896 0 30.72 13.824 30.72 30.72s-13.824 31.232-30.72 31.232zM596.992 907.264c-13.824 0-26.624-9.728-29.696-23.552-4.096-16.384 6.144-33.28 22.528-36.864 20.48-4.608 39.936-11.776 59.392-19.968 45.568-19.968 87.04-50.176 120.32-87.552 57.344-64 88.576-146.944 88.576-232.96 0-51.2-10.752-100.864-32.256-146.944-7.168-15.36-0.512-33.792 14.848-40.96 15.36-7.168 33.792-0.512 40.96 14.848 25.088 54.272 37.888 112.64 37.888 173.056 0 101.376-36.864 198.656-104.448 273.92-38.912 43.52-88.064 79.36-141.312 102.912-22.528 9.728-46.08 17.92-69.632 23.552-2.56 0-4.608 0.512-7.168 0.512z" fill="#4E63DD" p-id="1528"></path><path d="M164.352 700.928c-11.264 0-22.528-6.656-27.648-17.408-26.624-55.808-39.936-115.2-39.936-177.152 0-67.072 16.384-133.632 47.616-192 43.008-81.408 113.152-146.944 197.632-184.32C394.24 107.008 450.56 95.232 508.416 95.232c79.872 0 156.672 23.04 223.232 66.048 32.256 20.992 61.44 46.08 87.04 75.264 11.264 12.8 9.728 32.256-3.072 43.52s-32.256 9.728-43.52-3.072c-21.504-24.576-46.592-46.592-74.24-64-56.832-36.864-122.368-55.808-189.952-55.808-49.152 0-96.768 10.24-141.312 29.696-71.68 31.744-131.584 87.552-168.448 156.672-26.624 50.176-40.448 106.496-40.448 163.328 0 52.736 11.264 103.424 33.792 150.528 7.168 15.36 1.024 33.792-14.336 40.96-4.096 1.536-8.192 2.56-12.8 2.56z" fill="#4E63DD" p-id="1529"></path></svg>
|
||||
|
After Width: | Height: | Size: 3.0 KiB |
1
f/web-kboss/src/views/customer/ncApprove/img/apped.svg
Normal file
1
f/web-kboss/src/views/customer/ncApprove/img/apped.svg
Normal file
File diff suppressed because one or more lines are too long
|
After Width: | Height: | Size: 8.7 KiB |
1
f/web-kboss/src/views/customer/ncApprove/img/apping.svg
Normal file
1
f/web-kboss/src/views/customer/ncApprove/img/apping.svg
Normal file
File diff suppressed because one or more lines are too long
|
After Width: | Height: | Size: 7.4 KiB |
1
f/web-kboss/src/views/customer/ncApprove/img/noapp.svg
Normal file
1
f/web-kboss/src/views/customer/ncApprove/img/noapp.svg
Normal file
File diff suppressed because one or more lines are too long
|
After Width: | Height: | Size: 7.7 KiB |
@ -1,6 +1,6 @@
|
||||
<template>
|
||||
<div class="nc-approve-container">
|
||||
<el-card class="approve-card">
|
||||
<div v-loading="loading" element-loading-text="信息加载中..." class="nc-approve-container">
|
||||
<el-card v-if="showType === 'add'" class="approve-card">
|
||||
<div slot="header" class="card-header">
|
||||
<span class="header-title">
|
||||
<i class="el-icon-document"></i>
|
||||
@ -47,15 +47,7 @@
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<!-- <el-col :span="12">
|
||||
<el-form-item label="审核状态" prop="audit_status">
|
||||
<el-tag
|
||||
:type="getStatusType(approveForm.audit_status)"
|
||||
size="medium">
|
||||
{{ getStatusText(approveForm.audit_status) }}
|
||||
</el-tag>
|
||||
</el-form-item>
|
||||
</el-col> -->
|
||||
|
||||
</el-row>
|
||||
|
||||
<el-row :gutter="20">
|
||||
@ -120,15 +112,9 @@
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="12">
|
||||
<el-form-item label="营业执照正本" prop="license_original_img">
|
||||
<el-upload
|
||||
class="license-uploader"
|
||||
action="#"
|
||||
:http-request="handleLicenseUpload"
|
||||
:show-file-list="false"
|
||||
:before-upload="beforeLicenseUpload"
|
||||
accept="image/*">
|
||||
<img v-if="approveForm.license_original_img"
|
||||
:src="approveForm.license_original_img"
|
||||
<el-upload class="license-uploader" action="#" :http-request="handleLicenseUpload"
|
||||
:show-file-list="false" :before-upload="beforeLicenseUpload" accept="image/*">
|
||||
<img v-if="approveForm.license_original_img" :src="approveForm.license_original_img"
|
||||
class="license-image">
|
||||
<i v-else class="el-icon-plus license-uploader-icon"></i>
|
||||
</el-upload>
|
||||
@ -138,17 +124,11 @@
|
||||
</div>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<!-- <el-col :span="12">
|
||||
<el-form-item label="营业执照副本" prop="license_copy_img">
|
||||
<el-upload
|
||||
class="license-uploader"
|
||||
action="#"
|
||||
:http-request="handleLicenseCopyUpload"
|
||||
:show-file-list="false"
|
||||
:before-upload="beforeLicenseUpload"
|
||||
accept="image/*">
|
||||
<img v-if="approveForm.license_copy_img"
|
||||
:src="approveForm.license_copy_img"
|
||||
<el-upload class="license-uploader" action="#" :http-request="handleLicenseCopyUpload"
|
||||
:show-file-list="false" :before-upload="beforeLicenseUpload" accept="image/*">
|
||||
<img v-if="approveForm.license_copy_img" :src="approveForm.license_copy_img"
|
||||
class="license-image">
|
||||
<i v-else class="el-icon-plus license-uploader-icon"></i>
|
||||
</el-upload>
|
||||
@ -157,7 +137,7 @@
|
||||
支持 JPG、PNG、GIF 格式,文件大小不超过 5MB
|
||||
</div>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-col> -->
|
||||
</el-row>
|
||||
|
||||
<!-- 操作按钮 -->
|
||||
@ -178,9 +158,40 @@
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</el-card>
|
||||
<el-card v-if="showType === 'pending'" class="approve-card myStyle">
|
||||
<div class="myStyle-content colStyle">
|
||||
|
||||
<span class="appTitle"> <img style="width: 50px;height: 50px;margin-right: 10px;" src="./img/apping.svg"
|
||||
alt=""> 信息审核中</span>
|
||||
<span class="tip">提交时间:{{ currentInfo.create_at }}</span>
|
||||
</div>
|
||||
</el-card>
|
||||
<el-card v-if="showType === 'rejected'" class="approve-card myStyle">
|
||||
<div class="myStyle-content colStyle">
|
||||
|
||||
<span class="appTitle noapp"> <img style="width: 50px;height: 50px;margin-right: 10px;"
|
||||
src="./img/noapp.svg" alt=""> 信息不通过</span>
|
||||
<span class="noTip">驳回原因:{{ currentInfo.reject_reason }} <span class="reapp"
|
||||
@click="reApprove">重新提交</span></span>
|
||||
|
||||
</div>
|
||||
</el-card>
|
||||
<el-card v-if="showType === 'approved'" class="approve-card myStyle">
|
||||
<div class="myStyle-content colStyle appredStyle">
|
||||
|
||||
<div class="appredStyle-content">
|
||||
<span class="smallTitle"> 大陆资源审核通过</span>
|
||||
<img src="./img/app.png" alt="">
|
||||
</div>
|
||||
<div class="appredStyle-content">
|
||||
<span class="tip" style="color: #67c23a;">审核状态:已通过</span>
|
||||
<span class="tip">审核时间:{{ currentInfo.update_time }}</span>
|
||||
</div>
|
||||
</div>
|
||||
</el-card>
|
||||
<!-- 预览对话框 -->
|
||||
<el-dialog title="审批信息预览" :visible.sync="previewVisible" top="3vh" width="60%" :before-close="handlePreviewClose">
|
||||
<el-dialog title="审批信息预览" :visible.sync="previewVisible" top="3vh" width="60%"
|
||||
:before-close="handlePreviewClose">
|
||||
<div class="preview-content">
|
||||
<el-descriptions :column="2" border>
|
||||
<el-descriptions-item label="账号类型">
|
||||
@ -192,11 +203,6 @@
|
||||
<el-descriptions-item label="执照号码">
|
||||
{{ approveForm.license_number }}
|
||||
</el-descriptions-item>
|
||||
<!-- <el-descriptions-item label="审核状态1">
|
||||
<el-tag :type="getStatusType(approveForm.audit_status)">
|
||||
{{ getStatusText(approveForm.audit_status) }}
|
||||
</el-tag>
|
||||
</el-descriptions-item> -->
|
||||
<el-descriptions-item label="办公地址">
|
||||
{{ approveForm.office_address }}
|
||||
</el-descriptions-item>
|
||||
@ -219,10 +225,10 @@
|
||||
<h4>营业执照正本</h4>
|
||||
<img :src="approveForm.license_original_img" alt="营业执照正本" class="preview-license-img">
|
||||
</div>
|
||||
<div class="preview-image" v-if="approveForm.license_copy_img">
|
||||
<!-- <div class="preview-image" v-if="approveForm.license_copy_img">
|
||||
<h4>营业执照副本</h4>
|
||||
<img :src="approveForm.license_copy_img" alt="营业执照副本" class="preview-license-img">
|
||||
</div>
|
||||
</div> -->
|
||||
</div>
|
||||
</div>
|
||||
<span slot="footer" class="dialog-footer">
|
||||
@ -233,11 +239,14 @@
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
import {reqApproveUser } from '@/api/ncmatch/index'
|
||||
import { reqApproveUser, reqApproveUserSearch } from '@/api/ncmatch/index'
|
||||
export default {
|
||||
name: "ncApprove",
|
||||
data() {
|
||||
return {
|
||||
loading: true,
|
||||
showType: '',//add 新增 pending 审核中 rejected 审核不通过 approved 审核通过
|
||||
currentInfo: {},
|
||||
approveForm: {
|
||||
account_type: "", // 账号类型
|
||||
company_name: '', // 公司名称
|
||||
@ -289,19 +298,6 @@ export default {
|
||||
trigger: 'change'
|
||||
}
|
||||
],
|
||||
license_copy_img: [
|
||||
{
|
||||
required: true,
|
||||
validator: (rule, value, callback) => {
|
||||
if (!this.approveForm.license_copy_file) {
|
||||
callback(new Error('请上传营业执照副本'));
|
||||
} else {
|
||||
callback();
|
||||
}
|
||||
},
|
||||
trigger: 'change'
|
||||
}
|
||||
]
|
||||
},
|
||||
submitLoading: false,
|
||||
previewVisible: false
|
||||
@ -315,11 +311,41 @@ export default {
|
||||
this.approveForm.contact_name &&
|
||||
this.approveForm.mobile_phone &&
|
||||
this.approveForm.email &&
|
||||
this.approveForm.license_original_file &&
|
||||
this.approveForm.license_copy_file;
|
||||
this.approveForm.license_original_file;
|
||||
}
|
||||
},
|
||||
created() {
|
||||
this.getApproveInfo()
|
||||
},
|
||||
methods: {
|
||||
reApprove(){
|
||||
this.showType = 'add'
|
||||
this.approveForm = this.currentInfo
|
||||
|
||||
},
|
||||
getApproveInfo() {
|
||||
reqApproveUserSearch({ url_link: window.location.href }).then(res => {
|
||||
this.loading = false
|
||||
if(res.data.data.length===0){
|
||||
this.showType='add'
|
||||
}else if(res.data.data[0].audit_status==='pending'){
|
||||
this.currentInfo=res.data.data[0]
|
||||
this.showType='pending'
|
||||
}else if(res.data.data[0].audit_status==='rejected'){
|
||||
this.currentInfo=res.data.data[0]
|
||||
this.showType='rejected'
|
||||
}else if(res.data.data[0].audit_status==='approved'){
|
||||
this.currentInfo=res.data.data[0]
|
||||
this.showType='approved'
|
||||
}
|
||||
}).catch(error => {
|
||||
this.loading = false
|
||||
console.error('获取审批信息失败:', error)
|
||||
this.$message.error('获取审批信息失败,请刷新页面重试')
|
||||
// 如果获取失败,默认显示新增表单
|
||||
this.showType = 'add'
|
||||
})
|
||||
},
|
||||
// 获取账号类型文本
|
||||
getAccountTypeText(type) {
|
||||
const typeMap = {
|
||||
@ -424,15 +450,12 @@ export default {
|
||||
formData.append('license_original_img', this.approveForm.license_original_file);
|
||||
}
|
||||
|
||||
if (this.approveForm.license_copy_file) {
|
||||
formData.append('license_copy_img', this.approveForm.license_copy_file);
|
||||
}
|
||||
|
||||
reqApproveUser(formData).then(res => {
|
||||
this.submitLoading = false;
|
||||
if (res.status) {
|
||||
this.$message.success('审批信息提交成功!');
|
||||
this.approveForm.audit_status = 'processing';
|
||||
this.approveForm.audit_status = 'pending';
|
||||
this.getApproveInfo()
|
||||
} else {
|
||||
this.$message.error(res.message || '提交失败,请重试');
|
||||
}
|
||||
@ -451,9 +474,7 @@ export default {
|
||||
handleReset() {
|
||||
this.$refs.approveForm.resetFields();
|
||||
this.approveForm.license_original_img = '';
|
||||
this.approveForm.license_copy_img = '';
|
||||
this.approveForm.license_original_file = null;
|
||||
this.approveForm.license_copy_file = null;
|
||||
this.approveForm.audit_status = 'pending';
|
||||
this.$message.info('表单已重置');
|
||||
},
|
||||
@ -487,9 +508,30 @@ export default {
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.appredStyle{
|
||||
border: 1px solid #f2f2fb;
|
||||
width: 500px;
|
||||
height: 220px;
|
||||
display: flex;
|
||||
flex-direction: row!important;
|
||||
align-items: center;
|
||||
justify-content: space-around!important;
|
||||
.appredStyle-content{
|
||||
// border: 5px solid red;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: flex-start!important;
|
||||
justify-content:center;
|
||||
}
|
||||
}
|
||||
.nc-approve-container {
|
||||
min-height: 100vh;
|
||||
box-sizing: border-box;
|
||||
height: calc(100vh - 60px);
|
||||
position: relative;
|
||||
display: flex;
|
||||
width: 100%;
|
||||
justify-content: center;
|
||||
align-items: flex-start;
|
||||
|
||||
&::before {
|
||||
content: '';
|
||||
@ -504,7 +546,7 @@ export default {
|
||||
}
|
||||
|
||||
.approve-card {
|
||||
|
||||
width: 100%;
|
||||
// max-width: 1200px;
|
||||
margin: 0 45px;
|
||||
background: rgba(255, 255, 255, 0.95);
|
||||
@ -630,7 +672,7 @@ export default {
|
||||
cursor: pointer;
|
||||
position: relative;
|
||||
overflow: hidden;
|
||||
width:150px;
|
||||
width: 150px;
|
||||
height: 150px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
@ -942,4 +984,63 @@ export default {
|
||||
background: linear-gradient(135deg, #5a6fd8, #6a4190);
|
||||
}
|
||||
}
|
||||
|
||||
.myStyle {
|
||||
box-sizing: border-box;
|
||||
width: 100%;
|
||||
height: calc(100vh - 100px);
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
font-size: 20px;
|
||||
font-weight: bold;
|
||||
color: #667eea;
|
||||
|
||||
}
|
||||
|
||||
.colStyle {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
|
||||
}
|
||||
|
||||
.appTitle {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
.tip {
|
||||
font-size: 12px;
|
||||
font-weight: 400;
|
||||
color: #667eea;
|
||||
margin-top: 10px;
|
||||
}
|
||||
|
||||
.noTip {
|
||||
font-size: 12px;
|
||||
font-weight: 400;
|
||||
color: #f56c6c;
|
||||
margin-top: 10px;
|
||||
}
|
||||
|
||||
.noapp {
|
||||
color: #f56c6c;
|
||||
}
|
||||
|
||||
.reapp {
|
||||
font-size: 12px;
|
||||
font-weight: 400;
|
||||
color: #667eea;
|
||||
margin-top: 10px;
|
||||
cursor: pointer !important;
|
||||
}
|
||||
.smallTitle{
|
||||
font-size: 14px;
|
||||
font-weight: 600;
|
||||
color: #83858a;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
</style>
|
||||
|
||||
@ -32,9 +32,9 @@
|
||||
<i class="el-icon-plus"></i> 添加{{ searchData.radioType === '1' || searchData.radioType === '3' ?
|
||||
'需求' : '商品' }}
|
||||
</el-button> -->
|
||||
<!-- <el-button style="margin-left: 10px;" size="mini" @click="exportAllData">
|
||||
<el-button style="margin-left: 10px;" size="mini" @click="getTableData('1')">
|
||||
<i class="el-icon-upload2"></i> 全部导出
|
||||
</el-button> -->
|
||||
</el-button>
|
||||
</div>
|
||||
<el-table size="mini" border height="calc(100vh - 210px)" v-loading="loading" :data="tableData"
|
||||
style="width: 100%;border:1px solid #ccc;" element-loading-text="加载中..."
|
||||
@ -336,8 +336,8 @@ export default {
|
||||
},
|
||||
exportData(row) {
|
||||
let ploay = {
|
||||
// ids: [row.id]
|
||||
ids:["fYHuG9eXwLi7949Rg9mRg", "vTv8KuqfDhT1efC8prs9y"]
|
||||
ids: [row.id]
|
||||
// ids:["fYHuG9eXwLi7949Rg9mRg", "vTv8KuqfDhT1efC8prs9y"]
|
||||
}
|
||||
reqExportProduct(ploay).then(res => {
|
||||
console.log(res);
|
||||
@ -388,7 +388,7 @@ export default {
|
||||
this.closeEditDialog();
|
||||
this.getTableData(); // 刷新列表
|
||||
},
|
||||
getTableData() {
|
||||
getTableData(to_excel) {
|
||||
// 处理日期范围
|
||||
if (this.searchDate && this.searchDate.length === 2) {
|
||||
this.searchData.start_date = this.searchDate[0];
|
||||
@ -401,6 +401,25 @@ export default {
|
||||
console.log("searchData", this.searchData);
|
||||
|
||||
this.loading = true;
|
||||
if(to_excel==='1'){
|
||||
this.searchData.to_excel=to_excel
|
||||
reqSearchByMangement({url_link:window.location.href,to_excel:to_excel,publish_type:this.searchData.publish_type}).then(res => {
|
||||
console.log(res);
|
||||
if (res.status) {
|
||||
// 创建一个Workbook对象
|
||||
const wb = XLSX.utils.book_new();
|
||||
// 创建第一个sheet
|
||||
const ws1 = XLSX.utils.json_to_sheet(res.data);
|
||||
XLSX.utils.book_append_sheet(wb, ws1, 'sheet1');
|
||||
// 导出Excel文件
|
||||
XLSX.writeFile(wb, '产品列表.xlsx');
|
||||
}
|
||||
}).catch(error => {
|
||||
console.error('获取数据失败:', error);
|
||||
}).finally(() => {
|
||||
this.loading = false;
|
||||
})
|
||||
}else{
|
||||
reqSearchByMangement(this.searchData).then(res => {
|
||||
console.log(res);
|
||||
if (res.status) {
|
||||
@ -412,6 +431,8 @@ export default {
|
||||
}).finally(() => {
|
||||
this.loading = false;
|
||||
})
|
||||
}
|
||||
|
||||
},
|
||||
//分页器
|
||||
handleSizeChange(val) {
|
||||
|
||||
@ -0,0 +1,28 @@
|
||||
<template>
|
||||
<div>
|
||||
|
||||
<qualificationBox :approveInfo="approveInfo"></qualificationBox>
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
import qualificationBox from '../qualificationBox/index.vue';
|
||||
export default {
|
||||
name: 'apprvedInfo',
|
||||
components: {
|
||||
qualificationBox
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
approveInfo:{
|
||||
audit_status:"approved,rejected",
|
||||
}
|
||||
}
|
||||
},
|
||||
created(){
|
||||
this.initData()
|
||||
},
|
||||
}
|
||||
</script>
|
||||
<style scoped>
|
||||
|
||||
</style>
|
||||
13
f/web-kboss/src/views/customer/qualificationReview/index.vue
Normal file
13
f/web-kboss/src/views/customer/qualificationReview/index.vue
Normal file
@ -0,0 +1,13 @@
|
||||
<template>
|
||||
<div>
|
||||
<router-view></router-view>
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
export default {
|
||||
name: 'qualificationReview',
|
||||
}
|
||||
</script>
|
||||
<style scoped>
|
||||
|
||||
</style>
|
||||
@ -0,0 +1,28 @@
|
||||
<template>
|
||||
<div>
|
||||
|
||||
<qualificationBox :approveInfo="approveInfo"></qualificationBox>
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
import qualificationBox from '../qualificationBox/index.vue';
|
||||
export default {
|
||||
name: 'noApproveInfo',
|
||||
components: {
|
||||
qualificationBox
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
approveInfo:{
|
||||
audit_status:"pending",
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
},
|
||||
created() {
|
||||
|
||||
},
|
||||
}
|
||||
|
||||
</script>
|
||||
@ -0,0 +1,379 @@
|
||||
<template>
|
||||
<div>
|
||||
<el-table
|
||||
:data="tableData"
|
||||
style="width: 100%">
|
||||
<el-table-column
|
||||
prop="date"
|
||||
label="图片"
|
||||
width="180">
|
||||
<template slot-scope="scope">
|
||||
<el-image v-if="scope.row.license_original_img" :src="scope.row.license_original_img "
|
||||
style="width: 80px; height: 60px;border: 1px solid #ccc;border-radius: 6px;"
|
||||
:preview-src-list="[scope.row.license_original_img]"
|
||||
fit="cover" :initial-index="0" preview-teleported :z-index="3000">
|
||||
</el-image>
|
||||
<span v-else>/</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="contact_name"
|
||||
label="联系人"
|
||||
min-width="180">
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="mobile_phone"
|
||||
label="联系电话"
|
||||
min-width="180">
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="email"
|
||||
label="邮箱"
|
||||
min-width="180">
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="telephone"
|
||||
label="公共电话"
|
||||
min-width="180">
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="audit_status"
|
||||
label="审核状态"
|
||||
min-width="180">
|
||||
<template slot-scope="scope">
|
||||
<el-tag :type="getStatusType(scope.row.audit_status)">
|
||||
{{ getStatusText(scope.row.audit_status) }}
|
||||
</el-tag>
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
|
||||
<el-table-column
|
||||
prop="address"
|
||||
label="操作"
|
||||
fixed="right"
|
||||
width="180">
|
||||
<template slot-scope="scope">
|
||||
<el-button type="text" @click="handleAudit(scope.row)" size="small">审核</el-button>
|
||||
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
|
||||
<!-- 预览对话框 -->
|
||||
<el-dialog title="审批信息预览" :visible.sync="previewVisible" top="3vh" width="60%"
|
||||
:before-close="handlePreviewClose">
|
||||
<div class="preview-content">
|
||||
<el-descriptions :column="2" border>
|
||||
<el-descriptions-item label="账号类型">
|
||||
{{ getAccountTypeText(approveForm.account_type) }}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="公司名称">
|
||||
{{ approveForm.company_name }}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="执照号码">
|
||||
{{ approveForm.license_number }}
|
||||
</el-descriptions-item>
|
||||
<!-- <el-descriptions-item label="审核状态1">
|
||||
<el-tag :type="getStatusType(approveForm.audit_status)">
|
||||
{{ getStatusText(approveForm.audit_status) }}
|
||||
</el-tag>
|
||||
</el-descriptions-item> -->
|
||||
<el-descriptions-item label="办公地址">
|
||||
{{ approveForm.office_address }}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="注册地址">
|
||||
{{ approveForm.registered_address }}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="联系人">
|
||||
{{ approveForm.contact_name }}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="联系电话">
|
||||
{{ approveForm.mobile_phone }}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="邮箱地址">
|
||||
{{ approveForm.email }}
|
||||
</el-descriptions-item>
|
||||
</el-descriptions>
|
||||
|
||||
<div class="preview-images">
|
||||
<div class="preview-image" >
|
||||
<h4>营业执照正本</h4>
|
||||
<el-image :src="approveForm.license_original_img "
|
||||
class="preview-license-img"
|
||||
|
||||
:preview-src-list="[approveForm.license_original_img]"
|
||||
fit="cover" :initial-index="0" preview-teleported :z-index="3000">
|
||||
</el-image>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<span slot="footer" class="dialog-footer">
|
||||
<el-button size="mini" @click="previewVisible = false">关 闭</el-button>
|
||||
<el-button size="mini" type="danger" @click="handleReject">审核不通过</el-button>
|
||||
<el-button size="mini" type="success" @click="handleApprove">审核通过</el-button>
|
||||
|
||||
|
||||
</span>
|
||||
</el-dialog>
|
||||
|
||||
<!-- 驳回理由输入弹窗 -->
|
||||
<el-dialog title="审核退回" :visible.sync="rejectDialogVisible" width="40%" @close="handleRejectDialogClose">
|
||||
<el-form :model="rejectForm" :rules="rejectRules" ref="rejectForm">
|
||||
<el-form-item label="驳回原因" prop="reject_reason" :label-width="formLabelWidth">
|
||||
<el-input
|
||||
v-model="rejectForm.reject_reason"
|
||||
type="textarea"
|
||||
:rows="4"
|
||||
placeholder="请输入驳回原因"
|
||||
maxlength="500"
|
||||
show-word-limit>
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<div slot="footer" class="dialog-footer">
|
||||
<el-button @click="rejectDialogVisible = false">取 消</el-button>
|
||||
<el-button type="primary" @click="confirmReject" :loading="rejectLoading">确 定</el-button>
|
||||
</div>
|
||||
</el-dialog>
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
import { reqEnterpriseUpdate,reqApproveUserSearch } from '@/api/ncmatch';
|
||||
export default {
|
||||
name: 'qualificationBox',
|
||||
data() {
|
||||
return {
|
||||
current_page:1,
|
||||
page_size:10,
|
||||
total:0,
|
||||
approveForm:{},
|
||||
previewVisible: false,
|
||||
rejectDialogVisible: false,
|
||||
rejectLoading: false,
|
||||
formLabelWidth: '120px',
|
||||
rejectForm: {
|
||||
reject_reason: ''
|
||||
},
|
||||
rejectRules: {
|
||||
reject_reason: [
|
||||
{ required: true, message: '请输入驳回原因', trigger: 'blur' },
|
||||
{ min: 5, max: 500, message: '驳回原因长度在 5 到 500 个字符', trigger: 'blur' }
|
||||
]
|
||||
},
|
||||
tableData: []
|
||||
}
|
||||
},
|
||||
props:{
|
||||
approveInfo:{
|
||||
type:Object,
|
||||
default:()=>{}
|
||||
}
|
||||
},
|
||||
created(){
|
||||
this.initData()
|
||||
},
|
||||
methods: {
|
||||
initData(){
|
||||
let ploay = {
|
||||
current_page:this.current_page,
|
||||
page_size:this.page_size,
|
||||
audit_status:this.approveInfo.audit_status,
|
||||
url_link:window.location.href,
|
||||
}
|
||||
reqApproveUserSearch(ploay).then(res=>{
|
||||
if(res.status){
|
||||
this.tableData = res.data
|
||||
this.total = res.data.total_count
|
||||
this.tableData = res.data.data
|
||||
}else{
|
||||
this.$message.error(res.msg || '加载失败,请重试');
|
||||
}
|
||||
})
|
||||
|
||||
},
|
||||
handleAudit(row) {
|
||||
console.log(row)
|
||||
this.previewVisible = true
|
||||
this.approveForm = row
|
||||
},
|
||||
// 审核通过
|
||||
handleApprove() {
|
||||
this.$confirm('确认审核通过该资格申请吗?', '提示', {
|
||||
confirmButtonText: '确定',
|
||||
cancelButtonText: '取消',
|
||||
type: 'warning'
|
||||
}).then(() => {
|
||||
this.approveQualification();
|
||||
}).catch(() => {
|
||||
this.$message.info('已取消操作');
|
||||
});
|
||||
},
|
||||
// 审核不通过
|
||||
handleReject() {
|
||||
this.rejectDialogVisible = true;
|
||||
// 回显已有的驳回理由,如果没有则显示空字符串
|
||||
this.rejectForm.reject_reason = this.approveForm.reject_reason || '';
|
||||
// 重置表单验证
|
||||
this.$nextTick(() => {
|
||||
if (this.$refs.rejectForm) {
|
||||
this.$refs.rejectForm.clearValidate();
|
||||
}
|
||||
});
|
||||
},
|
||||
// 确认驳回
|
||||
confirmReject() {
|
||||
this.$refs.rejectForm.validate((valid) => {
|
||||
if (valid) {
|
||||
this.rejectQualification();
|
||||
}
|
||||
});
|
||||
},
|
||||
// 执行审核通过
|
||||
approveQualification() {
|
||||
// 这里调用审核通过的API
|
||||
const params = {
|
||||
id: this.approveForm.id,
|
||||
audit_status: 'approved'
|
||||
};
|
||||
console.log("审核通过",params)
|
||||
reqEnterpriseUpdate(params).then(res=>{
|
||||
if(res.status){
|
||||
this.$message.success('审核通过成功');
|
||||
this.initData()
|
||||
this.previewVisible = false;
|
||||
this.refreshTable();
|
||||
this.initData();
|
||||
}else{
|
||||
this.$message.error(res.msg || '审核失败,请重试');
|
||||
}
|
||||
}).catch(err=>{
|
||||
this.$message.error('审核失败,请重试');
|
||||
})
|
||||
// 模拟API调用,实际使用时替换为真实的API
|
||||
|
||||
|
||||
// 实际API调用示例:
|
||||
// this.$api.qualification.approve(params).then(res => {
|
||||
// if (res.status) {
|
||||
// this.$message.success('审核通过成功');
|
||||
// this.previewVisible = false;
|
||||
// this.refreshTable();
|
||||
// } else {
|
||||
// this.$message.error(res.msg || '审核失败,请重试');
|
||||
// }
|
||||
// }).catch(err => {
|
||||
// this.$message.error('审核失败,请重试');
|
||||
// });
|
||||
},
|
||||
// 执行审核驳回
|
||||
rejectQualification() {
|
||||
this.rejectLoading = true;
|
||||
|
||||
const params = {
|
||||
id: this.approveForm.id,
|
||||
audit_status: 'rejected',
|
||||
reject_reason: this.rejectForm.reject_reason
|
||||
};
|
||||
console.log("审核驳回",params)
|
||||
reqEnterpriseUpdate(params).then(res=>{
|
||||
if(res.status){
|
||||
this.rejectLoading = false;
|
||||
this.$message.success('审核驳回成功');
|
||||
this.rejectDialogVisible = false;
|
||||
this.previewVisible = false;
|
||||
this.initData();
|
||||
}else{
|
||||
this.$message.error(res.msg || '审核失败,请重试');
|
||||
}
|
||||
}).catch(err=>{
|
||||
this.$message.error('审核失败,请重试');
|
||||
})
|
||||
|
||||
// 实际API调用示例:
|
||||
// this.$api.qualification.reject(params).then(res => {
|
||||
// this.rejectLoading = false;
|
||||
// if (res.status) {
|
||||
// this.$message.success('审核驳回成功');
|
||||
// this.rejectDialogVisible = false;
|
||||
// this.previewVisible = false;
|
||||
// this.refreshTable();
|
||||
// } else {
|
||||
// this.$message.error(res.msg || '审核失败,请重试');
|
||||
// }
|
||||
// }).catch(err => {
|
||||
// this.rejectLoading = false;
|
||||
// this.$message.error('审核失败,请重试');
|
||||
// });
|
||||
},
|
||||
// 刷新表格数据
|
||||
refreshTable() {
|
||||
// 这里添加刷新表格的逻辑
|
||||
console.log('刷新表格数据');
|
||||
},
|
||||
// 驳回弹窗关闭处理
|
||||
handleRejectDialogClose() {
|
||||
this.rejectDialogVisible = false;
|
||||
this.rejectForm.reject_reason = '';
|
||||
// 重置表单验证
|
||||
this.$nextTick(() => {
|
||||
if (this.$refs.rejectForm) {
|
||||
this.$refs.rejectForm.clearValidate();
|
||||
}
|
||||
});
|
||||
},
|
||||
// 关闭预览弹窗
|
||||
handlePreviewClose() {
|
||||
this.previewVisible = false;
|
||||
},
|
||||
// 获取账号类型文本
|
||||
getAccountTypeText(type) {
|
||||
const typeMap = {
|
||||
'enterprise': '企业账号',
|
||||
'personal': '个人账号',
|
||||
'government': '政府机构'
|
||||
};
|
||||
return typeMap[type] || '未知';
|
||||
},
|
||||
|
||||
// 获取状态类型
|
||||
getStatusType(status) {
|
||||
const statusMap = {
|
||||
'pending': 'warning',
|
||||
'approved': 'success',
|
||||
'rejected': 'danger',
|
||||
'processing': 'info'
|
||||
};
|
||||
return statusMap[status] || 'info';
|
||||
},
|
||||
|
||||
// 获取状态文本
|
||||
getStatusText(status) {
|
||||
const statusMap = {
|
||||
'pending': '待审核',
|
||||
'approved': '已通过',
|
||||
'rejected': '已拒绝',
|
||||
'processing': '审核中'
|
||||
};
|
||||
return statusMap[status] || '未知';
|
||||
},
|
||||
|
||||
}
|
||||
}
|
||||
</script>
|
||||
<style scoped lang="less">
|
||||
.preview-license-img{
|
||||
width: 300px;
|
||||
height: 200px;
|
||||
border-radius: 16px;
|
||||
border: 1px solid #ccc;
|
||||
transition: transform 0.3s ease;
|
||||
&:hover{
|
||||
box-shadow: 0 0 10px 0 rgba(0, 0, 0, 0.1);
|
||||
transform: translateY(-3px);
|
||||
transition: transform 0.3s ease;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
@ -1,7 +1,8 @@
|
||||
<template>
|
||||
<div class="top-nav">
|
||||
<div id="topContainer" class="container">
|
||||
<div class="logo">
|
||||
<div id="topContainer" class="container" :class="{ 'ncmatch-layout': homePath === '/ncmatchHome/index' }">
|
||||
<!-- 当homePath不等于/ncmatchHome/index时显示logo和导航 -->
|
||||
<div class="logo" v-if="homePath !== '/ncmatchHome/index'">
|
||||
<img v-if="JSON.stringify(logoInfoNew)!=='{}'" @click="$router.push(homePath)"
|
||||
style="cursor:pointer;margin-right: 71px" class="logoImg"
|
||||
:src=" logoInfoNew.home.logoImg || '' "
|
||||
@ -29,6 +30,78 @@
|
||||
</nav>
|
||||
</div>
|
||||
|
||||
<!-- 当homePath等于/ncmatchHome/index时的布局 -->
|
||||
<div class="logo" v-else>
|
||||
<!-- 登录状态:用户头像在最左侧 -->
|
||||
<el-dropdown v-if="loginState" @visible-change="handleShow"
|
||||
class="avatar-container left-menu-item hover-effect nick-name-style"
|
||||
style="margin-right: 0"
|
||||
trigger="click">
|
||||
<div class="avatar-wrapper">
|
||||
<i
|
||||
style="font-size: 18px; color: #262626;font-weight: 400;cursor: pointer;display: flex;justify-content: flex-start;align-items: center">
|
||||
<div class="imgUser">{{ nick_name.charAt(0) }}</div>
|
||||
{{ nick_name }}
|
||||
<i id="resverIcon" class="el-icon-arrow-up el-icon--right resverIcon"></i>
|
||||
</i>
|
||||
</div>
|
||||
<el-dropdown-menu slot="dropdown" style="width: 230px;font-size: 16px;" divided>
|
||||
<div
|
||||
style="display: flex;flex-direction: column;padding:15px 15px;background-color: #f0f2f5">
|
||||
<span style="font-weight: bold;font-size: 20px;margin-bottom: 5px;color: #333333">{{ nick_name }}</span>
|
||||
<span
|
||||
style="font-size: 12px;color:#666;display: flex;justify-content:flex-start;align-items: center"> ID: <span
|
||||
ref="contentToCopy">
|
||||
{{
|
||||
userId
|
||||
}}
|
||||
|
||||
</span>
|
||||
<svg
|
||||
@click="copyBtn"
|
||||
class="copy-btn"
|
||||
viewBox="0 0 1024 1024"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
width="12"
|
||||
height="12"
|
||||
style="fill: #1019ab;"
|
||||
>
|
||||
<path
|
||||
d="M394.666667 106.666667h448a74.666667 74.666667 0 0 1 74.666666 74.666666v448a74.666667 74.666667 0 0 1-74.666666 74.666667H394.666667a74.666667 74.666667 0 0 1-74.666667-74.666667V181.333333a74.666667 74.666667 0 0 1 74.666667-74.666666z m0 64a10.666667 10.666667 0 0 0-10.666667 10.666666v448a10.666667 10.666667 0 0 0 10.666667 10.666667h448a10.666667 10.666667 0 0 0 10.666666-10.666667V181.333333a10.666667 10.666667 0 0 0-10.666666-10.666666H394.666667z m245.333333 597.333333a32 32 0 0 1 64 0v74.666667a74.666667 74.666667 0 0 1-74.666667 74.666666H181.333333a74.666667 74.666667 0 0 1-74.666666-74.666666V394.666667a74.666667 74.666667 0 0 1 74.666666-74.666667h74.666667a32 32 0 0 1 0 64h-74.666667a10.666667 10.666667 0 0 0-10.666666 10.666667v448a10.666667 10.666667 0 0 0 10.666666 10.666666h448a10.666667 10.666667 0 0 0 10.666667-10.666666v-74.666667z"
|
||||
p-id="1521"></path>
|
||||
</svg>
|
||||
</span>
|
||||
</div>
|
||||
<el-divider style="margin: 0!important;"></el-divider>
|
||||
<div
|
||||
v-if="role.includes('客户')"
|
||||
style="padding: 0 18px; width: 100%;height: 60px;display: flex;justify-content: space-between;align-items: center">
|
||||
|
||||
<span style="color:#666;display: block;font-size: 14px;"
|
||||
class="moneyNow"><span style="display: block;margin-bottom: 5px">余额</span>{{
|
||||
mybalance ? mybalance : initMybalance()
|
||||
}} ¥</span>
|
||||
<el-button v-if="!isShowKbossCharge" type="primary" @click="$router.push('/kbossCharge')" plain
|
||||
style="padding: 8px; ">
|
||||
充值
|
||||
</el-button>
|
||||
</div>
|
||||
<el-dropdown-item v-if="role.includes('客户')"
|
||||
@click.native="$router.push('/customer/customerInformation')">
|
||||
<span style="display: block">个人中心</span>
|
||||
</el-dropdown-item>
|
||||
<el-dropdown-item @click.native="logout">
|
||||
<span style="display: block">退出登录</span>
|
||||
</el-dropdown-item>
|
||||
</el-dropdown-menu>
|
||||
</el-dropdown>
|
||||
|
||||
<!-- 公司名称在中间 -->
|
||||
<div class="company-name" @click="$router.push(homePath)" style="cursor:pointer;font-size: 24px;font-weight: bold;color: #222F60;margin: 0 auto;">
|
||||
{{ (logoInfoNew.home && logoInfoNew.home.orgName) || '' }}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="user-area">
|
||||
<a @click="goB" v-if="loginState" class="login-btn">控制台</a>
|
||||
@ -46,7 +119,7 @@
|
||||
<!-- <span style="text-decoration: underline; text-decoration-color: #1b5bff" v-if="!showRegisterButton">{{-->
|
||||
<!-- username-->
|
||||
<!-- }}</span>-->
|
||||
<el-dropdown v-if="loginState " @visible-change="handleShow"
|
||||
<el-dropdown v-if="loginState && homePath !== '/ncmatchHome/index'" @visible-change="handleShow"
|
||||
class="avatar-container right-menu-item hover-effect nick-name-style"
|
||||
style="margin-right: 0"
|
||||
trigger="click">
|
||||
@ -202,7 +275,6 @@ import {mapGetters, mapState} from "vuex";
|
||||
import {getLogoAPI, getUserInfoAPI} from "@/api/login";
|
||||
import {reqApplyChannel} from "@/api/customer/channel";
|
||||
import store from "@/store";
|
||||
import { windows } from 'codemirror/src/util/browser';
|
||||
import { getHomePath } from '@/views/setting/tools'
|
||||
export default Vue.extend({
|
||||
name: "TopBox",
|
||||
@ -226,6 +298,7 @@ export default Vue.extend({
|
||||
}
|
||||
},
|
||||
created() {
|
||||
this.homePath = getHomePath()
|
||||
if (sessionStorage.getItem('userId')) {
|
||||
this.$store.commit('setLoginState', true); // 同步到 Vuex
|
||||
}
|
||||
@ -986,4 +1059,41 @@ export default Vue.extend({
|
||||
background: #081020;
|
||||
color: white;
|
||||
}
|
||||
|
||||
.company-name {
|
||||
font-size: 24px;
|
||||
font-weight: bold;
|
||||
color: #222F60;
|
||||
cursor: pointer;
|
||||
transition: color 0.3s ease;
|
||||
|
||||
&:hover {
|
||||
color: #1E6FFF;
|
||||
}
|
||||
}
|
||||
|
||||
/* 当homePath等于/ncmatchHome/index时的特殊样式 */
|
||||
.top-nav .container {
|
||||
&.ncmatch-layout {
|
||||
.logo {
|
||||
flex: 1;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.user-area {
|
||||
justify-content: flex-end;
|
||||
flex-shrink: 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* 左侧用户头像样式 */
|
||||
.left-menu-item {
|
||||
.avatar-wrapper {
|
||||
i {
|
||||
justify-content: flex-start !important;
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
<script>
|
||||
import Vue from 'vue'
|
||||
import { reqPublishProductSearchFirstPage, reqEnterpriseAuditInfoSearch } from '@/api/ncmatch'
|
||||
import { reqPublishProductSearchFirstPage, reqEnterpriseAuditInfoSearch, reqHomepageProductCategory, reqGetSupplyAndDemandSquareList } from '@/api/ncmatch'
|
||||
import { mapGetters, mapState } from "vuex";
|
||||
export default Vue.extend({
|
||||
name: "mainPage",
|
||||
@ -11,10 +11,13 @@ export default Vue.extend({
|
||||
menuAside: () => import('./menuAside/index.vue')
|
||||
},
|
||||
created() {
|
||||
this.init_product_list()
|
||||
this.getHomepageProductCategory()
|
||||
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
boxLoading:false,
|
||||
selectedCategory: "",
|
||||
showTip: false,
|
||||
total: 0,
|
||||
publish_type: null,
|
||||
@ -144,21 +147,36 @@ export default Vue.extend({
|
||||
|
||||
},
|
||||
methods: {
|
||||
goInfo(){
|
||||
getHomepageProductCategory() {
|
||||
reqHomepageProductCategory({
|
||||
url_link: window.location.href,
|
||||
publish_type: "1"
|
||||
}).then(res => {
|
||||
if (res.status) {
|
||||
this.categories = res.data
|
||||
this.product = res.data
|
||||
this.currentHotMenu = res.data[0].id
|
||||
this.selectedCategory = res.data[0].id
|
||||
this.initData()
|
||||
}
|
||||
})
|
||||
},
|
||||
goInfo() {
|
||||
this.showTip = false
|
||||
this.$router.push('/customer/approve')
|
||||
|
||||
},
|
||||
handleCurrentChange(val) {
|
||||
this.current_page = val
|
||||
this.init_product_list()
|
||||
this.initData()
|
||||
// this.init_product_list()
|
||||
},
|
||||
sendInfo(type) {
|
||||
if (this.loginState) {
|
||||
reqEnterpriseAuditInfoSearch({
|
||||
url_link: window.location.href,
|
||||
}).then(res => {
|
||||
if (res.data.length !== 0||!sessionStorage.getItem('juese').includes('客户')) {
|
||||
if (res.data.length !== 0 || !sessionStorage.getItem('juese').includes('客户')) {
|
||||
this.publish_type = type
|
||||
this.sendProductVisible = true
|
||||
} else {
|
||||
@ -171,6 +189,31 @@ export default Vue.extend({
|
||||
this.$router.push('/login')
|
||||
}
|
||||
},
|
||||
initData() {
|
||||
this.boxLoading = true
|
||||
let ploay = {
|
||||
product_category: this.selectedCategory,
|
||||
to_page: "first_page",
|
||||
url_link: window.location.href,
|
||||
page_size: this.page_size,
|
||||
current_page: this.current_page,
|
||||
publish_type: "1"
|
||||
}
|
||||
reqGetSupplyAndDemandSquareList(ploay).then(res => {
|
||||
this.boxLoading = false
|
||||
if (res.status) {
|
||||
if (res.data.length === 0) {
|
||||
this.hotProductList = []
|
||||
this.total = 0
|
||||
} else {
|
||||
this.hotProductList = res.data[0].product_list
|
||||
this.total = res.data[0].total_count
|
||||
}
|
||||
|
||||
}
|
||||
})
|
||||
|
||||
},
|
||||
init_product_list() {
|
||||
reqPublishProductSearchFirstPage({ publish_type: "1", url_link: window.location.href, to_page: 'first_page', page_size: this.page_size, current_page: this.current_page, product_type: this.currentHotMenu }).then(res => {
|
||||
if (res.status) {
|
||||
@ -191,7 +234,9 @@ export default Vue.extend({
|
||||
clickNetMenu(menu) {
|
||||
this.current_page = 1
|
||||
this.currentHotMenu = menu.id;
|
||||
this.hotProductList = menu.product_list || [];
|
||||
this.selectedCategory = menu.id
|
||||
this.initData()
|
||||
// this.hotProductList = menu.product_list || [];
|
||||
},
|
||||
handleSearch() {
|
||||
console.log('搜索:1', this.searchKeyword)
|
||||
@ -253,12 +298,12 @@ export default Vue.extend({
|
||||
<li v-for="menu in product" :class="currentHotMenu === menu.id ? 'activeMenu' : ''" @click="clickNetMenu(menu)"
|
||||
:key="menu.name">
|
||||
<!-- <img :src="currentHotMenu === menu.id ? menu.activeIcon : menu.icon" alt="" /> -->
|
||||
<span class="tab-text">{{ menu.name }}</span>
|
||||
<span class="tab-text">{{ menu.product_category }}</span>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
|
||||
<productCard :productList="hotProductList"></productCard>
|
||||
<productCard v-loading="boxLoading" :productList="hotProductList"></productCard>
|
||||
<el-pagination style="background-color: white;" @current-change="handleCurrentChange" :page-size="page_size"
|
||||
layout="total, prev, pager, next" :total="total">
|
||||
</el-pagination>
|
||||
@ -271,7 +316,8 @@ export default Vue.extend({
|
||||
<span>您还没有完善企业信息,完善企业信息审核通过后您可以发布需求与商品。</span>
|
||||
<span slot="footer" class="dialog-footer">
|
||||
|
||||
<span> <span style="margin-right: 10px;"> 跳转到</span> <el-button size="small" type="primary" @click="goInfo">信息完善</el-button></span>
|
||||
<span> <span style="margin-right: 10px;"> 跳转到</span> <el-button size="small" type="primary"
|
||||
@click="goInfo">信息完善</el-button></span>
|
||||
</span>
|
||||
</el-dialog>
|
||||
</div>
|
||||
|
||||
@ -19,7 +19,7 @@
|
||||
<span class="mylabel"> <span v-if="productDetailInfo.publish_type === '1' ">商品价格:</span> <span
|
||||
v-else>预期价格:</span></span>
|
||||
<span class="value">¥{{ productDetailInfo.discount_price }}</span> -->
|
||||
</li>
|
||||
<!-- </li> -->
|
||||
<li class="info-item" style="margin:5px 0;">
|
||||
<span class="mylabel">所属类别:</span>
|
||||
<span class="value">{{ productDetailInfo.product_category }}</span>
|
||||
|
||||
@ -0,0 +1,60 @@
|
||||
<template>
|
||||
<div>
|
||||
<el-button size="small" style="margin-bottom: 5px;" type="primary" @click="getTableData('1')">
|
||||
<i class="el-icon-upload2"> </i>
|
||||
全部导出</el-button>
|
||||
<el-table border :data="tableData" style="width: 100%">
|
||||
|
||||
<el-table-column prop="name" label="姓名" min-width="180">
|
||||
</el-table-column>
|
||||
<el-table-column prop="phone" label="手机号" min-width="180">
|
||||
</el-table-column>
|
||||
<el-table-column prop="email" label="邮箱" min-width="180">
|
||||
</el-table-column>
|
||||
<el-table-column prop="content" label="内容" min-width="180">
|
||||
</el-table-column>
|
||||
<el-table-column prop="create_time" label="创建时间" min-width="180">
|
||||
</el-table-column>
|
||||
<el-table-column prop="update_time" label="更新时间" min-width="180">
|
||||
</el-table-column>
|
||||
|
||||
</el-table>
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
import { reqSearchUserInquiry } from '@/api/ncmatch'
|
||||
import XLSX from 'xlsx'
|
||||
export default {
|
||||
name: 'ConsultingMangement',
|
||||
data() {
|
||||
return {
|
||||
tableData: []
|
||||
}
|
||||
},
|
||||
created() {
|
||||
this.getTableData('0')
|
||||
},
|
||||
methods: {
|
||||
getTableData(to_excel) {
|
||||
reqSearchUserInquiry({ url_link: window.location.href, to_excel: to_excel }).then(res => {
|
||||
console.log(res)
|
||||
if (res.status) {
|
||||
if (to_excel === '0') {
|
||||
this.tableData = res.data
|
||||
} else if (to_excel === '1') {
|
||||
// 创建一个Workbook对象
|
||||
const wb = XLSX.utils.book_new();
|
||||
// 创建第一个sheet
|
||||
const ws1 = XLSX.utils.json_to_sheet(res.data);
|
||||
XLSX.utils.book_append_sheet(wb, ws1, 'sheet1');
|
||||
// 导出Excel文件
|
||||
XLSX.writeFile(wb, '咨询列表.xlsx');
|
||||
this.$message.success('导出成功')
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
<style scoped></style>
|
||||
Loading…
x
Reference in New Issue
Block a user