Browse Source

执法登记+监测预约: 执法依据/检查要求改为选择;

执法人员2/辅助人员数据未上数据库bug修复;
master
蟑螂恶霸 2 years ago
parent
commit
e565fd61f1
  1. 59
      src/views/administrative/appointment.vue
  2. 22
      src/views/administrative/appointmentList.vue
  3. 236
      src/views/administrative/userFilter.vue
  4. 43
      src/views/enforce/sign.vue
  5. 4
      src/views/enforce/userFilter.vue
  6. 15
      src/views/enterprise/enterpriseInspectionDetail.vue
  7. 19
      src/views/enterprise/registrationDetail.vue

59
src/views/administrative/appointment.vue

@ -39,11 +39,13 @@
@click="data.showTimePicker = true" @click="data.showTimePicker = true"
/> />
<van-field <van-field
v-model="submitData.checkItem" v-model="data.checkItemText"
required required
label="检查事项" label="检查事项"
:rules="[{ required: true, message: '必填项' }]" :rules="[{ required: true, message: '必填项' }]"
@click="data.showGA = true"
/> />
<van-field v-model="submitData.checkItem" v-show="false" />
<van-field <van-field
v-model="submitData.checkRequire" v-model="submitData.checkRequire"
required required
@ -65,6 +67,7 @@
v-model="submitData.lawEnforcerTwo" v-model="submitData.lawEnforcerTwo"
readonly readonly
label="执法人员" label="执法人员"
@click="showPopup"
/> />
<van-field <van-field
v-model="submitData.remark" v-model="submitData.remark"
@ -93,6 +96,7 @@
<!-- </div>--> <!-- </div>-->
<van-popup v-model:show="data.showLawEnforcerFlag" position="bottom" :style="{ height: '30%' }" /> <van-popup v-model:show="data.showLawEnforcerFlag" position="bottom" :style="{ height: '30%' }" />
<Popup :visible="data.popupVisible" :content="data.popupContent" @close="closePopup" @reciveData="reciveData" />
<van-popup v-model:show="data.showTimePicker" position="bottom" :style="{ height: '30%' }" > <van-popup v-model:show="data.showTimePicker" position="bottom" :style="{ height: '30%' }" >
<van-date-picker <van-date-picker
@ -101,6 +105,14 @@
@cancel="data.showTimePicker = false" @cancel="data.showTimePicker = false"
/> />
</van-popup> </van-popup>
<van-popup v-model:show="data.showGA" position="bottom" :style="{ height: '30%' }">
<van-picker title="要求"
:columns="data.ga_columns"
@confirm="gaConfirm"
@cancel="gaCancel"
@change="gaChange"
/>
</van-popup>
</div> </div>
</template> </template>
@ -111,6 +123,10 @@ import {addEnterpriseLawEnforcement} 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 {uploadFile} from "../../util/fileUpload";
//
import Popup from './userFilter.vue';
const { useMy, useCommon, useShopCard } = $globalStore; const { useMy, useCommon, useShopCard } = $globalStore;
const router = useRouter(); const router = useRouter();
@ -118,6 +134,11 @@ let queryaddressId = ref("");
const data = reactive({ const data = reactive({
showLawEnforcerFlag:false, showLawEnforcerFlag:false,
showTimePicker:false, showTimePicker:false,
popupVisible: false,
popupContent: '',
showGA:false,
checkItemText:"",
ga_columns: [],
}); });
// //
const submitData = reactive({ const submitData = reactive({
@ -169,6 +190,31 @@ const onFailed = (errorInfo) => {
console.log('failed', errorInfo); console.log('failed', errorInfo);
}; };
const showPopup = () =>{
data.popupVisible = true;
}
const closePopup = () =>{
data.popupVisible = false;
}
const reciveData = (item) =>{
submitData.lawEnforcerTwo = item.userName;
submitData.lawEnforcerIdTwo = item.userId;
}
/* 检查要求 start */
const gaConfirm = ({ selectedOptions }) => {
data.checkItemText = selectedOptions[0].text;
submitData.checkItem = selectedOptions[0].value;
data.showGA = false;
};
const gaChange = ({ selectedValues }) => {
};
const gaCancel = () => {
data.showGA = false;
}
/* 检查要求 end */
// //
const goBack = () => { const goBack = () => {
router.go(-1); router.go(-1);
@ -198,9 +244,14 @@ onMounted(() =>{
submitData.lawEnforcerId = success.data.userId 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=>{});
}) //
getDict({"dictType": "checkRequire"}, success => {
for(var i=0; i<success.data.length; i++) {
data.ga_columns.push({ text: success.data[i].dictLabel, value: success.data[i].dictValue })
}
},error=>{});
}) })
const reciveData = (item) =>{ const reciveData = (item) =>{

22
src/views/administrative/appointmentList.vue

@ -83,6 +83,7 @@
import { showToast } from "vant"; import { showToast } from "vant";
import {queryEnterpriseLawEnforcementList} from '../../api/administrative'; import {queryEnterpriseLawEnforcementList} from '../../api/administrative';
import { setGoodsNum } from "@/util/util"; import { setGoodsNum } from "@/util/util";
import {getDict} from "../../api/Home";
const { useCommon, useShopCard } = $globalStore; const { useCommon, useShopCard } = $globalStore;
const router = useRouter(); const router = useRouter();
@ -117,17 +118,36 @@
minDate: new Date(2020, 0, 1), minDate: new Date(2020, 0, 1),
maxDate: new Date(2125, 5, 1), maxDate: new Date(2125, 5, 1),
columnsType :['year', 'month'], columnsType :['year', 'month'],
ga_columns: [],
}); });
// //
onMounted(() => { onMounted(() => {
// getCard(); // getCard();
searchParam.enterpriseNumber = useCommon.enterpriseNumber; searchParam.enterpriseNumber = useCommon.enterpriseNumber;
queryList();
//
getDict({"dictType": "checkRequire"}, success => {
for(var i=0; i<success.data.length; i++) {
data.ga_columns.push({ text: success.data[i].dictLabel, value: success.data[i].dictValue })
}
queryList();
},error=>{});
// queryList();
data.dateSearch = nowDate(new Date()); data.dateSearch = nowDate(new Date());
}); });
const queryList = () =>{ const queryList = () =>{
queryEnterpriseLawEnforcementList(searchParam,success =>{ queryEnterpriseLawEnforcementList(searchParam,success =>{
for (var i=0; i<success.data.length; i++) {
var itemTxt = success.data[i].checkItem;
for (var j=0; j<data.ga_columns.length; j++) {
if (itemTxt == data.ga_columns[j].value) {
success.data[i].checkItem = data.ga_columns[j].text;
break;
}
}
}
data.dataList = success.data; data.dataList = success.data;
},error =>{ },error =>{

236
src/views/administrative/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.lawCertificateNum }}</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>

43
src/views/enforce/sign.vue

@ -43,12 +43,14 @@
placeholder="必填 执法事项" placeholder="必填 执法事项"
/> />
<van-field <van-field
v-model="submitData.lawEnforcementBasis" v-model="data.lawEnforcementBasisText"
required required
label="执法依据" label="执法依据"
:rules="[{ required: true, message: '必填项' }]" :rules="[{ required: true, message: '必填项' }]"
placeholder="必填 执法依据" placeholder="必填 执法依据"
@click="data.showGA = true"
/> />
<van-field v-model="submitData.lawEnforcementBasis" v-show="false" />
<van-field <van-field
v-model="submitData.reslut" v-model="submitData.reslut"
required required
@ -115,6 +117,15 @@
<Popup :visible="data.popupVisible" :content="data.popupContent" @close="closePopup" @reciveData="reciveData" /> <Popup :visible="data.popupVisible" :content="data.popupContent" @close="closePopup" @reciveData="reciveData" />
<Popup :visible="data.popupVisible2" :content="data.popupContent2" @close="closePopup" @reciveData="reciveData2" /> <Popup :visible="data.popupVisible2" :content="data.popupContent2" @close="closePopup" @reciveData="reciveData2" />
<van-popup v-model:show="data.showGA" position="bottom" :style="{ height: '30%' }">
<van-picker title="依据"
:columns="data.ga_columns"
@confirm="gaConfirm"
@cancel="gaCancel"
@change="gaChange"
/>
</van-popup>
</div> </div>
</template> </template>
@ -127,6 +138,7 @@ import { reactive, ref } from "vue";
import {uploadFile} from "../../util/fileUpload"; import {uploadFile} from "../../util/fileUpload";
// //
import Popup from './userFilter.vue'; import Popup from './userFilter.vue';
import {getDict} from "../../api/Home";
const { useMy } = $globalStore const { useMy } = $globalStore
@ -144,6 +156,10 @@ const data = reactive({
popupContent: '', popupContent: '',
popupVisible2: false, popupVisible2: false,
popupContent2: '', popupContent2: '',
showGA:false,
lawEnforcementBasisText:"",
ga_columns: [],
}); });
// //
const submitData = reactive({ const submitData = reactive({
@ -192,7 +208,6 @@ const tapBad = () => {
onMounted(() =>{ onMounted(() =>{
// //
getEnterpriseInformation(route?.query?.enterpriseNumber,success =>{ getEnterpriseInformation(route?.query?.enterpriseNumber,success =>{
console.log(success.data)
if (null != 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
@ -211,6 +226,13 @@ onMounted(() =>{
},error=>{ },error=>{
}) })
//
getDict({"dictType": "lawEnforcementBasis"}, success => {
for(var i=0; i<success.data.length; i++) {
data.ga_columns.push({ text: success.data[i].dictLabel, value: success.data[i].dictValue })
}
},error=>{});
}) })
// //
@ -222,15 +244,12 @@ const goBack = () => {
const uploadFiles = (file) =>{ const uploadFiles = (file) =>{
uploadFile(file,(res) =>{ uploadFile(file,(res) =>{
console.log(res);
submitData.fileList.push(res.url) submitData.fileList.push(res.url)
console.log(submitData.fileList);
}); });
} }
const deleteFile = (file,index) =>{ const deleteFile = (file,index) =>{
console.log(index);
submitData.fileListObj.filter((item, indexs) => { submitData.fileListObj.filter((item, indexs) => {
if (index.index == indexs) { if (index.index == indexs) {
submitData.fileListObj.splice(indexs, 1);//splice submitData.fileListObj.splice(indexs, 1);//splice
@ -241,10 +260,22 @@ const deleteFile = (file,index) =>{
submitData.fileList.splice(indexs, 1);//splice submitData.fileList.splice(indexs, 1);//splice
} }
}); });
console.log(submitData.fileList);
return true; return true;
} }
/* 执法依据 start */
const gaConfirm = ({ selectedOptions }) => {
data.lawEnforcementBasisText = selectedOptions[0].text;
submitData.lawEnforcementBasis = selectedOptions[0].value;
data.showGA = false;
};
const gaChange = ({ selectedValues }) => {
};
const gaCancel = () => {
data.showGA = false;
}
/* 执法依据 end */
const submit = () =>{ const submit = () =>{
addEnforcementRegistration(submitData,success =>{ addEnforcementRegistration(submitData,success =>{
// //

4
src/views/enforce/userFilter.vue

@ -8,7 +8,7 @@
<!-- 弹窗的内容 --> <!-- 弹窗的内容 -->
<div class="popup-content"> <div class="popup-content">
<div class="subsearch"> <div class="subsearch">
<input class="searchbox" v-model="searchParam.userName" placeholder="请输入用户名搜索" /> <input class="searchbox" v-model="searchParam.userName" placeholder="请输入用户名/执法证件号搜索" />
</div> </div>
<div class="btnbox"> <div class="btnbox">
<button class='btn-reset' @click="cancel()">重置</button> <button class='btn-reset' @click="cancel()">重置</button>
@ -19,7 +19,7 @@
<div class="case-item" v-for="(item, index) in dataList" :key="index" @click="selectData(item)"> <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-title">{{ item.userName }}</div>
<div class="case-depart">{{ item.phonenumber }}</div> <div class="case-depart">{{ item.phonenumber }}</div>
<div class="case-time">{{ item.loginName }}</div> <div class="case-time">{{ item.lawCertificateNum }}</div>
</div> </div>
</div> </div>
</div> </div>

15
src/views/enterprise/enterpriseInspectionDetail.vue

@ -107,6 +107,7 @@
import {getEnterpriseLawEnforcement} from '../../api/administrative' import {getEnterpriseLawEnforcement} from '../../api/administrative'
import { reactive, ref } from "vue"; import { reactive, ref } from "vue";
import {getDict} from "../../api/Home";
const router = useRouter(); const router = useRouter();
const route = useRoute(); const route = useRoute();
@ -168,6 +169,18 @@ const goBack = () => {
router.go(-1); router.go(-1);
}; };
const setDict = () =>{
//
getDict({"dictType": "checkRequire"}, success => {
for(var i=0; i<success.data.length; i++) {
if (submitData.checkItem == success.data[i].dictValue) {
submitData.checkItem = success.data[i].dictLabel
break;
}
}
},error=>{});
}
// //
onMounted(() =>{ onMounted(() =>{
getEnterpriseLawEnforcement(route?.query?.id,success =>{ getEnterpriseLawEnforcement(route?.query?.id,success =>{
@ -184,6 +197,8 @@ onMounted(() =>{
submitData.linkTel = success.data.linkTel; submitData.linkTel = success.data.linkTel;
submitData.checkTime = success.data.checkTime; submitData.checkTime = success.data.checkTime;
submitData.remark = success.data.remark; submitData.remark = success.data.remark;
setDict();
} }
},error=>{ },error=>{
console.log("登记失败") console.log("登记失败")

19
src/views/enterprise/registrationDetail.vue

@ -139,6 +139,7 @@ import { showSuccessToast,showImagePreview } from 'vant';
import {queryEnforcementRegistrationById} from '../../api/enforce' import {queryEnforcementRegistrationById} from '../../api/enforce'
import { reactive, ref } from "vue"; import { reactive, ref } from "vue";
import {uploadFile} from "../../util/fileUpload"; import {uploadFile} from "../../util/fileUpload";
import {getDict} from "../../api/Home";
// //
// import Popup from './userFilter.vue'; // import Popup from './userFilter.vue';
@ -208,15 +209,29 @@ const imagePreview = (index) =>{
startPosition: index, startPosition: index,
}); });
} }
const setDict = () =>{
//
getDict({"dictType": "lawEnforcementBasis"}, success => {
for(var i=0; i<success.data.length; i++) {
if (submitData.lawEnforcementBasis == success.data[i].dictValue) {
submitData.lawEnforcementBasis = success.data[i].dictLabel
break;
}
}
},error=>{});
}
//3a0096181c184e5aa56f70923680856d$6e74ceda1463c165fd43eeeadce4f7cd //3a0096181c184e5aa56f70923680856d$6e74ceda1463c165fd43eeeadce4f7cd
// //
onMounted(() =>{ onMounted(() =>{
// //
queryEnforcementRegistrationById(route?.query?.id,success =>{ queryEnforcementRegistrationById(route?.query?.id,success =>{
console.log(success.data);
submitData.enterpriseName = success.data.enterpriseName; submitData.enterpriseName = success.data.enterpriseName;
submitData.enterpriseNumber = success.data.enterpriseNumber; submitData.enterpriseNumber = success.data.enterpriseNumber;
submitData.lawEnforcement = success.data.lawEnforcement; submitData.lawEnforcement = success.data.lawEnforcement;
submitData.lawEnforcerTwo = success.data.lawEnforcerTwo;
submitData.subsidiaryer = success.data.subsidiaryer;
submitData.lawEnforcementId = success.data.lawEnforcementId; submitData.lawEnforcementId = success.data.lawEnforcementId;
submitData.lawEnforcementItem = success.data.lawEnforcementItem; submitData.lawEnforcementItem = success.data.lawEnforcementItem;
submitData.lawEnforcementBasis = success.data.lawEnforcementBasis; submitData.lawEnforcementBasis = success.data.lawEnforcementBasis;
@ -230,6 +245,8 @@ onMounted(() =>{
data.good = "#D3D3D3"; data.good = "#D3D3D3";
data.bad = "#7FFFD4"; data.bad = "#7FFFD4";
} }
setDict();
},error=>{ },error=>{
}) })

Loading…
Cancel
Save