Browse Source

UI调整

dev
wangmingyong@163.com 1 month ago
parent
commit
d01c54d396
  1. 3
      zdxt-web-client/zdxt-efcode-enterprise-app/src/api/enterprise/planNotice.js
  2. BIN
      zdxt-web-client/zdxt-efcode-enterprise-app/src/assets/images/case_information.png
  3. BIN
      zdxt-web-client/zdxt-efcode-enterprise-app/src/assets/images/case_text.png
  4. BIN
      zdxt-web-client/zdxt-efcode-enterprise-app/src/assets/images/hist_law_casses.png
  5. BIN
      zdxt-web-client/zdxt-efcode-enterprise-app/src/assets/images/hist_text.png
  6. BIN
      zdxt-web-client/zdxt-efcode-enterprise-app/src/assets/images/law_enf_code.png
  7. BIN
      zdxt-web-client/zdxt-efcode-enterprise-app/src/assets/images/law_text.png
  8. 2
      zdxt-web-client/zdxt-efcode-enterprise-app/src/components/complaint/BureauPicker.vue
  9. 2
      zdxt-web-client/zdxt-efcode-enterprise-app/src/components/complaint/ComplaintItemPicker.vue
  10. 2
      zdxt-web-client/zdxt-efcode-enterprise-app/src/components/enterprise/footerNav.vue
  11. 4
      zdxt-web-client/zdxt-efcode-enterprise-app/src/views/enterprise/enforcement/enforcementCaseInfo.vue
  12. 67
      zdxt-web-client/zdxt-efcode-enterprise-app/src/views/enterprise/enforcement/enforcementChat.vue
  13. 2
      zdxt-web-client/zdxt-efcode-enterprise-app/src/views/enterprise/enforcement/enforcementEvaluateDetail.vue
  14. 2
      zdxt-web-client/zdxt-efcode-enterprise-app/src/views/enterprise/enforcement/registrationDetail.vue
  15. 139
      zdxt-web-client/zdxt-efcode-enterprise-app/src/views/enterprise/home/enterpriseHomeV2.vue
  16. 2
      zdxt-web-client/zdxt-efcode-enterprise-app/src/views/enterprise/law/lawQuery.vue
  17. 2
      zdxt-web-client/zdxt-efcode-enterprise-app/src/views/enterprise/my/complaintDetail.vue
  18. 2
      zdxt-web-client/zdxt-efcode-enterprise-app/src/views/enterprise/my/complaintList.vue
  19. 4
      zdxt-web-client/zdxt-efcode-enterprise-app/src/views/enterprise/my/complaintSuggestion.vue
  20. 4
      zdxt-web-client/zdxt-efcode-enterprise-app/src/views/enterprise/nos/components/NosListPanel.vue
  21. 2
      zdxt-web-client/zdxt-efcode-enterprise-app/src/views/enterprise/nos/enfDemoList.vue
  22. 2
      zdxt-web-client/zdxt-efcode-enterprise-app/src/views/enterprise/nos/message/index.vue
  23. 2
      zdxt-web-client/zdxt-efcode-enterprise-app/src/views/enterprise/nos/message/nosEvaluationList.vue
  24. 4
      zdxt-web-client/zdxt-efcode-enterprise-app/src/views/enterprise/nos/nosCloudRecord.vue
  25. 4
      zdxt-web-client/zdxt-efcode-enterprise-app/src/views/enterprise/nos/nosDetail.vue
  26. 2
      zdxt-web-client/zdxt-efcode-enterprise-app/src/views/enterprise/nos/nosList.vue
  27. 10
      zdxt-web-client/zdxt-efcode-enterprise-app/src/views/enterprise/plan/planNoticeList.vue
  28. 2
      zdxt-web-client/zdxt-efcode-enterprise-app/src/views/enterprise/plan/planNoticeMessage.vue
  29. 2
      zdxt-web-client/zdxt-efcode-enterprise-app/vite-env/.env.enterprise-dev-wmy

3
zdxt-web-client/zdxt-efcode-enterprise-app/src/api/enterprise/planNotice.js

