You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
454 lines
14 KiB
454 lines
14 KiB
<template>
|
|
<div class="address_edit">
|
|
<!-- 导航栏 -->
|
|
<div class="header_body">
|
|
<header-nav :slefBack="true" @goBack="goBack" :titelText="`行政检查预约`"></header-nav>
|
|
</div>
|
|
<!-- 中间 -->
|
|
<div>
|
|
<!-- <van-cell-group>-->
|
|
<van-form @failed="onFailed" @submit="submit">
|
|
<!-- <van-field-->
|
|
<!-- v-model="submitData.lawEnforcementCode"-->
|
|
<!-- label="登记编号"-->
|
|
<!-- />-->
|
|
<van-field
|
|
v-model="submitData.enterpriseName"
|
|
label="企业名称"
|
|
required
|
|
:rules="[{ required: true, message: '必填项' }]"
|
|
readonly
|
|
@click="showPopupCompony"
|
|
/>
|
|
<Popup :visible="popupVisible" :content="popupContent" @close="closePopupCompony" @reciveData="reciveData" />
|
|
<van-field
|
|
v-model="submitData.linkMan"
|
|
label="企业联系人"
|
|
/>
|
|
<van-field
|
|
v-model="submitData.linkTel"
|
|
label="联系人电话"
|
|
:rules="[{ validator, message: '请输入正确内容' }]"
|
|
/>
|
|
<van-field
|
|
v-model="submitData.checkTime"
|
|
required
|
|
readonly
|
|
label="检查时间"
|
|
:rules="[{ required: true, message: '必填项' }]"
|
|
@click="data.showTimePicker = true"
|
|
/>
|
|
<van-field
|
|
v-model="data.checkItemText"
|
|
required
|
|
readonly
|
|
label="检查事项"
|
|
:rules="[{ required: true, message: '必填项' }]"
|
|
@click="data.showItem = true"
|
|
type="textarea"
|
|
rows="1"
|
|
autosize
|
|
/>
|
|
<van-field v-model="submitData.checkItem" v-show="false" />
|
|
<van-field
|
|
v-model="data.checkRequireText"
|
|
required
|
|
readonly
|
|
label="检查要求"
|
|
:rules="[{ required: true, message: '必填项' }]"
|
|
@click="data.showGA = true"
|
|
type="textarea"
|
|
rows="1"
|
|
autosize
|
|
/>
|
|
<van-field v-model="submitData.checkRequire" v-show="false" />
|
|
<van-field
|
|
v-model="submitData.lawEnforcement"
|
|
readonly
|
|
label="执法部门"
|
|
:rules="[{ required: true, message: '必填项' }]"
|
|
/>
|
|
<van-field
|
|
v-model="submitData.lawEnforcerText"
|
|
readonly
|
|
label="执法人员"
|
|
/>
|
|
<van-field
|
|
v-model="submitData.lawEnforcerTextTwo"
|
|
readonly
|
|
label="执法人员"
|
|
@click="showPopup"
|
|
/>
|
|
<van-field
|
|
v-model="submitData.remark"
|
|
label="备注"
|
|
rows="2"
|
|
autosize
|
|
type="textarea"
|
|
maxlength="50"
|
|
placeholder="请输入备注"
|
|
show-word-limit
|
|
/>
|
|
|
|
<div class="warp_body">
|
|
<van-action-bar>
|
|
<van-button round block type="info" native-type="submit" @click="tmpSave">保存</van-button>
|
|
<van-button round block type="info" native-type="submit" @click="submit">提交</van-button>
|
|
</van-action-bar>
|
|
</div>
|
|
</van-form>
|
|
<!-- </van-cell-group>-->
|
|
</div>
|
|
|
|
<!-- <div class="warp_body">-->
|
|
<!-- <van-action-bar>-->
|
|
<!-- <van-action-bar-button text="保存" @click="submit" />-->
|
|
<!-- </van-action-bar>-->
|
|
<!-- </div>-->
|
|
|
|
<van-popup v-model:show="data.showLawEnforcerFlag" position="bottom" :style="{ height: '30%' }" />
|
|
<UserPopup :visible="data.popupVisible" :content="data.popupContent" @close="closePopup" @reciveData="reciveVisible" />
|
|
|
|
<van-popup v-model:show="data.showTimePicker" position="bottom" :style="{ height: '30%' }" >
|
|
<van-date-picker
|
|
type="time"
|
|
@confirm="onConfirm"
|
|
@cancel="data.showTimePicker = false"
|
|
/>
|
|
</van-popup>
|
|
<van-popup v-model:show="data.showItem" position="bottom" :style="{ height: '30%' }">
|
|
<van-picker title="事项"
|
|
:columns="data.item_columns"
|
|
@confirm="itemConfirm"
|
|
@change="itemChange"
|
|
@cancel="gaCancel"
|
|
/>
|
|
</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"
|
|
/>
|
|
</van-popup>
|
|
</div>
|
|
</template>
|
|
|
|
<script setup name="register">
|
|
|
|
import { showSuccessToast } from 'vant';
|
|
import {getByUserIdAndZero, addEnterpriseLawEnforcement, editEnterpriseLawEnforcement} from '../../api/administrative'
|
|
import {queryUserInfo} from '../../api/enforce'
|
|
import { queryEnterpriseInfoList } from '../../api/enterprise'
|
|
import { reactive, ref } from "vue";
|
|
import { getDict } from "../../api/Home";
|
|
import { queryLinkage, queryLinkageDictByValueAndParentId } from "../../api/linkage";
|
|
import {uploadFile} from "../../util/fileUpload";
|
|
//用户筛选弹窗
|
|
import UserPopup from './userFilter.vue';
|
|
const { useCommon } = $globalStore;
|
|
|
|
const router = useRouter();
|
|
let queryaddressId = ref("");
|
|
const data = reactive({
|
|
showLawEnforcerFlag:false,
|
|
showTimePicker:false,
|
|
popupVisible: false,
|
|
popupContent: '',
|
|
showGA:false,
|
|
showItem:false,
|
|
checkItemText:"",
|
|
checkRequireText: "",
|
|
ga_columns: [],
|
|
item_columns: [],
|
|
});
|
|
//保存参数
|
|
const submitData = reactive({
|
|
/** ID */
|
|
id:"",
|
|
/** 登记编号 */
|
|
lawEnforcementCode:"",
|
|
/** 企业名称 */
|
|
enterpriseName:"",
|
|
/**统一社会信用代码 */
|
|
enterpriseNumber:"",
|
|
/** 企业ID */
|
|
enterpriseId:"",
|
|
/** 企业联系人 */
|
|
linkMan:"",
|
|
/** 联系人电话 */
|
|
linkTel:"",
|
|
/** 检查时间 */
|
|
checkTime:"",
|
|
/** 检查事项 */
|
|
checkItem:"",
|
|
/** 检查要求 */
|
|
checkRequire:"",
|
|
/** 执法部门 */
|
|
lawEnforcement:"",
|
|
/** 执法部门ID */
|
|
lawEnforcementId:"",
|
|
/** 执法人员 */
|
|
lawEnforcer:"",
|
|
lawCertificateNum:"",
|
|
lawEnforcerText: "",
|
|
/** 执法人员ID */
|
|
lawEnforcerId:"",
|
|
/** 执法人员2 */
|
|
lawEnforcerTwo:"",
|
|
lawCertificateNumTwo:"",
|
|
lawEnforcerTextTwo: "",
|
|
/** 执法人员2ID */
|
|
lawEnforcerTwoId:"",
|
|
/** 备注 */
|
|
remark:"",
|
|
})
|
|
|
|
|
|
|
|
const onConfirm = (time) => {
|
|
if(time != null) {
|
|
var times = time.selectedValues;
|
|
submitData.checkTime = times[0] +"-"+ times[1] +"-"+ times[2];
|
|
}
|
|
data.showTimePicker = false;
|
|
};
|
|
|
|
const validator = (val) => /^1[34578]\d{9}$/.test(val);
|
|
|
|
const onFailed = (errorInfo) => {
|
|
console.log('failed', errorInfo);
|
|
};
|
|
|
|
|
|
const showPopup = () =>{
|
|
data.popupVisible = true;
|
|
}
|
|
const closePopup = () =>{
|
|
data.popupVisible = false;
|
|
}
|
|
const reciveVisible = (item) =>{
|
|
submitData.lawEnforcerTwo = item.userName
|
|
submitData.lawCertificateNumTwo = item.lawCertificateNum;
|
|
submitData.lawEnforcerTwoId = item.userId;
|
|
submitData.lawEnforcerTextTwo = submitData.lawEnforcerTwo +" "+ submitData.lawCertificateNumTwo
|
|
}
|
|
|
|
/* 检查要求 start */
|
|
const gaConfirm = ({ selectedOptions }) => {
|
|
data.checkRequireText = selectedOptions[0].text;
|
|
submitData.checkRequire = selectedOptions[0].value;
|
|
data.showGA = false;
|
|
data.showItem = false;
|
|
};
|
|
|
|
/* 检查要求 start */
|
|
const itemConfirm = ({ selectedOptions }) => {
|
|
data.checkItemText = selectedOptions[0].text;
|
|
submitData.checkItem = selectedOptions[0].value;
|
|
data.showGA = false;
|
|
data.showItem = false;
|
|
|
|
getLinkageByParentIdToGA(selectedOptions[0].id);
|
|
};
|
|
const itemChange =({ selectedOptions }) => {
|
|
// getLinkageByParentIdToGA(selectedOptions[0].id);
|
|
}
|
|
const gaCancel = () => {
|
|
data.showGA = false;
|
|
data.showItem = false;
|
|
}
|
|
/* 检查要求 end */
|
|
|
|
// 返回
|
|
const goBack = () => {
|
|
router.go(-1);
|
|
};
|
|
|
|
const dataFillIn = () => {
|
|
getByUserIdAndZero(null,success =>{
|
|
//跳转企业二维码地址
|
|
if(success.success){
|
|
Object.keys(submitData).forEach((item) => {
|
|
submitData[item] = success.data[item] ? success.data[item] : "";
|
|
})
|
|
data.checkItemText =success.data['params'].checkItemText;
|
|
data.checkRequireText =success.data['params'].checkRequireText;
|
|
submitData.lawEnforcerText =success.data['lawEnforcer'];
|
|
submitData.lawEnforcerTextTwo =success.data['lawEnforcerTwo'];
|
|
console.log(submitData)
|
|
showSuccessToast('保存成功');
|
|
}
|
|
},error=>{
|
|
console.log("保存失败")
|
|
})
|
|
}
|
|
|
|
const tmpSave = () => {
|
|
showSuccessToast('临时保存');
|
|
console.log(submitData)
|
|
addEnterpriseLawEnforcement(submitData,success =>{
|
|
//跳转企业二维码地址
|
|
if(success.success){
|
|
showSuccessToast('保存成功');
|
|
router.push(
|
|
{
|
|
path: "/appointmentList"
|
|
});
|
|
}
|
|
},error=>{
|
|
console.log("保存失败")
|
|
})
|
|
}
|
|
|
|
const submit = () =>{
|
|
showSuccessToast('登记成功');
|
|
editEnterpriseLawEnforcement(submitData,success =>{
|
|
//跳转企业二维码地址
|
|
if(success.success){
|
|
showSuccessToast('登记成功');
|
|
router.push(
|
|
{
|
|
path: "/appointmentList"
|
|
});
|
|
}
|
|
},error=>{
|
|
console.log("登记失败")
|
|
})
|
|
}
|
|
|
|
const getLinkageByValueAndParentId = (value, parentId) => {
|
|
// 查询检查要求字典信息
|
|
queryLinkageDictByValueAndParentId({"value":value, "parentId": parentId}, success => {
|
|
getLinkageByParentIdToItem(success.id)
|
|
},error=>{});
|
|
}
|
|
|
|
const getLinkageByParentIdToItem = (parentId) => {
|
|
// 查询检查要求字典信息
|
|
queryLinkage({"parentId": parentId}, success => {
|
|
for(var i=0; i<success.length; i++) {
|
|
data.item_columns.push({ text: success[i].title, value: success[i].id, id: success[i].id })
|
|
// if (i==0) {
|
|
// data.checkItemText = success[i].title;
|
|
// submitData.checkItem = success[i].id;
|
|
// getLinkageByParentIdToGA(success[i].id);
|
|
// }
|
|
}
|
|
},error=>{});
|
|
}
|
|
|
|
const getLinkageByParentIdToGA = (parentId) => {
|
|
// 查询检查要求字典信息
|
|
data.ga_columns = [];
|
|
queryLinkage({"parentId": parentId}, success => {
|
|
for(var i=0; i<success.length; i++) {
|
|
data.ga_columns.push({ text: success[i].title, value: success[i].id, id: success[i].id })
|
|
// if (i==0) {
|
|
// data.checkRequireText = success[i].title;
|
|
// submitData.checkRequire = success[i].id;
|
|
// }
|
|
}
|
|
},error=>{});
|
|
}
|
|
|
|
//初始化参数,获取扫码的企业统一信用编码
|
|
onMounted(() =>{
|
|
// 数据填充
|
|
dataFillIn();
|
|
|
|
//查询当前登录人员信息
|
|
queryUserInfo({},success =>{
|
|
console.log(success.data)
|
|
submitData.lawEnforcer = success.data.userName;
|
|
submitData.lawCertificateNum = success.data.lawCertificateNum
|
|
submitData.lawEnforcerText = submitData.lawEnforcer +" "+ submitData.lawCertificateNum
|
|
submitData.lawEnforcerId = success.data.userId;
|
|
submitData.lawEnforcement = success.data.dept.deptName;
|
|
submitData.lawEnforcementId = success.data.dept.deptId;
|
|
},error=>{});
|
|
|
|
getLinkageByValueAndParentId("check_item", "100");
|
|
|
|
// 查询检查要求字典信息
|
|
// 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=>{});
|
|
|
|
// 查询检查要求字典信息
|
|
// getDict({"dictType": "checkItem"}, success => {
|
|
// for(var i=0; i<success.data.length; i++) {
|
|
// data.item_columns.push({ text: success.data[i].dictLabel, value: success.data[i].dictValue })
|
|
// }
|
|
// },error=>{});
|
|
})
|
|
|
|
const reciveData = (item) =>{
|
|
console.log(item);
|
|
submitData.enterpriseName = item.enterpriseName;
|
|
submitData.linkTel = item.enterpriseTel;
|
|
submitData.linkMan = item.legalPerson;
|
|
submitData.enterpriseNumber = item.enterpriseNumber;
|
|
}
|
|
</script>
|
|
<script>
|
|
//案件筛选弹窗
|
|
import Popup from '../enterprise/companyFilter.vue';
|
|
|
|
export default {
|
|
components: {
|
|
Popup
|
|
},
|
|
data() {
|
|
return {
|
|
popupVisible: false,
|
|
popupContent: ''
|
|
}
|
|
},
|
|
methods: {
|
|
showPopupCompony() {
|
|
this.popupVisible = true;
|
|
},
|
|
closePopupCompony() {
|
|
this.popupVisible = false;
|
|
}
|
|
}
|
|
}
|
|
</script>
|
|
<style lang="less" scoped>
|
|
.address_edit {
|
|
display: flex;
|
|
flex-direction: column;
|
|
height: 100%;
|
|
overflow: hidden;
|
|
background-color: #f4f4f4;
|
|
}
|
|
/* vant4的 Toast 和 Popup 样式冲突,会导致 Toast 变成白底 */
|
|
.van-popup.van-toast{
|
|
background: var(--van-toast-background) !important;
|
|
box-sizing: content-box !important;
|
|
/* 下面3条css,影响不大 */
|
|
transition: all var(--van-duration-fast) !important;
|
|
width: var(--van-toast-default-width) !important;
|
|
max-width: var(--van-toast-max-width) !important;
|
|
}
|
|
.van-popup.van-toast .van-toast__icon{
|
|
font-size: var(--van-toast-icon-size) !important;
|
|
}
|
|
|
|
/deep/ .van-button {
|
|
margin: 5% 3%;
|
|
padding: 0;
|
|
width: 94%;
|
|
height: 1rem;
|
|
color: #fff;
|
|
font-size: 0.4rem;
|
|
border-radius: 1rem;
|
|
background: #1367fe;
|
|
border: 0.02667rem solid #1367fe;
|
|
text-align: center;
|
|
}
|
|
|
|
</style>
|
|
|