Browse Source

修改完善

master
蟑螂恶霸 3 years ago
parent
commit
04a2ba0676
  1. 4
      src/api/user.js
  2. 2
      src/views/administrative/appointment.vue
  3. 14
      src/views/administrative/appointmentList.vue
  4. 8
      src/views/enforce/earlyWarning.vue
  5. 132
      src/views/enforce/sign.vue
  6. 236
      src/views/enforce/userFilter.vue

4
src/api/user.js

@ -0,0 +1,4 @@
import { _get, _post,_form,_delete } from "../http/index";
//查询用户列表
export const queryUsers = (params, success, error) => _post("/system/user/listApp",params,success,error)

2
src/views/administrative/appointment.vue

@ -104,7 +104,7 @@ import {addEnterpriseLawEnforcement} from '../../api/administrative'
import {queryUserInfo} from '../../api/enforce' import {queryUserInfo} from '../../api/enforce'
import { reactive, ref } from "vue"; import { reactive, ref } from "vue";
import {uploadFile} from "../../util/fileUpload"; import {uploadFile} from "../../util/fileUpload";
const { useMy } = $globalStore const { useMy, useCommon, useShopCard } = $globalStore;
const router = useRouter(); const router = useRouter();
let queryaddressId = ref(""); let queryaddressId = ref("");

14
src/views/administrative/appointmentList.vue

@ -3,7 +3,7 @@
<div class="shop app_content"> <div class="shop app_content">
<!-- 导航栏 --> <!-- 导航栏 -->
<div class="header_body"> <div class="header_body">
<header-nav :slefBack="true" @goBack="goBack" :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="手机号/登记号/企业名称" @search="onSearch">
<template #action> <template #action>
@ -55,13 +55,13 @@
<p style="font-size: 16px;font-weight: bold;">{{ item.checkItem }}</p> <p style="font-size: 16px;font-weight: bold;">{{ item.checkItem }}</p>
</div> </div>
<div class="card_box_span"> <div class="card_box_span">
<p><span class="card_box_label">登记编号:</span> {{ item.lawEnforcement }}</p> <p><span class="card_box_label">登记编号:</span> {{ item.lawEnforcementCode }}</p>
</div> </div>
<div class="card_box_span"> <div class="card_box_span">
<p><span class="card_box_label">执法部门:</span> {{ item.lawEnforcer }}</p> <p><span class="card_box_label">执法部门:</span> {{ item.lawEnforcement }}</p>
</div> </div>
<div class="card_box_span"> <div class="card_box_span">
<p><span class="card_box_label">企业名称:</span> {{ item.remark }}</p> <p><span class="card_box_label">企业名称:</span> {{ item.enterpriseName }}</p>
</div> </div>
</div> </div>
</van-swipe-cell> </van-swipe-cell>
@ -73,9 +73,9 @@
</div> </div>
<!-- 底部 --> <!-- 底部 -->
<!-- <div class="shop_footer_body">--> <div class="shop_footer_body">
<!-- <footer-nav></footer-nav>--> <footer-nav></footer-nav>
<!-- </div>--> </div>
</div> </div>
</template> </template>

8
src/views/enforce/earlyWarning.vue

@ -3,7 +3,7 @@
<div class="shop app_content"> <div class="shop app_content">
<!-- 导航栏 --> <!-- 导航栏 -->
<div class="header_body"> <div class="header_body">
<header-nav :slefBack="true" @goBack="goBack" :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="企业名称" @search="onSearch">
<template #action> <template #action>
@ -66,9 +66,9 @@
</div> </div>
<!-- 底部 --> <!-- 底部 -->
<!-- <div class="shop_footer_body">--> <div class="shop_footer_body">
<!-- <footer-nav></footer-nav>--> <footer-nav></footer-nav>
<!-- </div>--> </div>
</div> </div>
</template> </template>

132
src/views/enforce/sign.vue

