Browse Source

行政检查通知修改,补充再次发起按钮

v3
chenrui 2 years ago
parent
commit
61096a9332
  1. 2
      src/api/enterprise.js
  2. 4
      src/components/footer-enforcement-nav/index.vue
  3. 9
      src/router/enforceHome.js
  4. 7
      src/util/fileUpload.js
  5. 193
      src/views/administrative/appointmentBase.vue
  6. 74
      src/views/administrative/appointmentDetail.vue
  7. 37
      src/views/administrative/appointmentList.vue
  8. 14
      src/views/enforce/enforcementPlanAdd.vue
  9. 5
      src/views/enforce/enterpriseBaseInfo.vue
  10. 4
      src/views/enterprise/registrationList.vue

2
src/api/enterprise.js

@ -8,6 +8,8 @@ export const queryEnterpriseInformationQrCode = (enterpriseNumber, success, erro
//查询企业执法登记列表 //查询企业执法登记列表
export const queryRegistrationList = (params, success, error) => _get("/app/code/registration/queryList",params,success,error) export const queryRegistrationList = (params, success, error) => _get("/app/code/registration/queryList",params,success,error)
//查询企业执法登记列表-企业端修改联合检查查询语句
export const queryEnterpriseList = (params, success, error) => _get("/app/code/registration/queryEnterpriseList",params,success,error)
//查询企业执法登记列表 - 剔除执法日期距离今天超过5天的执法记录 //查询企业执法登记列表 - 剔除执法日期距离今天超过5天的执法记录
export const queryRegistrationList2 = (params, success, error) => _get("/app/code/registration/queryList2",params,success,error) export const queryRegistrationList2 = (params, success, error) => _get("/app/code/registration/queryList2",params,success,error)

4
src/components/footer-enforcement-nav/index.vue

@ -1,6 +1,6 @@
<template> <template>
<div class="footer_nav"> <div class="footer_nav">
<van-tabbar class="footer-bar" v-model="data.footerActive" :route="true" safe-area-inset-bottom> <van-tabbar class="footer-bar" v-model="data.footerActive" :route="true" >
<van-tabbar-item name="Home" replace icon="wap-home" to="/enforceHome">{{ <van-tabbar-item name="Home" replace icon="wap-home" to="/enforceHome">{{
$t("common.lang_home") $t("common.lang_home")
}}</van-tabbar-item> }}</van-tabbar-item>
@ -9,7 +9,7 @@
name="plan" name="plan"
replace replace
icon="clock" icon="clock"
to="/appointmentList" to="/appointmentBase"
>预告</van-tabbar-item >预告</van-tabbar-item
> >
<van-tabbar-item <van-tabbar-item

9
src/router/enforceHome.js

@ -109,6 +109,15 @@ const routes = [
meta: { meta: {
isKeepAlive: false isKeepAlive: false
}, },
},
//行政检查预告页面
{
path:"/appointmentBase",
name:"appointmentBase",
component: () => import("@/views/administrative/appointmentBase.vue"),
meta: {
isKeepAlive: false
},
}, },
] ]

7
src/util/fileUpload.js

