Browse Source

执法人员

master
wangmingyong@163.com 4 weeks ago
parent
commit
5fe23b3e63
  1. 1
      zdxt-web-client/zdxt-efcode-enforcement-app/src/util/util.js
  2. 27
      zdxt-web-client/zdxt-efcode-enforcement-app/src/views/enforcement/components/HistoryActivityDetail.vue
  3. 13
      zdxt-web-client/zdxt-efcode-enforcement-app/src/views/enforcement/components/HistoryActivityList.vue
  4. 24
      zdxt-web-client/zdxt-efcode-enforcement-app/src/views/enforcement/enforce/enforcementEvaluateDetail.vue
  5. 4
      zdxt-web-client/zdxt-efcode-enforcement-app/src/views/enforcement/enforce/enforcementList.vue
  6. 6
      zdxt-web-client/zdxt-efcode-enforcement-app/src/views/enforcement/enforce/enforcementRegister.vue
  7. 22
      zdxt-web-client/zdxt-efcode-enforcement-app/src/views/enforcement/message/enforcementEvaluateList.vue

1
zdxt-web-client/zdxt-efcode-enforcement-app/src/util/util.js

@ -214,5 +214,4 @@ const parseEnforcer = (str) => {
} }
return { name: str.trim(), phone: '' }; return { name: str.trim(), phone: '' };
}; };
export { setGoodsNum, isObject, comparisonObject, isElementHidden, formattedTimeYYYYmmdd, formattedTime, getDeviceType, formattedDate, formatEnforcer, formatTime, maskPhone, parseEnforcer }; export { setGoodsNum, isObject, comparisonObject, isElementHidden, formattedTimeYYYYmmdd, formattedTime, getDeviceType, formattedDate, formatEnforcer, formatTime, maskPhone, parseEnforcer };

27
zdxt-web-client/zdxt-efcode-enforcement-app/src/views/enforcement/components/HistoryActivityDetail.vue