@ -5,8 +5,9 @@
<header-nav :slefBack="true" @goBack="goBack" :titelText="`执法信息登记`"></header-nav> <header-nav :slefBack="true" @goBack="goBack" :titelText="`执法信息登记`"></header-nav>
</div> </div>
<!-- 中间 --> <!-- 中间 -->
<div> <div class="warp_body">
<van-form @failed="onFailed" @submit="submit"> <van-form @failed="onFailed" @submit="submit">
<van-cell-group>
<div style="font-size:large" class="zf-name">执法信息</div> <div style="font-size:large" class="zf-name">执法信息</div>
<van-field <van-field
v-model="submitData.lawEnforcement" v-model="submitData.lawEnforcement"
@ -24,7 +25,7 @@
readonly readonly
placeholder="请选择" placeholder="请选择"
right-icon="add-o" right-icon="add-o"
@click="data.showLawEnforcerFlag = true" @click="showPopup"
/> />
<van-field <van-field
v-model="submitData.subsidiaryer" v-model="submitData.subsidiaryer"
@ -32,7 +33,7 @@
readonly readonly
placeholder="请选择" placeholder="请选择"
right-icon="add-o" right-icon="add-o"
@click="data.showLawEnforcerFlag = true" @click="showPopup2"
/> />
<van-field <van-field
v-model="submitData.lawEnforcementItem" v-model="submitData.lawEnforcementItem"
@ -72,26 +73,27 @@
show-word-limit show-word-limit
/> />
<div style="padding-top: 15px;"> <van-divider class="divdsty" />
<div style="font-size:medium; padding-left: 15px; display: flex; justify-content: space-between;">
<div style="color: rgb(50, 50, 51);">相关附件 <span>(不多于9份)</span></div> <div class="file-upload">
<div style="padding-right: 15px; font-size: 20px; color: rgb(150, 151, 153);"><van-icon name="add-o" /></div> <div class="file-upload-center">
<label>上传附件</label> <span>(不多于9张)</span>
</div> </div>
<van-uploader v-model="submitData.fileListObj" accept="" class="file" multiple :max-size="500 * 1024" :after-read="uploadFiles" :before-delete="deleteFile"> <van-uploader v-model="submitData.fileListObj" accept="" class="file" multiple :max-size="500 * 1024" :after-read="uploadFiles" :before-delete="deleteFile">
<template #preview-cover="{ file }"> <template #preview-cover="{ file }">
<div class="preview-cover van-ellipsis">{{ file.name }}</div> <div class="preview-cover van-ellipsis">{{ file.name }}</div>
</template> </template>
</van-uploader> </van-uploader>
</div> </div>
</van-cell-group>
<van-divider class="divdsty" />
<div style="padding-top: 20px;">
<van-cell-group> <van-cell-group>
<div style="font-size:large" class="qy-name">企业信息</div> <div style="padding-top:10px; font-size:large" class="qy-name">企业信息</div>
<van-field <van-field
v-model="submitData.enterpriseName" v-model="submitData.enterpriseName"
required required
readonly
label="企业名称" label="企业名称"
:rules="[{ required: true, message: '必填项' }]" :rules="[{ required: true, message: '必填项' }]"
placeholder="必填 企业名称" placeholder="必填 企业名称"
@ -99,29 +101,20 @@
<van-field <van-field
v-model="submitData.enterpriseNumber" v-model="submitData.enterpriseNumber"
required required
readonly
label="统一信用码" label="统一信用码"
:rules="[{ required: true, message: '必填项' }]" :rules="[{ required: true, message: '必填项' }]"
placeholder="必填 纳税人识别号" placeholder="必填 纳税人识别号"
/> />
</van-cell-group> </van-cell-group>
</div>
<div class="warp_body">
<van-action-bar> <van-action-bar>
<van-button round block color="#be99ff" type="info" native-type="submit">提交</van-button> <van-button round block color="#be99ff" type="info" native-type="submit">提交</van-button>
</van-action-bar> </van-action-bar>
</div>
</van-form> </van-form>
</div> </div>
<!-- <div class="warp_body">--> <Popup :visible="data.popupVisible" :content="data.popupContent" @close="closePopup" @reciveData="reciveData" />
<!-- <van-action-bar>--> <Popup :visible="data.popupVisible2" :content="data.popupContent2" @close="closePopup" @reciveData="reciveData2" />
<!-- <van-action-bar-button color="#be99ff" text="保存" @click="submit" />-->
<!-- </van-action-bar>-->
<!-- </div>-->
<van-popup v-model:show="data.showLawEnforcerFlag" position="bottom" :style="{ height: '30%' }" />
</div> </div>
</template> </template>
@ -132,6 +125,9 @@ import {addEnforcementRegistration,queryUserInfo} from '../../api/enforce'
import {getEnterpriseInformation} from '../../api/enterprise' import {getEnterpriseInformation} from '../../api/enterprise'
import { reactive, ref } from "vue"; import { reactive, ref } from "vue";
import {uploadFile} from "../../util/fileUpload"; import {uploadFile} from "../../util/fileUpload";
//用户筛选弹窗
import Popup from './userFilter.vue';
const { useMy } = $globalStore const { useMy } = $globalStore
const router = useRouter(); const router = useRouter();
@ -140,8 +136,14 @@ const route = useRoute();
let queryaddressId = ref(""); let queryaddressId = ref("");
const data = reactive({ const data = reactive({
showLawEnforcerFlag:false, showLawEnforcerFlag:false,
currentPage: 1,
good:"#7FFFD4", good:"#7FFFD4",
bad:"#D3D3D3", bad:"#D3D3D3",
popupVisible: false,
popupContent: '',
popupVisible2: false,
popupContent2: '',
}); });
//保存参数 //保存参数
const submitData = reactive({ const submitData = reactive({
@ -190,17 +192,21 @@ onMounted(() =>{
//查询企业信息 //查询企业信息
getEnterpriseInformation(route?.query?.enterpriseNumber,success =>{ getEnterpriseInformation(route?.query?.enterpriseNumber,success =>{
console.log(success.data) console.log(success.data)
if (null != success.data) {
submitData.enterpriseName = success.data.enterpriseName submitData.enterpriseName = success.data.enterpriseName
submitData.enterpriseNumber = success.data.enterpriseNumber submitData.enterpriseNumber = success.data.enterpriseNumber
}
},error=>{ },error=>{
}) })
//查询企业信息 //查询执法部门信息
queryUserInfo({},success =>{ queryUserInfo({},success =>{
console.log(success.data) if (null != success.data) {
submitData.lawEnforcer = success.data.userName submitData.lawEnforcer = success.data.userName
submitData.lawEnforcerId = success.data.userId
submitData.lawEnforcement = success.data.dept.deptName; submitData.lawEnforcement = success.data.dept.deptName;
submitData.lawEnforcementId = success.data.dept.deptId; submitData.lawEnforcementId = success.data.dept.deptId;
}
},error=>{ },error=>{
}) })
@ -240,26 +246,56 @@ const deleteFile = (file,index) =>{
const submit = () =>{ const submit = () =>{
addEnforcementRegistration(submitData,success =>{ addEnforcementRegistration(submitData,success =>{
console.log(success) //跳转首页
//跳转企业二维码地址
if(success.success){ if(success.success){
console.log("登记成功"); showSuccessToast('登记成功');
router.push({ path: "/home" });
} }
},error=>{ },error=>{
console.log("登记失败") console.log("登记失败")
}) })
} }
const showPopup = () =>{
data.popupVisible = true;
}
const showPopup2 = () =>{
data.popupVisible2 = true;
}
const closePopup = () =>{
data.popupVisible = false;
data.popupVisible2 = false;
}
const reciveData = (item) =>{
submitData.lawEnforcerTwo = item.userName;
submitData.lawEnforcerIdTwo = item.userId;
}
const reciveData2 = (item) =>{
submitData.subsidiaryer = item.userName;
submitData.subsidiaryerId = item.userId;
}
</script> </script>
<style lang="less" scoped> <style lang="less" scoped>
.address_edit { .address_edit {
display: flex; display: flex;
flex-direction: column; flex-direction: column;
height: 100%; height: 100%;
overflow: hidden; overflow: hidden;
background-color: #f4f4f4; background-color: #ebf3fb;
} }
.warp_body {
margin: 0 3%;
padding-bottom: 3rem;
width: 94%;
height: 100%;
//border-radius: 0.25rem;
background-image: linear-gradient(to bottom, #ebf3fb, #fff);
overflow-y: auto;
}
.qy-name{ .qy-name{
font-size: large; font-size: large;
margin-left: 5%; margin-left: 5%;
@ -275,6 +311,7 @@ const submit = () =>{
padding-top: 2%; padding-top: 2%;
font-weight: 600; font-weight: 600;
} }
/* vant4的 Toast 和 Popup 样式冲突,会导致 Toast 变成白底 */ /* vant4的 Toast 和 Popup 样式冲突,会导致 Toast 变成白底 */
.van-popup.van-toast{ .van-popup.van-toast{
background: var(--van-toast-background) !important; background: var(--van-toast-background) !important;
@ -288,4 +325,43 @@ const submit = () =>{
font-size: var(--van-toast-icon-size) !important; font-size: var(--van-toast-icon-size) !important;
} }
.divdsty {
margin: auto;
width: 100%;
height: 0.25rem;
background-color: #f4f4f4;
border: 0;
}
.file-upload{
min-height: 4.5rem;
position: relative;
}
.file-upload-center{
position: absolute;
height: 20%;
top: 10%;
left: 2%;
font-size: 0.38rem;
span {
font-size: 0.32rem;
color: rgb(221, 229, 227);
}
}
.file{
position: absolute;
bottom: 10%;
left: 2%;
}
.preview-cover {
position: absolute;
bottom: 0;
box-sizing: border-box;
width: 100%;
padding: 4px;
color: #fff;
font-size: 0.32rem;
text-align: center;
background: rgba(0, 0, 0, 0.3);
}
</style> </style>

236
src/views/enforce/userFilter.vue

@ -0,0 +1,236 @@
<template>
<div v-if="visible" class="van-overlay"></div>
<div v-if="visible" class="popup">
<div class="popup-title">用户查询</div>
<!-- 关闭按钮 -->
<label class="close-button" @click="closePopup"></label>
<!-- 弹窗的内容 -->
<div class="popup-content">
<div class="subsearch">
<input class="searchbox" v-model="searchParam.userName" placeholder="请输入用户名搜索" />
</div>
<div class="btnbox">
<button class='btn-reset' @click="cancel()">重置</button>
<button class='btn-search' @click="queryList()">搜索</button>
</div>
<div class="search-result">
<div class="case-item" v-for="(item, index) in dataList" :key="index" @click="selectData(item)">
<div class="case-title">{{ item.userName }}</div>
<div class="case-depart">{{ item.phonenumber }}</div>
<div class="case-time">{{ item.loginName }}</div>
</div>
</div>
</div>
</div>
</template>
<script>
import { ref } from 'vue'
import {queryUsers} from '../../api/user'
const { useCommon } = $globalStore
export default {
props: {
visible: {
type: Boolean,
default: false
},
content: {
type: String,
default: ''
},
},
data(){
return{
searchParam: {
//搜索框
userName: '',
},
dataList:[]
}
},
created(){
this.queryList()
},
methods: {
closePopup() {
this.$emit('close');
},
queryList(){
queryUsers(this.searchParam,success=>{
this.dataList = success.data
},error =>{})
},
cancel() {
this.searchParam.userName = '';
this.queryList()
},
selectData(item){
this.$emit("reciveData",item);
this.$emit('close');
},
}
}
</script>
<style scoped>
.popup {
position: fixed;
z-index: 999;
top: 3rem;
left: 0;
width: 100%;
height: calc(100% - 3rem);;
background: #fff;
overflow: hidden;
}
.popup-title {
margin: 0.3rem 0 0;
width: 100%;
height: 1rem;
border-bottom: 1px solid #f3f4f5;
text-align: center;
font-size: 0.42rem;
font-weight: 550;
}
.close-button {
position: absolute;
top: 0.15rem;
right: 0.1rem;
width: 0.8rem;
height: 0.8rem;
background-color: rgba(255, 255, 255, .5);
border: 0.05rem solid rgba(255, 255, 255, .7);
border-radius: 50%;
transform: rotate(45deg);
}
.close-button:before,
.close-button:after {
content: '';
position: absolute;
top: 50%;
left: 50%;
background: #333;
border-radius: 50%;
transform: translate(-50%, -50%);
height: 0.4rem;
width: 0.02rem;
}
.close-button:after {
height: 0.02rem;
width: 0.4rem;
}
.popup-content {
margin: 0.25rem 3% 0;
padding-bottom: 3rem;
width: 94%;
height: calc(100% - 1.6rem);
overflow-y: auto;
font-size: 0.38rem;
}
.subsearch {
width: 100%;
height: 1.25rem;
}
.searchbox {
margin: 2% 3%;
padding: 0.15rem 0.3rem 0.1rem 1.15rem;
width: 94%;
height: 1.0rem;
background: #f6f7fe url(../../assets/images/icon_sou.png) no-repeat;
background-position: left 0.5rem center;
background-size: auto 50%;
box-sizing: border-box;
border: 1px solid rgba(0,0,0,.05);
border-radius: 0.5rem;
color: #999999;
outline: none;
}
.subtitle {
margin: 0.5rem 0 0.25rem;
font-size: 0.4rem;
font-weight: 600;
}
.quick-item {
display: flex;
}
.quick-item span {
display: inline-block;
margin: 1% 0 2% 3.5%;
padding: 2% 3.75%;
background: #f2f3f4;
border: 0;
border-radius: 8px;
color: #4c4c4c;
}
.quick-item span.seled {
background: #e9f2fb;
color: #1367fe;
}
.btnbox {
display: flex;
justify-content: center;
margin: 5% 2%;
width: 96%;
height: 1.0rem;
}
.btn-reset,
.btn-search {
display: inline-block;
margin: 0 2%;
padding: 0;
width: 60%;
color: #fff;
font-size: 0.35rem;
border-radius: 1rem;
background: #1367fe;
border: 1px solid #1367fe;
text-align: center;
}
.btn-reset {
width: 35%;
background-color: #fff;
border-color: rgba(19, 103, 254, .7);
color: #1367fe;
}
.search-result {
width: 100%;
padding-bottom: 2rem;
}
.case-item {
margin: 3% 2%;
padding: 2% 0;
width: 96%;
font-size: 0.3rem;
border-bottom: 1px solid #f4f4f4;
color: #999;
line-height: 2;
}
.case-title {
margin: 2% 0;
font-size: 0.38rem;
color: #333;
line-height: 1.25;
}
</style>
Loading…
Cancel
Save