Browse Source

历史执法登记加上非行政数据

dev-V1.10.2-temp
wangmingyong@163.com 2 months ago
parent
commit
ac8cd31bb9
  1. 3
      zdxt-web-client/zdxt-efcode-enforcement-app/src/api/enforcement/index.js
  2. 88
      zdxt-web-client/zdxt-efcode-enforcement-app/src/views/enforcement/enforce/enforcementList.vue
  3. 4
      zdxt-web-client/zdxt-efcode-enforcement-app/vite-env/.env.enforcement-dev-wmy

3
zdxt-web-client/zdxt-efcode-enforcement-app/src/api/enforcement/index.js

@ -68,6 +68,9 @@ export const submitEnfRegistration = (params, success, error) => _post(baseUrl +
// 历史活动列表
export const queryNonRegistrationList = (params, success, error) => _get(baseUrl + "/nonRegistration/queryList", params, success, error);
// 非行政执法登记列表
export const queryNonRegistrationPageList = (params, success, error) => _get(baseUrl + "/nonRegistration/list", params, success, error);
// 历史活动详情
export const queryNonRegistrationDetail = (params, success, error) => _get(baseUrl + "/nonRegistration/queryById", params, success, error);

88
zdxt-web-client/zdxt-efcode-enforcement-app/src/views/enforcement/enforce/enforcementList.vue

@ -3,6 +3,12 @@
<SearchFilterBar :search-value="searchText" :date-type="dateType" :date-search="dateSearch" @search="onSearch"
@clear="onClear" @date-change="onDateChange" />
<!-- Tab 切换:行政执法 / 非行政执法 -->
<van-tabs v-model:active="activeTab" @change="onTabChange" sticky line-width="0.5rem" class="list-tabs">
<van-tab title="行政执法" name="enforcement"></van-tab>
<van-tab title="非行政执法" name="non-enforcement"></van-tab>
</van-tabs>
<!-- 可滚动列表区域 -->
<div class="list-container">
<van-pull-refresh v-model="refreshing" @refresh="onRefresh">
@ -13,24 +19,24 @@
<!-- 列表项 -->
<div class="card-item" v-for="item in list" :key="item.id">
<div class="card-header">
<span class="card-time">执法时间:{{ formatTime(item.enforcementTime) }}</span>
<span class="card-time">{{ activeTab === 'enforcement' ? '执法时间:' : '入企时间:' }}{{ formatTime(item.enforcementTime) }}</span>
<span class="card-status" v-if="item.hasUnion === 1">联</span>
</div>
<div class="card-divider"></div>
<div class="card-body" @click="toDetailView(item)">
<div class="card-title">{{ item.lawEnforcementItemText || '-' }}</div>
<div class="card-row">
<span class="card-label">执法单位:</span>
<span class="card-label">{{ activeTab === 'enforcement' ? '执法单位:' : '入企单位:' }}</span>
<span>{{ item.bureauDeptName || '-' }}</span>
</div>
<div class="card-row">
<div class="card-label">执法人员:</div>
<div class="card-label">{{ activeTab === 'enforcement' ? '执法人员:' : '入企人员:' }}</div>
<div class="enforcer-list">
<div class="enforcer-line">
<span class="enforcer-name">{{ parseEnforcer(item.lawEnforcer).name }}</span>
<span v-if="parseEnforcer(item.lawEnforcer).phone" class="enforcer-id">{{ parseEnforcer(item.lawEnforcer).phone }}</span>
</div>
<div v-for="(value, index) in item.lawEnforcer2List || []" :key="index" class="enforcer-line">
<div v-for="(value, index) in item.lawEnforcer2List || item.lawEnforcerOtherList || []" :key="index" class="enforcer-line">
<span class="enforcer-name">{{ parseEnforcer(value).name }}</span>
<span v-if="parseEnforcer(value).phone" class="enforcer-id">{{ parseEnforcer(value).phone }}</span>
</div>
@ -41,9 +47,8 @@
<span>{{ item.enterpriseName || '-' }}</span>
</div>
</div>
<!-- 操作按钮区域 -->
<div class="card-actions">
<!-- 编辑按钮:未提交时显示 -->
<!-- 操作按钮区域:仅行政执法显示编辑按钮 -->
<div class="card-actions" v-if="activeTab === 'enforcement'">
<div v-if="item.isSubmit === 0" @click.stop="toEdit(item.id)">
<van-icon name="edit" /> 编辑
</div>
@ -60,12 +65,16 @@ import { ref, onMounted } from 'vue';
import { useRouter } from 'vue-router';
import { showToast } from 'vant';
import 'vant/es/toast/style';
import { queryEnforcementRegistrationPageList } from '@/api/enforcement';
import { queryEnforcementRegistrationPageList, queryNonRegistrationPageList } from '@/api/enforcement';
import { formatEnforcer, parseEnforcer, formatTime } from '@/util/util';
import SearchFilterBar from '@/components/common/SearchFilterBar.vue';
const router = useRouter();
// ========== Tab 状态 ==========
// 'enforcement':行政执法;'non-enforcement':非行政执法
const activeTab = ref('enforcement');
// ========== 列表状态 ==========
const list = ref([]);
const loading = ref(false);
@ -81,15 +90,11 @@ const pageSize = ref(10);
const dateType = ref(null);
const dateSearch = ref(null);
// ========== 格式化日期 ==========
const formatDate = (dateStr) => {
if (!dateStr) return '-';
const d = new Date(dateStr.replace ? dateStr.replace(/-/g, '/') : dateStr);
if (isNaN(d.getTime())) return dateStr;
const y = d.getFullYear();
const m = String(d.getMonth() + 1).padStart(2, '0');
const day = String(d.getDate()).padStart(2, '0');
return `${y}-${m}-${day}`;
// ========== 根据当前 Tab 选择接口 ==========
const getFetchApi = () => {
return activeTab.value === 'enforcement'
? queryEnforcementRegistrationPageList
: queryNonRegistrationPageList;
};
// ========== 加载数据 ==========
@ -111,8 +116,10 @@ const fetchList = () => {
if (dateSearch.value) {
params.dateSearch = dateSearch.value;
}
queryEnforcementRegistrationPageList(params, (res) => {
const api = getFetchApi();
api(params, (res) => {
if (res.code === 200 || res.code === 0) {
// 行政执法接口返回 res.data,非行政执法接口返回 res.rows
const rows = res.data || res.rows || [];
const total = res.total || res.count || 0;
@ -181,16 +188,35 @@ const onDateChange = ({ dateType: type, dateSearch: search, dateShow }) => {
onSearch();
};
// ========== 跳转详情(只读查看,始终不显示提交按钮)==========
// ========== Tab 切换 ==========
const onTabChange = (name) => {
activeTab.value = name;
// 重置列表并加载新 Tab 数据
pageNum.value = 1;
list.value = [];
finished.value = false;
loading.value = true;
fetchList();
};
// ========== 跳转详情(只读查看)==========
const toDetailView = (item) => {
router.push({
path: '/enforcement/enforcementEvaluateDetail',
query: { id: item.id, hasEvaluate: 1 }
});
if (activeTab.value === 'enforcement') {
router.push({
path: '/enforcement/enforcementEvaluateDetail',
query: { id: item.id, hasEvaluate: 1 }
});
} else {
// 非行政执法跳转到历史活动详情
router.push({
path: '/enforcement/historyActivityDetail',
query: { id: item.id }
});
}
};
// ========== 跳转反馈(可编辑,与反馈页面的待反馈逻辑打通)==========
const toEvaluate = (id, checkItem) => {
// ========== 跳转反馈 ==========
const toEvaluate = (id) => {
router.push({
path: '/enforcement/enforcementEvaluateDetail',
query: {
@ -202,9 +228,14 @@ const toEvaluate = (id, checkItem) => {
// ========== 跳转编辑页面 ==========
const toEdit = (id) => {
const query = { id };
// 非行政执法模式需要带上 type 参数
if (activeTab.value === 'non-enforcement') {
query.type = 'non-enforcement';
}
router.push({
path: '/enforcement/enforcementRegister',
query: { id }
query
});
};
@ -220,6 +251,11 @@ onMounted(() => {
height: 100%;
background-color: #fbfdff;
.list-tabs {
background: #fff;
flex-shrink: 0;
}
.list-container {
flex: 1;
overflow-y: auto;

4
zdxt-web-client/zdxt-efcode-enforcement-app/vite-env/.env.enforcement-dev-wmy

@ -4,9 +4,9 @@ VITE_BASE_URL = '/efcode20-enf-app/api'
VITE_CONTEXT_PATH = '/efcode20-enf-app/'
# VITE_PROXY_TARGET = 'http://139.186.148.21:8080'
# VITE_API_URL = 'http://192.168.1.17:8080'
# VITE_PROXY_TARGET = 'http://172.16.21.213:8080'
VITE_PROXY_TARGET = 'http://172.16.21.213:8080'
# VITE_PROXY_TARGET = 'http://172.16.21.93:8080'
VITE_PROXY_TARGET = 'http://172.16.20.72:8080'
# VITE_PROXY_TARGET = 'http://172.16.20.72:8080'
VITE_DEFAULT_LOGIN = '/enforcement/loginByPassword'
VITE_APP_ENV = 'dev'
VITE_FILE_URL = ''

Loading…
Cancel
Save