Browse Source

bug修复

master
wangmingyong@163.com 4 weeks ago
parent
commit
09bc889588
  1. 1
      zdxt-web-client/zdxt-efcode-enforcement-app/src/components/enforcement/register/EnforcementInfoSection.vue
  2. 1
      zdxt-web-client/zdxt-efcode-enforcement-app/src/components/enforcement/register/EnterpriseSelector.vue
  3. 10
      zdxt-web-client/zdxt-efcode-enforcement-app/src/components/enforcement/register/RegisterPopups.vue
  4. 77
      zdxt-web-client/zdxt-efcode-enforcement-app/src/views/enforcement/scanEntQRCode.vue

1
zdxt-web-client/zdxt-efcode-enforcement-app/src/components/enforcement/register/EnforcementInfoSection.vue

@ -437,6 +437,7 @@ const onAfterReadImage = (file) => {
.person-select {
// margin-left: 30px;
display: block;
padding-left: 2px;
// flex-direction: column;
// align-items: flex-end;
// gap: 0.16rem;

1
zdxt-web-client/zdxt-efcode-enforcement-app/src/components/enforcement/register/EnterpriseSelector.vue

@ -174,7 +174,6 @@ const handleClose = () => {
align-items: center;
padding: 0.3rem;
border-bottom: 1px solid #f5f5f5;
.popup-title {
font-size: 0.4rem;
font-weight: 600;

10
zdxt-web-client/zdxt-efcode-enforcement-app/src/components/enforcement/register/RegisterPopups.vue

@ -58,7 +58,7 @@
<div v-for="(person, index) in personList" :key="index" class="person-list-item"
@click="handleSelectPerson(person)">
<div class="person-name">{{ person.userName }}</div>
<div class="person-id">执法证件号{{ person.lawCertificateNum || person.phonenumber || person.mobileNumber }}</div>
<div class="person-id"><span class="id-label">{{person.lawCertificateNum?'执法证件号:':'联系电话:'}}</span>{{ person.lawCertificateNum || person.phonenumber || person.mobileNumber }}</div>
</div>
<van-empty v-if="personList.length === 0 && !personLoading" description="暂无数据" />
</van-list>
@ -244,10 +244,10 @@ const loadPersonList = () => {
if (res.code === 200 || res.code === 0) {
let data = res.data || res.rows || [];
//
const selectedIds = props.selectedPersons.map(p => p.lawCertificateNum || p.userId || p.id).filter(Boolean);
const selectedIds = props.selectedPersons.map(p => p.userId || p.id).filter(Boolean);
if (selectedIds.length > 0) {
data = data.filter(item => {
const id = item.lawCertificateNum || item.mobileNumber || item.userId || item.id || '';
const id = item.userId || '';
return !selectedIds.includes(id);
});
}
@ -648,6 +648,10 @@ watch(localNoticePopup, async (newVal) => {
.person-id {
font-size: 14px;
color: #999;
.id-label{
display: inline-block;
width: 90px;
}
}
.notice-popup {

77
zdxt-web-client/zdxt-efcode-enforcement-app/src/views/enforcement/scanEntQRCode.vue

@ -66,6 +66,9 @@
<!-- 企业列表 -->
<div class="enterprise-list">
<van-pull-refresh v-model="refreshing" @refresh="onRefresh">
<van-list v-model:loading="loading" :finished="finished" finished-text="" @load="onLoad"
:offset="50">
<div v-for="(item, index) in enterpriseList" :key="index" class="enterprise-item"
@click="selectEnterprise(item)">
<div class="item-qr">
@ -75,15 +78,18 @@
<div class="item-name">{{ item.enterpriseName }}</div>
</div>
<!-- 搜索不到企业时显示非深圳市注册企业提示 -->
<div v-if="enterpriseList.length === 0 && !loading && searchKeyword" class="no-result-section">
<div v-if="enterpriseList.length === 0 && finished && !loading && searchKeyword"
class="no-result-section">
<div class="no-result-card">
<div class="no-result-icon">
</div>
<div class="no-result-title">非深圳市注册企业</div>
<van-button class="no-result-btn" @click="handleOutOfCityEnterprise">市外注册企业信息录入 ></van-button>
<van-button class="no-result-btn"
@click="handleOutOfCityEnterprise">市外注册企业信息录入 ></van-button>
</div>
</div>
<van-loading v-if="loading" class="loading-more" />
</van-list>
</van-pull-refresh>
</div>
</div>
</van-popup>
@ -91,7 +97,7 @@
</template>
<script setup name="ScanEntQRCode">
import { ref, reactive, computed, onMounted, onBeforeUnmount, nextTick } from 'vue';
import { ref, reactive, computed, onMounted, onBeforeUnmount } from 'vue';
import { useRouter, useRoute } from 'vue-router';
import { showFailToast, showSuccessToast, showToast, showConfirmDialog } from 'vant';
import { baseUrl, appEnv } from '@/config/env.js';
@ -332,6 +338,11 @@ const enterpriseList = ref([]);
const loading = ref(false);
const finished = ref(false);
const error = ref(false);
const refreshing = ref(false);
//
const pageNum = ref(1);
const pageSize = ref(20);
const reasonOptions = ref([]);
@ -347,24 +358,22 @@ const showSearchPopup = () => {
enterpriseList.value = [];
finished.value = false;
error.value = false;
pageNum.value = 1;
loading.value = true;
if (reasonOptions.value.length === 0) {
loadDict('no-scan-reason', (columns) => {
reasonOptions.value = columns;
const otherItem = filteredReasonOptions.value.find(item => item.text === '其他' || item.value === '其他');
selectedReason.value = otherItem ? otherItem.originalIndex : (filteredReasonOptions.value[0]?.originalIndex ?? 0);
nextTick(() => {
loadEnterprises();
});
fetchEnterprises();
});
} else {
if (selectedReason.value === -1) {
const otherItem = filteredReasonOptions.value.find(item => item.text === '其他' || item.value === '其他');
selectedReason.value = otherItem ? otherItem.originalIndex : (filteredReasonOptions.value[0]?.originalIndex ?? 0);
}
nextTick(() => {
loadEnterprises();
});
fetchEnterprises();
}
};
@ -374,6 +383,8 @@ const closeSearchModal = () => {
enterpriseList.value = [];
finished.value = false;
error.value = false;
pageNum.value = 1;
refreshing.value = false;
};
const handleSearch = () => {
@ -384,7 +395,9 @@ const handleSearch = () => {
enterpriseList.value = [];
finished.value = false;
error.value = false;
loadEnterprises();
pageNum.value = 1;
loading.value = true;
fetchEnterprises();
};
const clearSearch = () => {
@ -392,15 +405,18 @@ const clearSearch = () => {
enterpriseList.value = [];
finished.value = false;
error.value = false;
loadEnterprises();
pageNum.value = 1;
loading.value = true;
fetchEnterprises();
};
const loadEnterprises = () => {
const fetchEnterprises = () => {
loading.value = true;
error.value = false;
const params = {
pageSize: 20,
pageNum: 1,
pageSize: pageSize.value,
pageNum: pageNum.value,
orderByColumn: 'createTime',
isAsc: 'desc',
searchValue: searchKeyword.value.trim() || undefined
@ -409,24 +425,47 @@ const loadEnterprises = () => {
queryEnterpriseListAndQrInfo(params, (res) => {
loading.value = false;
if (res.code === 200) {
// { total, rows, code, msg } data
enterpriseList.value = res.rows || [];
const rows = res.rows || [];
const total = res.total || 0;
if (refreshing.value) {
enterpriseList.value = rows;
refreshing.value = false;
} else {
enterpriseList.value = [...enterpriseList.value, ...rows];
}
if (total <= pageSize.value * pageNum.value) {
finished.value = true;
} else {
pageNum.value++;
}
} else {
showFailToast(res.msg || '搜索企业失败');
error.value = true;
finished.value = true;
}
}, (err) => {
loading.value = false;
error.value = true;
finished.value = true;
refreshing.value = false;
console.error('搜索企业失败', err);
showFailToast('搜索企业失败,请重试');
});
};
const onLoad = () => {
//
finished.value = true;
if (refreshing.value) return;
fetchEnterprises();
};
const onRefresh = () => {
pageNum.value = 1;
enterpriseList.value = [];
finished.value = false;
loading.value = true;
fetchEnterprises();
};
const selectEnterprise = (item) => {

Loading…
Cancel
Save