@ -11,6 +11,9 @@ export const getPlanNoticeDetail = (params, success, error) => _get(enterpriseAp
//执法预告留言列表
export const getPlanNoticeMessageList = (params, success, error) => _get(enterpriseAppBaseUrl +"/planNotice/message/list",params,success,error);
//执法预告消息列表(lawNotice)
export const getLawNoticeMessageList = (params, success, error) => _get(enterpriseAppBaseUrl +"/enterprise/lawNotice/message/list",params,success,error);
//执法预告新增留言
export const addPlanNoticeMessage = (params, success, error) => _post(enterpriseAppBaseUrl +"/planNotice/message",params,success,error);

BIN
zdxt-web-client/zdxt-efcode-enterprise-app/src/assets/images/case_information.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

BIN
zdxt-web-client/zdxt-efcode-enterprise-app/src/assets/images/case_text.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.0 KiB

BIN
zdxt-web-client/zdxt-efcode-enterprise-app/src/assets/images/hist_law_casses.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

BIN
zdxt-web-client/zdxt-efcode-enterprise-app/src/assets/images/hist_text.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.0 KiB

BIN
zdxt-web-client/zdxt-efcode-enterprise-app/src/assets/images/law_enf_code.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

BIN
zdxt-web-client/zdxt-efcode-enterprise-app/src/assets/images/law_text.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.4 KiB

2
zdxt-web-client/zdxt-efcode-enterprise-app/src/components/complaint/BureauPicker.vue

@ -81,7 +81,7 @@ watch(() => props.show, (val) => {
display: flex;
flex-direction: column;
height: 100%;
background: #f5f7fa;
background: #fbfdff;
}
.search-bar {

2
zdxt-web-client/zdxt-efcode-enterprise-app/src/components/complaint/ComplaintItemPicker.vue

@ -211,7 +211,7 @@ watch(() => props.list, () => {
display: flex;
flex-direction: column;
height: 100%;
background: #f5f7fa;
background: #fbfdff;
}
.time-filter {

2
zdxt-web-client/zdxt-efcode-enterprise-app/src/components/enterprise/footerNav.vue

@ -48,7 +48,7 @@ const onTabChange = (name) => {
// ========== ==========
const fetchMessageUnreadCount = () => {
getMessageUnreadCount({}, (res) => {
getMessageUnreadCount({ enterpriseNumber: useCommon.enterpriseNumber}, (res) => {
if (res && res.code === 200 && res.data) {
const totalCount = Number(res.data.totalCount) || 0;
useCommon.SET_UNREAD_MESSAGE_COUNT(totalCount);

4
zdxt-web-client/zdxt-efcode-enterprise-app/src/views/enterprise/enforcement/enforcementCaseInfo.vue

@ -1,12 +1,12 @@
<template>
<div class="case-info-page">
<!-- 顶部导航栏 -->
<van-nav-bar title="执法案件信息" left-text="关闭" left-arrow @click-left="onClickLeft">
<!-- <van-nav-bar title="执法案件信息" left-text="关闭" left-arrow @click-left="onClickLeft"> -->
<!-- <template #right>
<van-icon name="filter-o" size="20" @click="onFilterClick" />
<van-icon name="search" size="20" style="margin-left: 12px;" @click="onSearchClick" />
</template> -->
</van-nav-bar>
<!-- </van-nav-bar> -->
<!-- 可滚动列表区域 -->
<div class="list-container">

67
zdxt-web-client/zdxt-efcode-enterprise-app/src/views/enterprise/enforcement/enforcementChat.vue

@ -1,7 +1,7 @@
<template>
<div class="chat-page">
<!-- 顶部导航栏 -->
<van-nav-bar
<!-- <van-nav-bar
title="在线联系"
left-text="关闭"
left-arrow
@ -10,7 +10,7 @@
<template #right>
<van-icon name="ellipsis" size="20" @click="onMoreClick" />
</template>
</van-nav-bar>
</van-nav-bar> -->
<!-- 聊天对象信息 -->
<!-- <div class="chat-header">
@ -87,10 +87,10 @@
class="context-menu"
:style="{ top: menuPosition.y + 'px', left: menuPosition.x + 'px' }"
>
<div class="menu-item" @click.stop="onEdit">
<!-- <div class="menu-item" @click.stop="onEdit">
<van-icon name="edit" size="16" />
<span>编辑</span>
</div>
</div> -->
<div class="menu-divider"></div>
<div class="menu-item" @click.stop="onRecall">
<van-icon name="revoke" size="16" />
@ -122,14 +122,16 @@
</template>
<script setup name="enforcementChat">
import { ref, nextTick } from 'vue';
import { ref, nextTick, onMounted } from 'vue';
import { showToast } from 'vant';
import 'vant/es/toast/style';
import { getLawNoticeMessageList } from '@/api/enterprise/planNotice';
const router = useRouter();
const route = useRoute();
// ========== ==========
const noticeId = ref(route.query.id || '');
const bureauDeptName = ref(route.query.bureauDeptName || '深圳司法局');
const contactPerson = ref(route.query.contactPerson || '付明明 周昂');
const noticeTitle = ref(route.query.title || '安全生产检查');
@ -139,24 +141,43 @@ const selfAvatar = 'https://placehold.co/40x40/447bf5/fff?text=我';
const otherAvatar = 'https://placehold.co/40x40/999/fff?text=官';
// ========== ==========
const messageList = ref([
{
id: 1,
sender: 'self',
content: `你好,预告的执法时间${route.query.enforcementTime || '2026-04-07'}检查,无法正常迎检,可否调整到2026-04-10下午?`,
time: '2026-03-31 10:20',
avatar: selfAvatar,
isRecalled: false,
},
{
id: 2,
sender: 'other',
content: '好的',
time: '2026-03-31 18:32',
avatar: otherAvatar,
isRecalled: false,
},
]);
const messageList = ref([]);
// ========== ==========
const fetchMessageList = () => {
if (!noticeId.value) {
showToast('缺少通知ID');
return;
}
getLawNoticeMessageList(
{ noticeId: noticeId.value },
(res) => {
if (res.code === 200) {
const rows = res.rows || res.data?.rows || res.data?.list || res.data || [];
messageList.value = rows.map(item => ({
id: item.id || item.messageId,
sender: item.sender === 'self' || item.senderType === 1 || item.isSelf ? 'self' : 'other',
content: item.content || item.message || item.messageContent,
time: item.time || item.createTime || item.sendMessageTime || '',
avatar: item.sender === 'self' || item.senderType === 1 || item.isSelf ? selfAvatar : otherAvatar,
isRecalled: item.isRecalled || item.recallStatus || false,
}));
nextTick(() => {
scrollToBottom();
});
} else {
showToast(res.msg || '加载失败');
}
},
() => {
showToast('网络请求失败');
}
);
};
onMounted(() => {
fetchMessageList();
});
const inputMessage = ref('');
const messageListRef = ref(null);

2
zdxt-web-client/zdxt-efcode-enterprise-app/src/views/enterprise/enforcement/enforcementEvaluateDetail.vue

@ -408,7 +408,7 @@ const onSubmit = () => {
display: flex;
flex-direction: column;
height: 100%;
background: #f5f7fa;
background: #fbfdff;
.content-area {
flex: 1;

2
zdxt-web-client/zdxt-efcode-enterprise-app/src/views/enterprise/enforcement/registrationDetail.vue

@ -1,6 +1,6 @@
<template>
<div class="detail-page">
<van-nav-bar :title="pageTitle" left-arrow @click-left="onClickLeft" />
<!-- <van-nav-bar :title="pageTitle" left-arrow @click-left="onClickLeft" /> -->
<div class="detail-content">
<!-- 执法信息 -->

139
zdxt-web-client/zdxt-efcode-enterprise-app/src/views/enterprise/home/enterpriseHomeV2.vue

@ -29,33 +29,33 @@
</van-swipe-item>
</van-swipe>
</div>
<!-- 执法监督码卡片 -->
<div class="supervision-card" @click="showEnterpriseQRCode">
<div class="card-title">执法监督码</div>
<div class="qr-icon-wrap">
<img src="@/assets/images/icon_jdm.jpg" class="qr-image" alt="" />
</div>
</div>
<!-- 双卡片行 -->
<div class="card-row">
<!-- 历史执法信息 -->
<div class="info-card" @click="toEnforcementRegistrationListView">
<div class="card-title">历史执法信息</div>
<div class="service-title">主要服务</div>
<div class="service-card-container">
<div class="supervision-card" @click="showEnterpriseQRCode">
<div class="card-icon">
<img src="@/assets/images/icon_zfxx.jpg" class="card-icon-img" alt="" />
<img src="../../../assets/images/law_text.png" class="card-icon-img" />
</div>
</div>
<!-- 执法案件信息 -->
<div class="info-card info-enforce" @click="toEnforcementCaseInfoView">
<div class="card-title">执法案件信息</div>
<div class="card-icon">
<img src="@/assets/images/icon_ajxx.jpg" class="card-icon-img" alt="" />
<!-- 双卡片行 -->
<div class="card-row">
<!-- 历史执法信息 -->
<div class="info-card" @click="toEnforcementRegistrationListView">
<div class="card-icon">
<img src="../../../assets/images/hist_text.png" class="card-icon-img" />
</div>
</div>
<!-- 执法案件信息 -->
<div class="info-card info-enforce" @click="toEnforcementCaseInfoView">
<div class="card-icon">
<img src="../../../assets/images/case_text.png" class="card-icon-img" />
</div>
</div>
</div>
</div>
<!-- 执法监督码卡片 -->
</div>
<!-- 底部导航栏 -->
@ -89,7 +89,7 @@ const onBannerClick = (item) => {
// bannerList
const fetchBannerList = () => {
getCarouselBannerList({ target_platform:'1' }, (res) => {
getCarouselBannerList({ target_platform: '1' }, (res) => {
const rows = res?.rows || res?.data?.rows || res?.data || [];
if (!Array.isArray(rows)) return;
bannerList.value = rows.map(item => ({
@ -314,7 +314,7 @@ onMounted(() => {
flex-direction: column;
height: 100%;
overflow: hidden;
background: #fbfdff;
background: #fbfdff;
}
/* ===== 顶部蓝色背景区域 ===== */
@ -441,91 +441,78 @@ onMounted(() => {
background: rgba(255, 255, 255, 0.9);
}
.service-title {
font-size: 16px;
color: #000;
margin-bottom: 14px;
margin-top: 14px;
font-weight: 600;
}
.service-card-container {
display: flex;
justify-content: space-around;
}
/* 执法监督码卡片 */
.supervision-card {
background: url('../../../assets/images/bg_jdm.jpg') center center no-repeat, linear-gradient(180deg, #7cc5fe 0%, #fff 100%);
background: url('../../../assets/images/law_enf_code.png') center center no-repeat, linear-gradient(180deg, #7cc5fe 0%, #fff 100%);
background-size: 100% 100%;
border-radius: 16px;
padding: 10px;
padding: 8px 16px;
margin-bottom: 14px;
position: relative;
overflow: hidden;
box-shadow: 0 2px 12px rgba(0, 0, 0, 0.05);
height: 120px;
.card-title {
font-size: 16px;
color: #000;
// font-weight: 600;
margin-bottom: 6px;
margin-top: 6px;
}
.qr-icon-wrap {
display: flex;
align-items: center;
justify-content: flex-start;
}
.qr-image {
width: 100px;
// height: 100px;
object-fit: contain;
border-radius: 40px;
height: 200px;
width: 171px;
box-sizing: border-box;
.card-icon {
width: 134px;
height: 42px;
margin-top: 4px;
.card-icon-img {
width: 100%;
height: 100%;
}
}
}
/* 双卡片行 */
.card-row {
display: flex;
gap: 12px;
margin-bottom: 20px;
}
.card-row {}
.info-card {
flex: 1;
border-radius: 16px;
padding: 8px 16px;
position: relative;
overflow: hidden;
min-height: 100px;
height: 96px;
box-shadow: 0 2px 12px rgba(0, 0, 0, 0.05);
background: url('../../../assets/images/bg_zfxx.png') center center no-repeat, linear-gradient(180deg, #bbecfd 0%, #fff 100%);
background: url('../../../assets/images/hist_law_casses.png') center center no-repeat, linear-gradient(180deg, #bbecfd 0%, #fff 100%);
background-size: 100% 100%;
.card-title {
font-size: 14px;
color: #000;
margin-bottom: 4px;
margin-top: 4px;
position: relative;
z-index: 1;
}
width: 171px;
box-sizing: border-box;
.card-icon {
width: 60px;
height: 40px;
// border-radius: 20px;
display: flex;
align-items: center;
justify-content: center;
position: relative;
overflow: hidden;
margin-top: 12px;
width: 92px;
height: 42px;
margin-top: 4px;
.card-icon-img {
width: 100%;
height: 100%;
border-radius: 50px;
}
}
}
.info-enforce {
background: url('../../../assets/images/bg_ajxx.png') center center no-repeat, linear-gradient(180deg, #a6d1f9 0%, #fff 100%);
background: url('../../../assets/images/case_information.png') center center no-repeat, linear-gradient(180deg, #a6d1f9 0%, #fff 100%);
background-size: 100% 100%;
width: 171px;
box-sizing: border-box;
margin-top: 6px;
}
/* ===== 底部导航 ===== */
.footer_body {
flex-shrink: 0;

2
zdxt-web-client/zdxt-efcode-enterprise-app/src/views/enterprise/law/lawQuery.vue

@ -159,7 +159,7 @@ const onQaClick = (qa) => {
display: flex;
flex-direction: column;
height: 100%;
background: #f5f7fa;
background: #fbfdff;
}
.content-area {

2
zdxt-web-client/zdxt-efcode-enterprise-app/src/views/enterprise/my/complaintDetail.vue

@ -283,7 +283,7 @@ const onClickLeft = () => {
display: flex;
flex-direction: column;
height: 100%;
background-color: #f5f7fa;
background-color: #fbfdff;
}
:deep(.van-tabs) {

2
zdxt-web-client/zdxt-efcode-enterprise-app/src/views/enterprise/my/complaintList.vue

@ -170,7 +170,7 @@ const toDetail = (item) => {
display: flex;
flex-direction: column;
height: 100%;
background-color: #f5f7fa;
background-color: #fbfdff;
}
.list-container {

4
zdxt-web-client/zdxt-efcode-enterprise-app/src/views/enterprise/my/complaintSuggestion.vue

@ -508,7 +508,7 @@ const onFailed = (errorInfo) => {
display: flex;
flex-direction: column;
height: 100%;
background-color: #f5f7fa;
background-color: #fbfdff;
.form-content {
flex: 1;
@ -667,7 +667,7 @@ const onFailed = (errorInfo) => {
padding: 0.1rem 0.6rem 0.3rem;
:deep(.van-uploader__upload) {
background: #f5f7fa;
background: #fbfdff;
border-radius: 0.1rem;
}
}

4
zdxt-web-client/zdxt-efcode-enterprise-app/src/views/enterprise/nos/components/NosListPanel.vue

@ -261,7 +261,7 @@ const onClear = () => {
flex: 1;
min-height: 0;
overflow-y: auto;
background: #f5f7fa;
background: #fbfdff;
}
.list-card {
@ -342,7 +342,7 @@ const onClear = () => {
:deep(.van-list__finished-text),
:deep(.van-list__error-text) {
background: #f5f7fa;
background: #fbfdff;
}
/* ===== Vant 搜索框样式覆盖 ===== */

2
zdxt-web-client/zdxt-efcode-enterprise-app/src/views/enterprise/nos/enfDemoList.vue

@ -94,7 +94,7 @@ const onRefresh = () => {
flex-direction: column;
height: 100%;
overflow: hidden;
background: #f5f7fa;
background: #fbfdff;
:deep(.van-pull-refresh) {
flex: 1;

2
zdxt-web-client/zdxt-efcode-enterprise-app/src/views/enterprise/nos/message/index.vue

@ -59,7 +59,7 @@ onActivated(fetchUnreadCount);
display: flex;
flex-direction: column;
height: 100%;
background: #f5f7fa;
background: #fbfdff;
overflow: hidden;
}

2
zdxt-web-client/zdxt-efcode-enterprise-app/src/views/enterprise/nos/message/nosEvaluationList.vue

@ -235,7 +235,7 @@ onMounted(() => {
display: flex;
flex-direction: column;
height: 100%;
background: #f5f7fa;
background: #fbfdff;
overflow: hidden;
}

4
zdxt-web-client/zdxt-efcode-enterprise-app/src/views/enterprise/nos/nosCloudRecord.vue

@ -311,7 +311,7 @@ onMounted(() => {
display: flex;
flex-direction: column;
height: 100%;
background: #f5f7fa;
background: #fbfdff;
overflow: hidden;
}
@ -354,7 +354,7 @@ onMounted(() => {
height: 100%;
overflow-y: auto;
-webkit-overflow-scrolling: touch;
background: #f5f7fa;
background: #fbfdff;
padding: 12px;
}

4
zdxt-web-client/zdxt-efcode-enterprise-app/src/views/enterprise/nos/nosDetail.vue

@ -261,7 +261,7 @@ const onSubmit = async () => {
display: flex;
flex-direction: column;
height: 100%;
background: #f5f7fa;
background: #fbfdff;
overflow: hidden;
}
@ -310,7 +310,7 @@ const onSubmit = async () => {
padding: 9px;
overflow-y: auto;
-webkit-overflow-scrolling: touch;
background: #f5f7fa;
background: #fbfdff;
}
.detail-footer {

2
zdxt-web-client/zdxt-efcode-enterprise-app/src/views/enterprise/nos/nosList.vue

@ -78,7 +78,7 @@ onActivated(() => {
display: flex;
flex-direction: column;
height: 100%;
background: #f5f7fa;
background: #fbfdff;
overflow: hidden;
}

10
zdxt-web-client/zdxt-efcode-enterprise-app/src/views/enterprise/plan/planNoticeList.vue

@ -1,17 +1,17 @@
<template>
<div class="notice-list-page">
<!-- 顶部导航栏 -->
<van-nav-bar
<!-- <van-nav-bar
title="执法预告"
left-text="关闭"
left-arrow
@click-left="onClickLeft"
>
> -->
<!-- <template #right>
<van-icon name="filter-o" size="20" @click="onFilterClick" />
<van-icon name="search" size="20" style="margin-left: 12px;" @click="onSearchClick" />
</template> -->
</van-nav-bar>
<!-- </van-nav-bar> -->
<!-- 搜索栏 -->
<SearchFilterBar placeholder="请输入关键字查询" @search="onSearchFilter" />
@ -162,9 +162,7 @@ const onFeedback = (item) => {
router.push({
path: '/enterprise/enforcementChat',
query: {
title: item.title,
bureauDeptName: item.bureauDeptName,
enforcementTime: item.enforcementTime,
id: item.id
}
});
};

2
zdxt-web-client/zdxt-efcode-enterprise-app/src/views/enterprise/plan/planNoticeMessage.vue

@ -295,7 +295,7 @@ const onBack = () => {
.input-field {
flex: 1;
background: #f5f7fa;
background: #fbfdff;
border-radius: 20px;
padding: 8px 14px;

2
zdxt-web-client/zdxt-efcode-enterprise-app/vite-env/.env.enterprise-dev-wmy

@ -1,7 +1,7 @@
# 企业端开发环境
VITE_PORT = 12001
# VITE_PROXY_TARGET = 'http://139.186.148.21:8080'
VITE_PROXY_TARGET = 'http://172.16.21.213:8080'
# VITE_PROXY_TARGET = 'http://172.16.21.213:8080'
VITE_BASE_URL = '/efcode20-ent-app/api'
VITE_CONTEXT_PATH = '/efcode20-ent-app/'
VITE_DEFAULT_LOGIN = '/enterprise/loginByPassword'

Loading…
Cancel
Save