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.

865 lines
29 KiB

7 months ago
<template>
<div class="address_edit">
<!-- 导航栏 -->
<!-- <div class="header_body">-->
<!-- <header-nav :slefBack="true" @goBack="goBack" :titelText="`企业相关信息`"></header-nav>-->
<!-- </div>-->
<!-- 中间 -->
<!-- <div class="warp_body">-->
<van-form @failed="onFailed" @submit="submit">
<van-cell-group>
<!-- <div class="qy-name">企业信息</div>-->
<van-field
v-model="data.enterpriseInfo.enterpriseName"
label="企业名称"
readonly
/>
<van-field class="mult-line"
v-model="data.enterpriseInfo.enterpriseNumber"
label="统一社会信用代码"
readonly
/>
<div :class="is_show ? 'new_detail' : 'work_detail'">
<van-field
v-model="data.enterpriseInfo.legalPerson"
label="法定代表人"
readonly
/>
<van-field
v-model="data.enterpriseInfo.enterpriseType"
label="企业类型"
readonly
/>
<van-field
v-model="data.enterpriseInfo.registeredCapital"
label="注册资本"
readonly
/>
<van-field
v-model="data.enterpriseInfo.establishmentTime"
label="成立日期"
readonly
/>
<van-field
v-model="data.enterpriseInfo.operatingTerm"
label="经营期限"
readonly
/>
<div class="fold-div">
<label>注册地址</label>
<van-text-ellipsis :content="data.enterpriseInfo.enterpriseAddress" rows="2" autosize expand-text="展开" collapse-text="收起" />
</div>
<div class="fold-div">
<label>经营范围</label>
<van-text-ellipsis :content="data.enterpriseInfo.businessScope" rows="2" autosize expand-text="展开" collapse-text="收起" />
</div>
</div>
<div class="look_all" @click="is_show=!is_show" :class="{ new_up: !is_show }">
<!-- <span>{{words}}</span>-->
<van-icon v-if="!is_show" name="arrow-down" />
<van-icon v-else name="arrow-up" />
</div>
</van-cell-group>
<van-divider class="divdsty"/>
<van-cell-group>
<!-- <div class="qy-name">案件信息</div>-->
<div class="search-button-list">
<!-- <span v-for="(item, index) in data?.optionList" :key="index" plain hairline-->
<!-- @click="searchDateType(item)"-->
<!-- :style="item.selected == true ? 'background-color:#1989fa;color:#ffffff':'background-color:#e3e0e0;color:#4c4c4c'">{{item.name}}-->
<!-- </span>-->
<span v-for="(item, index) in data?.optionList" :key="index" plain hairline
@click="searchDateType(item)"
:class="item.selected == true ? 'active':''">{{item.name}}
</span>
</div>
<div class="refresh_content" v-if="data?.checkDataList.length && data?.show == 1">
<van-pull-refresh v-model="data.refreshing_check" @refresh="onRefresh_check">
<van-list v-model:loading="data.loading_check" :finished="data.finished_check" finished-text="没有更多了" @load="onLoad_check">
<div class="goods_box" v-for="(item, index) in data?.checkDataList" :key="index">
<van-swipe-cell class="swipe_cell">
<div class="card_box">
<div class="card_box_span">
<p>{{ item.c601002 }}</p>
</div>
<div class="card_box_span">
<p><span class="card_box_label">执法日期:</span>
<!-- {{formattedTimeYYYYmmdd(item.c601005)}}, {{ item.lawEnforcerTwo }}</p>-->
{{formattedTimeYYYYmmdd(item.c601005)}}</p>
</div>
<div class="card_box_span">
<p v-if="item.c601015 == '01'"><span class="card_box_label">执法结果:</span> 合格
</p>
<p v-if="item.c601015 == '02'"><span class="card_box_label">执法结果:</span> 不合格
</p>
</div>
</div>
</van-swipe-cell>
</div>
</van-list>
</van-pull-refresh>
</div>
<div class="refresh_content" v-if="data?.forceDataList.length && data?.show == 2">
<van-pull-refresh v-model="data.refreshing_force" @refresh="onRefresh_force">
<van-list v-model:loading="data.loading_force" :finished="data.finished_force" finished-text="没有更多了" @load="onLoad_force">
<div class="goods_box" v-for="(item, index) in data?.forceDataList" :key="index">
<van-swipe-cell class="swipe_cell">
<div class="card_box">
<div class="card_box_span">
<p>{{ item.c201002 }}</p>
</div>
<div class="card_box_span">
<p><span class="card_box_label">执法主体:</span>{{ item.c201003 }}</p>
</div>
<div class="card_box_span">
<p><span class="card_box_label">处罚种类:</span> {{ item.cfzl }}</p>
</div>
<div class="card_box_span">
<p v-if="item.c206010 == '01'"><span class="card_box_label">处罚决定:</span>给予处罚
</p>
<p v-if="item.c206010 == '02'"><span class="card_box_label">处罚决定:</span>不予处罚
</p>
</div>
<div class="card_box_span">
<p><span class="card_box_label">处罚日期:</span>
{{formattedTimeYYYYmmdd(item.c206013)}}</p>
</div>
</div>
</van-swipe-cell>
</div>
</van-list>
</van-pull-refresh>
</div>
<div class="refresh_content" v-if="data?.punishDataList.length && data?.show == 3">
<van-pull-refresh v-model="data.refreshing_punish" @refresh="onRefresh_punish">
<van-list v-model:loading="data.loading_punish" :finished="data.finished_punish" finished-text="没有更多了" @load="onLoad_punish">
<div class="goods_box" v-for="(item, index) in data?.punishDataList" :key="index">
<van-swipe-cell class="swipe_cell">
<div class="card_box">
<div class="card_box_span">
<p v-if="item.c301002 != '无'">{{ item.c301002 }}</p>
<p v-if="item.c301002 == '无'">************</p>
</div>
<div class="card_box_span">
<p><span class="card_box_label">强制种类:</span>
<span v-if="item.c302002 == ''"></span>
{{ item.c302002 }}</p>
</div>
<div class="card_box_span">
<p><span class="card_box_label">强制措施:</span> {{ item.c302001 }}</p>
</div>
<div class="card_box_span">
<p><span class="card_box_label">批准时间:</span>
{{formattedTimeYYYYmmdd(item.c302007)}}</p>
</div>
</div>
</van-swipe-cell>
</div>
</van-list>
</van-pull-refresh>
</div>
</van-cell-group>
</van-form>
</div>
<Popup :visible="data.popupVisible" :content="data.popupContent" @close="closePopup" @reciveData="reciveData"/>
<Popup :visible="data.popupVisible2" :content="data.popupContent2" @close="closePopup" @reciveData="reciveData2"/>
<!-- </div>-->
</template>
<script setup name="register">
import {showSuccessToast} from 'vant';
import 'vant/es/toast/style';
import {addEnforcementRegistration, queryUserInfo, queryRegistrationList} from '@/api/enforce'
import {getEnterpriseInformation, queryXzjcjbxxList, queryQZAJList, queryCFAJList} from '@/api/enterprise'
import {getDict} from '@/api/Home'
import {reactive, ref} from "vue";
import {formattedTimeYYYYmmdd} from "@/util/util";
import {format} from 'date-fns';
import {uploadFile} from "@/util/fileUpload";
//用户筛选弹窗
import Popup from './userFilter.vue';
import {nameCorrect}from'../../util/fileUpload'
const {useMy} = $globalStore
const router = useRouter();
//路由参数
const route = useRoute();
let queryaddressId = ref("");
const data = reactive({
optionList: [
{name: "历史执法案件", val: 1, selected: true},
{name: "历史处罚案件", val: 2, selected: false},
{name: "历史强制案件", val: 3, selected: false}],
show: 1,
searchParam: {},
enterpriseInfo: {},
checkDataList: [],
punishDataList: [],
forceDataList: [],
showLawEnforcerFlag: false,
currentPage: 1,
good: "#7FFFD4",
bad: "#D3D3D3",
popupVisible: false,
popupContent: '',
popupVisible2: false,
popupContent2: '',
enterpriseNumberTmp: '',
loading_check: false,
finished_check: false,
refreshing_check: false,
curPage_check: 1,
loading_punish: false,
finished_punish: false,
refreshing_punish: false,
curPage_punish: 1,
loading_force: false,
finished_force: false,
refreshing_force: false,
curPage_force: 1,
});
let searchParam = reactive({
enterpriseNumber: "",
// 分页
pageNum: 1,
pageSize: 6,
});
const props = defineProps({
enterpriseNumber: {
type: String,
default: "",
},
});
const searchDateType = (item) => {
if (item.selected === false) {
data.optionList.forEach(item => {
item.selected = false
})
item.selected = true
data.show = item.val
}
}
const queryList = () => {
queryEnforcementInspectionProgramList(searchParam, success => {
console.log(success)
data.dataList = success.data;
freshMap.refreshLoad = false;
freshMap.listLoading = false;
freshMap.listFinished = true;
isLodding.value = false;
}, error => {
})
}
//3a0096181c184e5aa56f70923680856d$6e74ceda1463c165fd43eeeadce4f7cd
//初始化参数,获取扫码的企业统一信用编码
onMounted(() => {
nameCorrect();
//查询企业信息
getEnterpriseInformation(route?.query?.enterpriseNumber, success => {
// getEnterpriseInformation(props?.enterpriseNumber,success =>{
if (null != success.data) {
console.log(success);
data.enterpriseInfo.enterpriseName = success.data.enterpriseName
data.enterpriseInfo.enterpriseNumber = success.data.enterpriseNumber
data.enterpriseInfo.enterpriseType = success.data.companyOrgType
data.enterpriseInfo.enterpriseAddress = success.data.enterpriseAddress
data.enterpriseInfo.legalPerson = nameCorrect(success.data.legalPerson)
// data.enterpriseInfo.registeredCapital = success.data.registeredCapital +' (人民币/元)'
var amount = 0.00;
if (null != success.data.registeredCapital) {
amount = Number(success.data.registeredCapital).toFixed(2).replace(/\d(?=(\d{3})+\.)/g, '$&,');
}
data.enterpriseInfo.registeredCapital = amount + ' (万元人民币)'
// data.enterpriseInfo.operatingTerm = success.data.operatingTerm
var tmpoperatingTerm = success.data.operatingTerm;
var tmpoperatingTermEnd = success.data.operatingTermEnd;
if(tmpoperatingTermEnd == null || tmpoperatingTermEnd == "undefined"){
tmpoperatingTerm = tmpoperatingTerm + " 至 " + "无固定期限";
}else{
tmpoperatingTerm = tmpoperatingTerm + " 至 " + tmpoperatingTermEnd;
}
// if (tmpoperatingTerm.indexOf('null') >= 0) {
// tmpoperatingTerm = tmpoperatingTerm.substring(0, tmpoperatingTerm.indexOf('null')) + " 无固定期限";
// }
data.enterpriseInfo.operatingTerm = tmpoperatingTerm;
data.enterpriseInfo.businessScope = success.data.businessScope
data.enterpriseInfo.establishmentTime = format(success.data.establishmentTime, 'yyyy-MM-dd');
//查询企业类型
getDict({"dictType": "enterpriseType"}, success => {
if (success.data != null) {
success.data.forEach(res => {
if (data.enterpriseInfo.enterpriseType === res.dictValue) {
data.enterpriseInfo.enterpriseType = res.dictLabel
}
})
}
}, error => {
})
data.enterpriseNumberTmp = success.data.enterpriseNumber
// 获取历史执法案件列表
queryList_check(success.data.enterpriseNumber);
// 获取历史强制案件列表
queryList_punish(success.data.enterpriseNumber);
// 获取历史处罚案件列表
queryList_force(success.data.enterpriseNumber);
}
}, error => {
})
})
// 返回
const goBack = () => {
router.go(-1);
};
const toDetailView = (id) => {
console.log(id)
router.push(
{
path: "/registrationDetail",
query: {
id: id,
}
});
}
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;
}
// 获取历史执法案件列表
const queryList_check = (enterpriseNumber) => {
searchParam.enterpriseNumber = enterpriseNumber;
searchParam.pageNum = (data.curPage_check-1)*searchParam.pageSize;
queryXzjcjbxxList(searchParam, res => {
console.log("历史执法案件---", res.rows)
data.curPage_check++;
data.loading_check = false; // 查出结果停止加载
if (res.total <= data.checkDataList.length) {
// 查到最后没数据
data.finished_check = true;
return;
}
// data.checkDataList = res.data;
data.checkDataList.push(...res.rows);
}, error => {
});
};
//下拉刷新
const onRefresh_check = () => {
data.curPage_check = 1;
// 清空列表数据
data.checkDataList = [];
data.finished_check = false;
// 重新加载数据
// 将 loading 设置为 true,表示处于加载状态
data.loading_check = true;
onLoad_check();
};
// 触底加载
const onLoad_check = () => {
setTimeout(() => {
if (data.refreshing_check) {
data.refreshing_check = false;
}
queryList_check(data.enterpriseNumberTmp);
}, 1000);
};
// 获取历史处罚案件列表
const queryList_force = (enterpriseNumber) => {
searchParam.enterpriseNumber = enterpriseNumber;
searchParam.pageNum = (data.curPage_force-1)*searchParam.pageSize;
queryCFAJList(searchParam, res => {
console.log("历史处罚案件---", res.rows)
data.curPage_force++;
data.loading_force = false; // 查出结果停止加载
if (res.total <= data.forceDataList.length) {
// 查到最后没数据
data.finished_force = true;
return;
}
// data.punishDataList = res.data;
res.rows.forEach(res => {
var obj = {}
var textArr = [];
obj = res;
var arr = res.c206011.split(",");
for (const key in arr) {
if (arr[key] == "01") textArr.push("警告");
if (arr[key] == "02") textArr.push("通报批评");
if (arr[key] == "03") textArr.push("罚款");
if (arr[key] == "04") textArr.push("没收违法所得");
if (arr[key] == "05") textArr.push("没收违法财产");
if (arr[key] == "06") textArr.push("责令停业整改");
if (arr[key] == "07") textArr.push("暂扣许可证件");
if (arr[key] == "08") textArr.push("行政拘留");
if (arr[key] == "09") textArr.push("吊销许可证件");
}
obj.cfzl = textArr.join(",");
data.forceDataList.push(obj);
})
// data.forceDataList = res.data;
// data.forceDataList.push(...res.rows);
}, error => {
})
}
//下拉刷新
const onRefresh_force = () => {
data.curPage_force = 1;
// 清空列表数据
data.forceDataList = [];
data.finished_force = false;
// 重新加载数据
// 将 loading 设置为 true,表示处于加载状态
data.loading_force = true;
onLoad_force();
};
// 触底加载
const onLoad_force = () => {
setTimeout(() => {
if (data.refreshing_force) {
data.refreshing_force = false;
}
queryList_force(data.enterpriseNumberTmp);
}, 1000);
};
// 获取历史强制案件列表
const queryList_punish = (enterpriseNumber) => {
searchParam.enterpriseNumber = enterpriseNumber;
searchParam.pageNum = (data.curPage_punish-1)*searchParam.pageSize;
queryQZAJList(searchParam, res => {
console.log("历史强制案件---", res.rows)
data.curPage_punish++;
data.loading_punish = false; // 查出结果停止加载
if (res.total <= data.punishDataList.length) {
// 查到最后没数据
data.finished_punish = true;
return;
}
res.rows.forEach(res => {
var obj = {}
obj = res;
obj.cfzl = "罚款";
data.punishDataList.push(obj);
})
// data.punishDataList.push(...res.rows);
}, error => {
})
}
//下拉刷新
const onRefresh_punish = () => {
data.curPage_punish = 1;
// 清空列表数据
data.punishDataList = [];
data.finished_punish = false;
// 重新加载数据
// 将 loading 设置为 true,表示处于加载状态
data.loading_punish = true;
onLoad_punish();
};
// 触底加载
const onLoad_punish = () => {
setTimeout(() => {
if (data.refreshing_punish) {
data.refreshing_punish = false;
}
queryList_punish(data.enterpriseNumberTmp);
}, 1000);
};
</script>
<script>
export default {
data()
{
return {
is_show: true
}
},
computed: {
words()
{
if (this.is_show === false)
return '展开'
else if (this.is_show === true)
return '收起'
else if (this.is_show === '')
return null
else
return null
}
},
}
</script>
<style lang="less" scoped>
.address_edit {
display: flex;
flex-direction: column;
height: 100%;
overflow: hidden;
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;
margin-top: 0.15rem;
}
.qy-name, .zf-name {
margin: 0 0.27rem;
font-size: 0.42rem;
height: 1.2rem;
background-color: white;
font-weight: 600;
line-height: 3.5;
}
/* 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;
}
.divdsty {
margin: auto;
width: 100%;
height: 0.25rem;
background-color: #ebf3fb;
border: 0;
}
.file-upload {
position: relative;
min-height: 3.0rem;
max-height: 6.5rem;
padding: 1rem 0.27rem 0.27rem 0.43rem;
box-sizing: border-box;
}
.file-upload-center {
position: absolute;
top: 0.27rem;
left: 0.43rem;
width: 90%;
height: 0.65rem;
font-size: 0.37rem;
span {
font-size: 0.32rem;
color: rgb(221, 229, 227);
}
}
.file {
position: relative;
width: 100%;
height: calc(100% - 1.5rem);
}
/deep/ .van-uploader__upload, /deep/ .van-uploader__preview-image {
width: 1.95rem !important;
}
.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);
}
.goods_box {
display: flex;
background-color: #fff;
margin: 0.27rem;
border-radius: 0.27rem;
.swipe_cell {
margin: 0 0 1% 0;
width: 100%;
box-shadow: 0 0 0.1rem #e7e7e7;
border-radius: 0.15rem;
}
.card_box {
display: flex;
width: 100%;
padding: 0.27rem 0;
flex-direction: column;
border-bottom: 1px solid #f3f4f5;
.card_body {
background-color: #fff;
border-radius: 0.27rem;
flex: 1;
}
.card_box_span {
display: flex;
align-items: center;
margin: 1% 0;
padding: 0 3%;
color: #666;
font-size: 0.35rem;
line-height: 1.5;
}
.card_box_action {
position: absolute;
right: 4%;
}
}
}
.search-button-list {
display: flex;
margin: 0 3% -1px;
height: 1rem;
padding: 0 0 3% 0;
}
/*.search-button-list span {
display: inline-block;
position: relative;
margin: 3% 1%;
padding: 2% 5%;
height: 50%;
white-space: nowrap;
background-color: #e3e0e0;
border-radius: 0.5rem;
color: #4c4c4c;
font-size: 0.3rem;
line-height: 1.75;
}*/
.search-button-list span {
margin: 5% 2% 0;
width: 30%;
height: 90%;
background: #fff;
border-color: #fff;
color: #4c4c4c;
font-size: 0.35rem;
text-align: center;
}
.search-button-list span.active {
position: relative;
background-color: #fff;
border-color: #fff;
color: #1367fe;
font-weight: 600;
}
.search-button-list span.active::after {
display: block;
content: "";
position: absolute;
z-index: 10;
left: 50%;
top: 70%;
transform: translate(-50%, -50%);
width: 100%;
height: 0.05rem;
background-color: #1367fe;
}
.goods_box .swipe_cell .card_box .card_box_span p {
margin: 0;
color: #999;
}
.goods_box .swipe_cell .card_box .card_box_span:first-child p {
//height: 0.65rem;
color: #000;
font-size: 0.37rem;
}
/deep/ .van-cell-group {
margin-top: -1px;
}
/deep/ .van-button {
margin: 2% -2% 3% 4.5%;
padding: 2% 3%;
font-size: 0.3rem;
}
/deep/ .van-text-ellipsis {
font-size: 0.37rem;
padding: 0.27rem 0.43rem;
}
.fold-div {
position: relative;
display: flex;
padding: 0 0.43rem 0.13rem;
width: 100%;
box-sizing: border-box;
color: rgb(50, 50, 51);
font-size: 0.37rem;
}
.fold-div::after {
position: absolute;
left: 0.43rem;
bottom: 0;
width: calc(100% - 0.86rem);
border-bottom: 1px solid #ebedf0;
content: "";
transform: scaleY(.5);
}
.fold-div label {
width: 2.6rem;
padding: 0.27rem 0px 0.27rem 0;
}
.fold-div .van-text-ellipsis {
padding: 0.27rem 0;
width: calc(100% - 2.6rem);
color: #666;
}
/deep/ .mult-line .van-field__label {
padding-right: 0.5rem;
line-height: 1.25;
}
/deep/ .van-picker-column__item--selected {
background: #e5eef9;
color: #000;
font-weight: 600;
}
/deep/ .van-field .van-field__control {
color: #666;
}
/deep/ .van-field__label--required:before {
margin-left: -0.2rem;
}
/***折叠**/
.look_all {
display: flex;
align-items: center;
justify-content: center;
width: 100%;
height: 0.75rem;
font-size: 0.3rem;
color: #666;
cursor: pointer;
user-select: none;
border-radius: 0.05rem;
/*background: linear-gradient(to top, rgba(255, 255, 255, .9), rgba(255, 255, 255, .35));*/
background: #fff;
}
.look_all i {
margin: 0 0.2rem;
padding: 0.1rem 0.3rem 0;
color: rgba(0, 0, 0, 0.35);
font-size: 0.4rem;
height: 0.5rem;
/*background: linear-gradient(to bottom, rgba(0, 0, 0, .1), transparent);*/
border-radius: 0.2rem 0.2rem 0 0;
}
.new_detail {
padding-top: 0.3rem;
height: 100%;
transition: height 2s linear;
}
.work_detail {
padding-top: 0.3rem;
height: 0.2rem;
overflow: hidden;
}
.new_up {
position: absolute;
bottom: 0.1rem;
}
/***/
</style>