@ -1,7 +1,11 @@
import {_form, _post} from '../http/index' import {_form, _post} from '../http/index'
import { baseUrl } from "../config/env"; import { baseUrl } from "../config/env";
import axios from 'axios'; import axios from 'axios';
const http = axios.create({
traditional: true,
contentType : "application/json",
timeout: 1000 * 500000, // 1 秒
});
const uploadFile = (files,callback) => { const uploadFile = (files,callback) => {
files.status = "uploading"; files.status = "uploading";
files.message = "上传中..."; files.message = "上传中...";
@ -10,6 +14,7 @@ const uploadFile = (files,callback) => {
// 需要使用 FormData 进行文件上传 // 需要使用 FormData 进行文件上传
let form = new FormData(); let form = new FormData();
form.append("file", files.file); form.append("file", files.file);
axios({ axios({
method: "post", method: "post",
url: baseUrl+ "/common/upload", url: baseUrl+ "/common/upload",

193
src/views/administrative/appointmentBase.vue

@ -0,0 +1,193 @@
<template>
<div class="home app_content">
<!-- 中间 -->
<!-- <div class="warp_body">-->
<!-- <div class="white-body">-->
<!-- <div class="tabs">-->
<!-- <ul>-->
<!-- <li v-for='(item,index) in data.list' @click='check(index)'-->
<!-- :class="{ active: index === data.TabId }">-->
<!-- <span v-if="index === 0"> {{item.title}}</span>-->
<!-- <span v-else-if="index === 1" class="warn-tab"> {{item.title}}</span>-->
<!-- </li>-->
<!-- </ul>-->
<!-- </div>-->
<!-- <div v-if="data.TabId == 0">-->
<!-- <enterpriseInspectionList isReg="0"></enterpriseInspectionList>-->
<!-- </div>-->
<!-- <div v-if="data.TabId == 1">-->
<!-- <enterpriseInspectionList isReg="1"></enterpriseInspectionList>-->
<!-- </div>-->
<!-- </div>-->
<!-- </div>-->
<van-tabs v-model:active="active" sticky @click-tab="onClickTab">
<van-tab v-for="(item, index) in data.list" :title="item.title">
<div v-if="data.TabId == 0" style="height: calc(100vh - 1.5rem);">
<appointmentList :isReg="0" />
</div>
<div v-if="data.TabId == 1" style="height: calc(100vh - 1.5rem);">
<appointmentList :isReg="1" />
</div>
</van-tab>
</van-tabs>
</div>
</template>
<script setup name="complaintBase">
import appointmentList from '@/views/administrative/appointmentList.vue';
const {useCommon} = $globalStore;
//路由参数
const router = useRouter();
const route = useRoute();
//tab切换
const active = ref(0);
const data = reactive({
status: 0,
TabId: 0,
list: [
{
title: '实时检查预告',
value: '0'
},
{
title: '历史预告记录',
value: '1'
},
],
});
const onClickTab = ({ title }) => {
if(title == '实时检查预告'){
data.TabId = 0;
}else{
data.TabId = 1;
}
};
onMounted(() => {
})
</script>
<style lang="less" scoped>
.home {
display: flex;
flex-direction: column;
height: 100%;
overflow: hidden;
background-color: #ebf3fb;
.warp_body {
position: relative;
background-image: linear-gradient(to bottom, #ebf3fb, transparent);
}
.white-body {
margin: 0 3%;
width: 94%;
height: 99%;
background-color: #fff;
border-radius: 0.27rem;
}
}
.tohome {
position: absolute;
top: 1.25%;
right: 5%;
font-size: 0.5rem;
}
.tabs {
padding: 3% 3% 0;
width: 94%;
height: 1.25rem;
box-sizing: content-box;
}
.tabs ul {
display: flex;
width: 100%;
height: 100%;
font-size: 0.4rem;
line-height: 1.25rem;
text-align: center;
align-content: center;
justify-items: center;
}
.tabs ul li {
float: left;
width: 50%;
height: 100%;
}
.tabs ul li span {
display: block;
width: 100%;
height: 100%;
color: #4aa1f9;
background: url("src/assets/images/tab_bg1_1.png") no-repeat;
background-size: 100% 100%;
}
.tabs ul li.active span {
background: url("src/assets/images/tab_bg1.png") no-repeat;
background-size: 100% 100%;
color: #fff;
}
.tabs ul li span.warn-tab {
margin-left: -2%;
background: url("src/assets/images/tab_bg.png") no-repeat;
background-size: 100% 100%;
}
.tabs ul li.active span.warn-tab {
background: url("src/assets/images/tab_bg_1.png") no-repeat;
background-size: 100% 100%;
color: #fff;
}
.tabs ul li span.level1 {
background: url("src/assets/images/tab_shine_red.gif") no-repeat !important;
background-size: 100% 100% !important;
color: #fff !important;
}
.tabs ul li span.level2 {
background: url("src/assets/images/tab_shine_org.gif") no-repeat !important;
background-size: 100% 100% !important;
color: #fff !important;
}
.tabs ul li span.level3 {
background: url("src/assets/images/tab_shine_yel.gif") no-repeat !important;
background-size: 100% 100% !important;
color: #fff !important;
}
.addinfo {
position: absolute;
bottom: 3%;
right: 2%;
z-index: 99999;
width: 1.5rem;
height: 1.5rem;
background-color: #1367fe;
border-radius: 50%;
box-shadow: 0 0 0.27rem #1367fe;
color: #fff;
font-size: 0.4rem;
text-align: center;
vertical-align: middle;
padding-top: 0.45rem;
box-sizing: border-box;
}
</style>

74
src/views/administrative/appointmentDetail.vue

@ -105,7 +105,7 @@
</div> </div>
<van-action-bar v-if="submitData.isReg != 1 && submitData.status != 1 && submitData.status != 3"> <van-action-bar v-if="submitData.isReg != 1 && submitData.status != 1 && submitData.status != 3">
<van-button round block type="info" native-type="submit" @click="cancel">取消</van-button> <van-button round block type="info" native-type="submit" @click="data.showIsCancel = true">取消</van-button>
</van-action-bar> </van-action-bar>
</van-cell-group> </van-cell-group>
</van-form> </van-form>
@ -139,6 +139,14 @@
<DeptPopup :visible="data.deptChecked" :content="data.deptContent" @close="closePopup" <DeptPopup :visible="data.deptChecked" :content="data.deptContent" @close="closePopup"
@reciveData="reciveDept"/> @reciveData="reciveDept"/>
<div class="van-overlay" v-show="data.showIsCancel">
<div class="popcont">
<div class="poptip">确认取消该行政检查通知?</div>
<div class="popup-btn">
<a @click="cancel(0)">取消</a><a @click="cancel(1)">确认</a>
</div>
</div>
</div>
</div> </div>
</template> </template>
@ -153,13 +161,13 @@
editEnterpriseLawEnforcementDeputyOrder, editEnterpriseLawEnforcementDeputyOrder,
getByIdToDataFillIn, getByIdToDataFillIn,
cancelEnterpriseLawEnforcement cancelEnterpriseLawEnforcement
} from '../../api/administrative' } from '@/api/administrative'
import {queryUserInfo} from '../../api/enforce' import {queryUserInfo} from '../../api/enforce'
import { queryEnterpriseInfoList } from '../../api/enterprise' import { queryEnterpriseInfoList } from '@/api/enterprise'
import { reactive, ref } from "vue"; import { reactive, ref } from "vue";
import { getDict } from "../../api/Home"; import { getDict } from "@/api/Home";
import { queryLinkage, queryLinkageDictByValueAndParentId } from "../../api/linkage"; import { queryLinkage, queryLinkageDictByValueAndParentId } from "@/api/linkage";
import {uploadFile} from "../../util/fileUpload"; import {uploadFile} from "@/util/fileUpload";
//用户筛选弹窗 //用户筛选弹窗
import UserPopup from './userFilter.vue'; import UserPopup from './userFilter.vue';
import DeptPopup from './deptFilter.vue'; import DeptPopup from './deptFilter.vue';
@ -187,6 +195,7 @@
mainDeputyOrder: 1, mainDeputyOrder: 1,
lawCerFlag: 0, lawCerFlag: 0,
lawCer:[{ text:"", id:"", show:"", num:"" }], lawCer:[{ text:"", id:"", show:"", num:"" }],
showIsCancel: ref(false)
}); });
//保存参数 //保存参数
const submitData = reactive({ const submitData = reactive({
@ -300,10 +309,15 @@
} }
} }
const cancel = () => { const cancel = (val) => {
if(val == 0){
data.showIsCancel = false;
return;
}else{
cancelEnterpriseLawEnforcement(route?.query?.id,success =>{ cancelEnterpriseLawEnforcement(route?.query?.id,success =>{
router.go(-1); router.go(-1);
}); });
}
}; };
/* 检查要求 start */ /* 检查要求 start */
@ -740,4 +754,50 @@
border-bottom: 1px solid #f6f7f8; border-bottom: 1px solid #f6f7f8;
} }
.popcont {
position: absolute;
z-index: 100;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
padding: 5% 3% 0;
width: 70%;
height: 4rem;
background: linear-gradient(to bottom, #d6e7f9, #fff);
border-radius: 0.35rem;
}
.poptip {
margin: 0.3rem;
min-height: 1.25rem;
font-size: 0.4rem;
font-weight: 600;
text-align: center;
//border-bottom: 1px solid #eee;
}
.popup-btn {
display: flex;
align-items: center;
justify-content: space-between;
margin: 2% auto 0;
width: 90%;
height: 1.5rem;
}
.popup-btn a {
width: 45%;
color: #333;
font-size: 0.37rem;
line-height: 2.5;
text-align: center;
border: 1px solid #ddd;
border-radius: 1rem;
}
.popup-btn a:last-child {
background-color: #1367fe;
color: #fff;
border-color: #1367fe;
}
</style> </style>

37
src/views/administrative/appointmentList.vue

@ -1,15 +1,21 @@
<template> <template>
<div class="home app_content"> <div class="shop app_content">
<!-- 导航栏 --> <!-- 导航栏 -->
<!-- <div class="header_body"> <!-- <div class="header_body">
<header-nav :leftArrow="false" titelText="行政检查预约"/> <header-nav :leftArrow="false" titelText="行政检查预约"/>
</div>--> </div>-->
<van-search v-model="searchParam.searchValue" show-action placeholder="检查事项/执法部门/企业名称 " @search="onSearch"> <van-search
v-model="searchParam.searchValue"
show-action placeholder="执法事项/执法部门/企业名称"
clearable="true"
clear-icon="clear"
clear-trigger="always"
@search="onSearch">
<template #action> <template #action>
<div @click="onClickButton">搜索</div> <div @click="onClickButton">搜索</div>
</template> </template>
</van-search> </van-search>
<div class="search-button-list"> <div class="search-button-list" v-if="isReg == 1">
<van-button plain hairline :class="null==data.checkNum?'search-button active':'search-button'" @click="searchDateType(null)" round type="primary" size="mini"> <van-button plain hairline :class="null==data.checkNum?'search-button active':'search-button'" @click="searchDateType(null)" round type="primary" size="mini">
全部 全部
</van-button> </van-button>
@ -31,7 +37,7 @@
<van-button class="search-button" @click="goAdd" type="primary" size="mini">创建</van-button> <van-button class="search-button" @click="goAdd" type="primary" size="mini">创建</van-button>
<van-popup v-model:show="data.showDatePicker" position="bottom"> <van-popup v-model:show="data.showDatePicker" position="bottom">
<van-date-picker <van-date-picker
title="选择月度" title="选择日期"
v-model="data.currentDate" v-model="data.currentDate"
:min-date="data.minDate" :min-date="data.minDate"
:max-date="data.maxDate" :max-date="data.maxDate"
@ -79,8 +85,9 @@
<p v-if="item.isReg == 0"><label class="card_box_label">执法状态:</label> <span>未登记</span></p> <p v-if="item.isReg == 0"><label class="card_box_label">执法状态:</label> <span>未登记</span></p>
<p v-if="item.isReg == 1"><label class="card_box_label">执法状态:</label> <span>已登记</span></p> <p v-if="item.isReg == 1"><label class="card_box_label">执法状态:</label> <span>已登记</span></p>
</div> </div>
<div class="btn-list" v-if="item.isReg != 1 && item.status != 1 && item.status != 3"> <div class="btn-list" >
<a @click.stop="toEditView(item.id)"><van-icon name="edit" />编辑</a> <a v-if="item.isReg != 1 && item.status != 1 && item.status != 3" @click.stop="toEditView(item.id)"><van-icon name="edit" />编辑</a>
<a v-if="item.isReg == 1" @click.stop="toEditView(item.id)"><van-icon name="edit" />再次发起</a>
</div> </div>
</div> </div>
</div> </div>
@ -99,13 +106,21 @@
<script setup name="registrationList"> <script setup name="registrationList">
import {showToast} from "vant"; import {showToast} from "vant";
import {queryEnterpriseLawEnforcementList, queryTotal} from '../../api/administrative'; import {queryEnterpriseLawEnforcementList, queryTotal} from '@/api/administrative';
import {setGoodsNum} from "@/util/util"; import {setGoodsNum} from "@/util/util";
import {getDict} from "../../api/Home"; import {getDict} from "@/api/Home";
import {queryLinkage, queryLinkageById, queryLinkageDictByValueAndParentId} from "@/api/linkage"; import {queryLinkage, queryLinkageById, queryLinkageDictByValueAndParentId} from "@/api/linkage";
import {formattedTimeYYYYmmdd} from "@/util/util"; import {formattedTimeYYYYmmdd} from "@/util/util";
import {ref,defineEmits,defineProps } from 'vue';
const {useCommon, useShopCard} = $globalStore; const {useCommon, useShopCard} = $globalStore;
//接受组件参数
const props = defineProps({
isReg: {
type: Object,
default: 0
}
})
const router = useRouter(); const router = useRouter();
let allchecked = ref(false); // 是否全选 let allchecked = ref(false); // 是否全选
@ -132,6 +147,7 @@
lawEnforcerId: ref(useCommon.userId), lawEnforcerId: ref(useCommon.userId),
//日期搜索 //日期搜索
searchDate: ref(), searchDate: ref(),
isReg: ref(),
}); });
const data = reactive({ const data = reactive({
@ -168,6 +184,7 @@
data.curPage = 1; data.curPage = 1;
data.dateSearch = nowDate(new Date()); data.dateSearch = nowDate(new Date());
isLodding.value = false; isLodding.value = false;
searchParam.isReg = props?.isReg;
}); });
const getLinkageByParentIdToItem = (parentId) => { const getLinkageByParentIdToItem = (parentId) => {
@ -394,7 +411,7 @@
</script> </script>
<style lang="less" scoped> <style lang="less" scoped>
.home { .shop {
height: 100%; height: 100%;
display: flex; display: flex;
flex-direction: column; flex-direction: column;

14
src/views/enforce/enforcementPlanAdd.vue

@ -90,6 +90,7 @@
readonly readonly
:rules="[{ required: true, message: '请选择执法部门'}]" :rules="[{ required: true, message: '请选择执法部门'}]"
/> />
<!-- @click="selectEnforcementTime" -->
<van-field <van-field
v-model="submitData.enforcementTime" v-model="submitData.enforcementTime"
label="上传时间" label="上传时间"
@ -99,7 +100,7 @@
readonly readonly
required required
:rules="[{ required: true, message: '请选择上传时间'}]" :rules="[{ required: true, message: '请选择上传时间'}]"
@click="selectEnforcementTime"
/> />
<van-popup v-model:show="data.showPicker" position="bottom"> <van-popup v-model:show="data.showPicker" position="bottom">
<van-date-picker <van-date-picker
@ -140,13 +141,13 @@
</van-form> </van-form>
</div> </div>
<div class="van-overlay" v-show="data.showIsPublish"> <div class="van-overlay" v-show="data.showIsPublish">
<div class="popcont"> <div class="popcont">
<div class="poptip">是否公布该行政检查计划?</div> <div class="poptip">是否公布该行政检查计划?</div>
<div class="popup-btn"> <div class="popup-btn">
<a @click="addPlan(0)">取消</a><a @click="addPlan(1)">确认</a> <a @click="addPlan(0)">取消</a><a @click="addPlan(1)">确认</a>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
</template> </template>
@ -155,8 +156,9 @@
import {showToast, showSuccessToast, showLoadingToast, closeToast} from 'vant'; import {showToast, showSuccessToast, showLoadingToast, closeToast} from 'vant';
import {addEnforcementInspectionProgram, queryUserInfo} from '@/api/enforce' import {addEnforcementInspectionProgram, queryUserInfo} from '@/api/enforce'
import {getDict} from '../../api/Home' import {getDict} from '@/api/Home'
import {uploadFile} from '../../util/fileUpload' import {uploadFile} from '@/util/fileUpload'
import {formattedTime, formattedTimeYYYYmmdd} from "@/util/util";
import {reactive, ref} from "vue"; import {reactive, ref} from "vue";
import {showConfirmDialog} from 'vant'; import {showConfirmDialog} from 'vant';
@ -203,7 +205,7 @@
//执法部门ID //执法部门ID
enforcementDepartmentId: "", enforcementDepartmentId: "",
//执法时间 //执法时间
enforcementTime: "", enforcementTime: formattedTime(new Date()),
//执法区域 //执法区域
enforcementArea: "", enforcementArea: "",
//是否发布年度执法计划 //是否发布年度执法计划

5
src/views/enforce/enterpriseBaseInfo.vue

@ -190,11 +190,11 @@
import 'vant/es/toast/style'; import 'vant/es/toast/style';
import {addEnforcementRegistration, queryUserInfo, queryRegistrationList} from '@/api/enforce' import {addEnforcementRegistration, queryUserInfo, queryRegistrationList} from '@/api/enforce'
import {getEnterpriseInformation, queryXzjcjbxxList, queryQZAJList, queryCFAJList} from '@/api/enterprise' import {getEnterpriseInformation, queryXzjcjbxxList, queryQZAJList, queryCFAJList} from '@/api/enterprise'
import {getDict} from '../../api/Home' import {getDict} from '@/api/Home'
import {reactive, ref} from "vue"; import {reactive, ref} from "vue";
import {formattedTimeYYYYmmdd} from "@/util/util"; import {formattedTimeYYYYmmdd} from "@/util/util";
import {format} from 'date-fns'; import {format} from 'date-fns';
import {uploadFile} from "../../util/fileUpload"; import {uploadFile} from "@/util/fileUpload";
//用户筛选弹窗 //用户筛选弹窗
import Popup from './userFilter.vue'; import Popup from './userFilter.vue';
@ -300,7 +300,6 @@
// data.enterpriseInfo.operatingTerm = success.data.operatingTerm // data.enterpriseInfo.operatingTerm = success.data.operatingTerm
var tmpoperatingTerm = success.data.operatingTerm; var tmpoperatingTerm = success.data.operatingTerm;
var tmpoperatingTermEnd = success.data.operatingTermEnd; var tmpoperatingTermEnd = success.data.operatingTermEnd;
debugger
if(tmpoperatingTermEnd == null || tmpoperatingTermEnd == "undefined"){ if(tmpoperatingTermEnd == null || tmpoperatingTermEnd == "undefined"){
tmpoperatingTerm = tmpoperatingTerm + " 至 " + "无固定期限"; tmpoperatingTerm = tmpoperatingTerm + " 至 " + "无固定期限";
}else{ }else{

4
src/views/enterprise/registrationList.vue

@ -137,7 +137,7 @@
</template> </template>
<script setup name="registrationList"> <script setup name="registrationList">
import {queryRegistrationList} from '../../api/enterprise'; import {queryEnterpriseList} from '@/api/enterprise';
import {queryLinkage, queryLinkageById, queryLinkageDictByValueAndParentId} from "@/api/linkage"; import {queryLinkage, queryLinkageById, queryLinkageDictByValueAndParentId} from "@/api/linkage";
import {setGoodsNum} from "@/util/util"; import {setGoodsNum} from "@/util/util";
@ -220,7 +220,7 @@
return; return;
} }
searchParam.pageNum = (data.curPage - 1) * searchParam.pageSize; searchParam.pageNum = (data.curPage - 1) * searchParam.pageSize;
queryRegistrationList(searchParam, success => { queryEnterpriseList(searchParam, success => {
console.log("---- ",success.rows); console.log("---- ",success.rows);
data.curPage++; data.curPage++;
data.loading = false; // 查出结果停止加载 data.loading = false; // 查出结果停止加载

Loading…
Cancel
Save