@ -52,12 +52,16 @@
</div> </div>
<div class="custom-cell"> <div class="custom-cell">
<span class="custom-cell-label">入企时间</span> <span class="custom-cell-label">入企时间</span>
<span class="custom-cell-value">{{ formattedDate(activityDetail.enforcementTime) }}</span> <span class="custom-cell-value">{{ formatTime(activityDetail.enforcementTime) }}</span>
</div> </div>
<div class="custom-cell"> <div class="custom-cell">
<span class="custom-cell-label">原因</span> <span class="custom-cell-label">原因</span>
<span class="custom-cell-value">{{ activityDetail.reason }}</span> <span class="custom-cell-value">{{ activityDetail.reason }}</span>
</div> </div>
<div class="custom-cell">
<span class="custom-cell-label">原因描述</span>
<span class="custom-cell-value">{{ activityDetail.otherReasons }}</span>
</div>
</div> </div>
</div><!-- 附件 --> </div><!-- 附件 -->
<div class="detail-content"> <div class="detail-content">
@ -82,7 +86,7 @@
<script setup name="HistoryActivityDetail"> <script setup name="HistoryActivityDetail">
import { ref, onMounted } from 'vue'; import { ref, onMounted } from 'vue';
import { useRouter, useRoute } from 'vue-router'; import { useRouter, useRoute } from 'vue-router';
import { formattedDate } from '@/util/util.js'; import { formatTime,parseEnforcer } from '@/util/util.js';
import { queryNonRegistrationDetail } from '@/api/enforcement/index'; import { queryNonRegistrationDetail } from '@/api/enforcement/index';
import { baseUrl } from '@/config/env'; import { baseUrl } from '@/config/env';
@ -90,14 +94,14 @@ const router = useRouter();
const route = useRoute(); const route = useRoute();
// //
const parseEnforcer = (str) => { // const parseEnforcer = (str) => {
if (!str) return { name: '', phone: '' }; // if (!str) return { name: '', phone: '' };
const match = String(str).match(/^(.+?)\s+(\d{7,15})$/); // const match = String(str).match(/^(.+?)\s+(\d{7,15})$/);
if (match) { // if (match) {
return { name: match[1].trim(), phone: match[2] }; // return { name: match[1].trim(), phone: match[2] };
} // }
return { name: String(str).trim(), phone: '' }; // return { name: String(str).trim(), phone: '' };
}; // };
const activityDetail = ref({}); const activityDetail = ref({});
@ -195,7 +199,8 @@ onMounted(() => {
.enforcer-name { .enforcer-name {
display: inline-block; display: inline-block;
min-width: 3em; width: 3em;
flex-shrink: 0;
text-align: justify; text-align: justify;
text-align-last: justify; text-align-last: justify;
} }

13
zdxt-web-client/zdxt-efcode-enforcement-app/src/views/enforcement/components/HistoryActivityList.vue

@ -58,21 +58,10 @@ import { ref } from 'vue';
import { useRouter } from 'vue-router'; import { useRouter } from 'vue-router';
import { queryNonRegistrationList } from '@/api/enforcement/index'; import { queryNonRegistrationList } from '@/api/enforcement/index';
import DateFilterPicker from '@/components/common/DateFilterPicker.vue'; import DateFilterPicker from '@/components/common/DateFilterPicker.vue';
import { formattedDate, formatEnforcer } from '@/util/util.js'; import { formattedDate, formatEnforcer ,parseEnforcer} from '@/util/util.js';
const router = useRouter(); const router = useRouter();
//
// : " 19020811001" -> { name: "", phone: "19020811001" }
// : "" -> { name: "", phone: "" }
const parseEnforcer = (str) => {
if (!str) return { name: '', phone: '' };
const match = String(str).match(/^(.+?)\s+(\d{7,15})$/);
if (match) {
return { name: match[1].trim(), phone: match[2] };
}
return { name: String(str).trim(), phone: '' };
};
const props = defineProps({ const props = defineProps({
enterpriseName: { enterpriseName: {

24
zdxt-web-client/zdxt-efcode-enforcement-app/src/views/enforcement/enforce/enforcementEvaluateDetail.vue

@ -30,12 +30,12 @@
<div class="info-value enforcer-value"> <div class="info-value enforcer-value">
<div class="enforcer-line"> <div class="enforcer-line">
<span class="enforcer-name">{{ detail.lawEnforcer }}</span> <span class="enforcer-name">{{ parseEnforcer(detail.lawEnforcer).name }}</span>
<span v-if="detail.lawEnforcerTel" class="enforcer-id">{{ detail.lawEnforcerTel }}</span> <span v-if="parseEnforcer(detail.lawEnforcer).phone" class="enforcer-id">{{ parseEnforcer(detail.lawEnforcer).phone }}</span>
</div> </div>
<div v-for="(name, index) in detail.lawEnforcerTwo ? detail.lawEnforcerTwo.split(',') : []" :key="index" class="enforcer-line"> <div v-for="(enforcer, index) in detail.lawEnforcer2Show ? detail.lawEnforcer2Show.split(','): detail.lawEnforcer2List" :key="index" class="enforcer-line">
<span class="enforcer-name">{{ name.trim() }}</span> <span class="enforcer-name">{{ parseEnforcer(enforcer).name }}</span>
<span v-if="detail.lawEnforcerTelTwo && detail.lawEnforcerTelTwo.split(',')[index]" class="enforcer-id">{{ detail.lawEnforcerTelTwo.split(',')[index].trim() }}</span> <span v-if="parseEnforcer(enforcer).phone" class="enforcer-id">{{ parseEnforcer(enforcer).phone }}</span>
</div> </div>
</div> </div>
</div> </div>
@ -209,21 +209,9 @@ import {
} from '@/api/enforcement'; } from '@/api/enforcement';
import { loadDict, getDictText } from '@/util/dictUtil'; import { loadDict, getDictText } from '@/util/dictUtil';
import { baseUrl } from '@/config/env'; import { baseUrl } from '@/config/env';
import { formatEnforcer, formatTime } from '@/util/util'; import { formatEnforcer, formatTime, parseEnforcer } from '@/util/util';
const router = useRouter(); const router = useRouter();
const route = useRoute(); const route = useRoute();
//
const parseEnforcer = (str) => {
if (!str) return { name: '', phone: '' };
const match = String(str).match(/^(.+?)\s+(\d{7,15})$/);
if (match) {
return { name: match[1].trim(), phone: match[2] };
}
return { name: String(str).trim(), phone: '' };
};
const id = route.query.id; const id = route.query.id;
// hasEvaluate=1 0 // hasEvaluate=1 0
const readonly = computed(() => { const readonly = computed(() => {

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

@ -13,7 +13,7 @@
<!-- 列表项 --> <!-- 列表项 -->
<div class="card-item" v-for="item in list" :key="item.id"> <div class="card-item" v-for="item in list" :key="item.id">
<div class="card-header"> <div class="card-header">
<span class="card-time">执法时间{{ formatDate(item.enforcementTime) }}</span> <span class="card-time">执法时间{{ formatTime(item.enforcementTime) }}</span>
<span class="card-status" v-if="item.hasUnion === 1"></span> <span class="card-status" v-if="item.hasUnion === 1"></span>
</div> </div>
<div class="card-divider"></div> <div class="card-divider"></div>
@ -61,7 +61,7 @@ import { useRouter } from 'vue-router';
import { showToast } from 'vant'; import { showToast } from 'vant';
import 'vant/es/toast/style'; import 'vant/es/toast/style';
import { queryEnforcementRegistrationPageList } from '@/api/enforcement'; import { queryEnforcementRegistrationPageList } from '@/api/enforcement';
import { formatEnforcer, parseEnforcer } from '@/util/util'; import { formatEnforcer, parseEnforcer, formatTime } from '@/util/util';
import SearchFilterBar from '@/components/common/SearchFilterBar.vue'; import SearchFilterBar from '@/components/common/SearchFilterBar.vue';
const router = useRouter(); const router = useRouter();

6
zdxt-web-client/zdxt-efcode-enforcement-app/src/views/enforcement/enforce/enforcementRegister.vue

@ -73,7 +73,6 @@ const isSignMode = ref(false);
// //
const isScanMode = ref(false); const isScanMode = ref(false);
// //
const showReason = computed(() => { const showReason = computed(() => {
return !isScanMode.value; return !isScanMode.value;
@ -391,7 +390,7 @@ const getCurrentDateTime = () => {
lawEnforcementBasisText: formData.enforcementBases ? formData.enforcementBases.join(',') : '', lawEnforcementBasisText: formData.enforcementBases ? formData.enforcementBases.join(',') : '',
fileList: buildFileList(), fileList: buildFileList(),
userId: useCommon.userId || '', userId: useCommon.userId || '',
enforceReason: formData.reason || '', reason: formData.reason || '',
otherReasons: formData.otherReasons || '', otherReasons: formData.otherReasons || '',
checkCss: formData.checkCss || '0', checkCss: formData.checkCss || '0',
}; };
@ -541,9 +540,9 @@ const onSubmit = () => {
showSuccessToast('提交成功'); showSuccessToast('提交成功');
sessionStorage.removeItem('enterpriseScanData'); sessionStorage.removeItem('enterpriseScanData');
sessionStorage.removeItem('outOfCityEnterprise'); sessionStorage.removeItem('outOfCityEnterprise');
sessionStorage.removeItem('scanReason');
if (isNonEnforcement.value) { if (isNonEnforcement.value) {
// //
showReason.value = true;
router.replace({ router.replace({
path: '/enforcement/enterpriseScanPreview', path: '/enforcement/enterpriseScanPreview',
query: { query: {
@ -553,6 +552,7 @@ const onSubmit = () => {
} }
}); });
} else { } else {
sessionStorage.removeItem('scanReason');
router.replace('/enforcement/enforcementList'); router.replace('/enforcement/enforcementList');
} }
} else { } else {

22
zdxt-web-client/zdxt-efcode-enforcement-app/src/views/enforcement/message/enforcementEvaluateList.vue

@ -22,7 +22,7 @@
<div class="evaluate-card" v-for="item in list" :key="item.id" @click="toDetail(item)"> <div class="evaluate-card" v-for="item in list" :key="item.id" @click="toDetail(item)">
<!-- 执法时间 --> <!-- 执法时间 -->
<div class="card-time"> <div class="card-time">
执法时间{{ item.enforcementTime }} 执法时间{{ formatTime(item.enforcementTime) }}
</div> </div>
<!-- 标题 --> <!-- 标题 -->
@ -36,11 +36,16 @@
</div> </div>
<div class="info-row"> <div class="info-row">
<span class="label">执法人员</span> <span class="label">执法人员</span>
<div>
<div v-for="(enforcer, index) in formatEnforcer(item)" :key="index" <div class="enforcer-list">
<div class="enforcer-item">
<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="(enforcer, index) in item.lawEnforcer2List || []" :key="index"
class="enforcer-item"> class="enforcer-item">
<span class="enforcer-name">{{ enforcer.name }}</span> <span class="enforcer-name">{{ parseEnforcer(enforcer).name }}</span>
<span v-if="enforcer.id" class="enforcer-id">{{ enforcer.id }}</span> <span v-if="parseEnforcer(enforcer).phone" class="enforcer-id">{{ parseEnforcer(enforcer).phone }}</span>
</div> </div>
</div> </div>
</div> </div>
@ -54,7 +59,7 @@
<div class="card-footer"> <div class="card-footer">
<span class="status">状态<span :class="getStatusClass(item.hasEvaluate)">{{ <span class="status">状态<span :class="getStatusClass(item.hasEvaluate)">{{
getStatusText(item.hasEvaluate) }}</span></span> getStatusText(item.hasEvaluate) }}</span></span>
<span class="evaluate-time">反馈时间{{ item.evaluateTime }}</span> <span class="evaluate-time">反馈时间{{ formatTime(item.evaluateTime) }}</span>
</div> </div>
</div> </div>
</van-list> </van-list>
@ -69,7 +74,7 @@ import { useRouter } from 'vue-router';
import { showToast } from 'vant'; import { showToast } from 'vant';
import 'vant/es/toast/style'; import 'vant/es/toast/style';
import { queryEvaluateList } from '@/api/enforcement/index'; import { queryEvaluateList } from '@/api/enforcement/index';
import { formatEnforcer } from '@/util/util'; import { formatEnforcer, formatTime,parseEnforcer } from '@/util/util';
import SearchFilterBar from '@/components/common/SearchFilterBar.vue'; import SearchFilterBar from '@/components/common/SearchFilterBar.vue';
const router = useRouter(); const router = useRouter();
@ -309,6 +314,9 @@ onMounted(() => {
color: #333; color: #333;
word-break: break-all; word-break: break-all;
} }
.enforcer-list{
color: #333;
}
} }
.card-footer { .card-footer {

Loading…
Cancel
Save