Browse Source

禅道bug清一版

master
蟑螂恶霸 2 years ago
parent
commit
e5b79bcf3a
  1. 600
      src/views/Home.vue
  2. 14
      src/views/enforce/enforcementPlanAdd.vue
  3. 10
      src/views/enforce/enterpriseBaseInfo.vue
  4. 3
      src/views/enforce/enterpriseScanPreview.vue
  5. 898
      src/views/enforce/historyCheck.vue
  6. 497
      src/views/enforce/noScan.vue
  7. 18
      src/views/enforce/sign.vue
  8. 852
      src/views/enterprise/caseFilter.vue
  9. 1153
      src/views/enterprise/complaint.vue
  10. 14
      src/views/enterprise/complaintNoScan.vue
  11. 12
      src/views/enterprise/registrationEdit.vue
  12. 39
      src/views/enterprise/registrationList.vue

600
src/views/Home.vue

@ -1,311 +1,323 @@
<template>
<div class="home app_content">
<!-- 导航栏 -->
<!-- <div class="header_body">-->
<!-- <header-nav :leftArrow="false" titelText="执法监督码"></header-nav>-->
<!-- </div>-->
<!-- 中间 -->
<div class="warp_body">
<div class="logobox"></div>
<!-- <refresh-list v-model:freshMap="freshMap" @refresh="onRefresh" @onLoad="onLoad"> -->
<div class="carousel_box" @onLoad="onLoad">
<carousel-card v-if="carouselList.length" v-model:carouselList="carouselList"></carousel-card>
</div>
<div class="boutique_box">
<!-- <van-cell :border="false" title="精品" /> -->
<div class="boutique_body">
<!-- <goodsCard :goodsList="boutique" :cardAttr="boutiqueAttr"></goodsCard> -->
<div class="box-qr-code" @click="toRegisterView">
<span class="box-qr-code-text">执法监督码</span>
</div>
</div>
<div class="boutique_body">
<!-- <goodsCard :goodsList="boutique" :cardAttr="boutiqueAttr"></goodsCard> -->
<div class="box-info" @click="toRegistrationListView">
<span class="box-info-text" >行政检查信息</span>
<div class="home app_content">
<!-- 导航栏 -->
<!-- <div class="header_body">-->
<!-- <header-nav :leftArrow="false" titelText="执法监督码"></header-nav>-->
<!-- </div>-->
<!-- 中间 -->
<div class="warp_body">
<div class="logobox"></div>
<!-- <refresh-list v-model:freshMap="freshMap" @refresh="onRefresh" @onLoad="onLoad"> -->
<div class="carousel_box" @onLoad="onLoad">
<carousel-card v-if="carouselList.length" v-model:carouselList="carouselList"></carousel-card>
</div>
<div class="box-complaint" @click="toComplaintView">
<span class="box-complaint-text">执法投诉</span>
<div class="boutique_box">
<!-- <van-cell :border="false" title="精品" /> -->
<div class="boutique_body">
<!-- <goodsCard :goodsList="boutique" :cardAttr="boutiqueAttr"></goodsCard> -->
<div class="box-qr-code" @click="toRegisterView">
<span class="box-qr-code-text">执法监督码</span>
</div>
</div>
<div class="boutique_body">
<!-- <goodsCard :goodsList="boutique" :cardAttr="boutiqueAttr"></goodsCard> -->
<div class="box-info" @click="toRegistrationListView">
<span class="box-info-text">行政检查信息</span>
</div>
<div class="box-complaint" @click="toComplaintView">
<span class="box-complaint-text">执法投诉</span>
</div>
</div>
</div>
</div>
</div>
<!-- <div class="recommend_box">
<van-cell :border="false" title="推荐" />
<div class="recommend_body">
<goodsCard :goodsList="recommend"></goodsCard>
</div>
</div> -->
<!-- </refresh-list> -->
</div>
<!-- 底部 -->
<div class="footer_body">
<footer-nav></footer-nav>
</div>
</div>
<!-- <div class="recommend_box">
<van-cell :border="false" title="推荐" />
<div class="recommend_body">
<goodsCard :goodsList="recommend"></goodsCard>
</div>
</div> -->
<!-- </refresh-list> -->
</div>
<!-- 底部 -->
<div class="footer_body">
<footer-nav></footer-nav>
</div>
</div>
</template>
<script setup name="Home">
import Vconsolefrom from 'vconsole';
import * as w6s from 'szient-js-sdk';
import sha1 from 'crypto-js/sha1';
import {getEnterpriseMerchantAuthorization,getSiqLoginAuth, getSiqLoginAuthTest} from '../api/Home';
import {showSuccessToast} from "vant";
import 'vant/es/toast/style';
const { useCommon } = $globalStore;
const router = useRouter();
const route = useRoute();
let carouselList = reactive([]); // 轮播列表
let freshMap = reactive({
refreshLoad: false, // 是否刷新
listLoading: false, // 是否加载中
listFinished: false, // 是否加载完成标识
});
const data = reactive({});
const boutiqueAttr = reactive({
columnNum: 4,
itemClass: "boutique_item",
goodsCradclass: "boutique-crad",
}); // 商品卡片展示
//获取轮播
const getCarousel = async () => {
// const res = await useHome.getCarousel();
// if (res?.code === 20000) {
// carouselList = res?.data;
// }
};
//精品
const boutiqueGoods = async () => {
// const res = await useHome.boutiqueGoods();
// if (res?.code === 20000) {
// boutique = res?.data;
// }
};
const toRegisterView = async() =>{
if(useCommon.enterpriseNumber == null || useCommon.enterpriseNumber == ""){
router.push({ path: "/enterprise/register" });
}else{
import Vconsolefrom from 'vconsole';
import * as w6s from 'szient-js-sdk';
import sha1 from 'crypto-js/sha1';
import {getEnterpriseMerchantAuthorization, getSiqLoginAuth, getSiqLoginAuthTest} from '../api/Home';
import {showSuccessToast} from "vant";
import 'vant/es/toast/style';
const {useCommon} = $globalStore;
const router = useRouter();
const route = useRoute();
let carouselList = reactive([]); // 轮播列表
let freshMap = reactive({
refreshLoad: false, // 是否刷新
listLoading: false, // 是否加载中
listFinished: false, // 是否加载完成标识
});
const data = reactive({});
const boutiqueAttr = reactive({
columnNum: 4,
itemClass: "boutique_item",
goodsCradclass: "boutique-crad",
}); // 商品卡片展示
//获取轮播
const getCarousel = async () => {
// const res = await useHome.getCarousel();
// if (res?.code === 20000) {
// carouselList = res?.data;
// }
};
//精品
const boutiqueGoods = async () => {
// const res = await useHome.boutiqueGoods();
// if (res?.code === 20000) {
// boutique = res?.data;
// }
};
const toRegisterView = async () => {
if (useCommon.enterpriseNumber == null || useCommon.enterpriseNumber == "") {
router.push({path: "/enterprise/register"});
} else {
router.push({
path: "/enterprise/qrCode",
query: {
enterpriseNumber: useCommon.enterpriseNumber,
}
});
}
};
const toRegistrationListView = async () => {
router.push({
path: "/enterprise/registrationList",
});
}
const toComplaintView = async () => {
router.push({
path: "/enterprise/qrCode",
query: {
enterpriseNumber: useCommon.enterpriseNumber,
}
path: "/enterprise/complaint",
query: {
isSelect: true
}
});
}
};
const toRegistrationListView = async() =>{
router.push({
path: "/enterprise/registrationList",
});
}
const toComplaintView = async() =>{
router.push({
path: "/enterprise/complaint",
});
}
//下拉刷新
const onRefresh = () => {
freshMap.listFinished = false;
freshMap.listLoading = true;
freshMap.refreshLoad = true;
// Promise.all([getCarousel(), boutiqueGoods(), recommendGoods()]).then(() => {
// freshMap.refreshLoad = false;
// });
};
// 触底加载
const onLoad = () => {
// recommendGoods(true);
};
const generateRandomNumber =() =>{
const min = 100000;
const max = 999999;
const randomNum = (Math.floor(Math.random() * (max - min + 1)) + min);
return randomNum.toString().padStart(6, '0');
}
const getEnterpriseMerchant =(phoneNumber) => {
getEnterpriseMerchantAuthorization({merchantTel: phoneNumber},success =>{
if(!(success.data == null && success.data.length == 0)){
useCommon.SET_USER_ENTERPRISE_NUMBER(success.data[0].enterpriseNumber);
}
},error =>{
})
}
onMounted(() => {
// console.log(useCommon.phonenumber)
// useCommon.SET_USER_PHONENUMBER(success.data.phonenumber);
new Vconsolefrom();
const access_key = '6374106c5eb449a4ad6c2430f30796e6';
const access_secret = '434fec85aa5846e88bbeb8fac6cf6d7f';
// generateRandomNumber()
const nonce = generateRandomNumber();
const timestamp = `${Date.now()}`;
const str = [access_secret, nonce, timestamp]
.sort()
.reduce((str, item) => str += item, '');
// 最终还需要转成全小写
const signature = sha1(str).toString().toLowerCase();
// //深i企鉴权测试
// getSiqLoginAuthTest({userId: "1608644307579883522", userName: "汪鑫"},success =>{
// useCommon.SET_USER_ENTERPRISE_NUMBER(success.data.enterpriseNumber);
// useCommon.SET_USER_PHONENUMBER(success.data.phonenumber.toString());
// console.log("phone : "+useCommon.phonenumber);
// },error =>{})
w6s.config({
access_key: access_key,
nonce: nonce,
timestamp: timestamp,
signature: signature,
})
.then((res) => {
// 成功
console.log("鉴权",res);
})
.catch((err) => {
// 失败
// console.log(err)
console.log("鉴权",err);
});
w6s.ready(() => {
w6s.szient.getAuthCode({
success: function(res) {
console.log(res)
console.log("认证",res);
console.log("code: "+res.result.result.code);
getSiqLoginAuth({code: res.result.result.code},success =>{
useCommon.SET_USER_PHONENUMBER(success.data.phonenumber.toString());
useCommon.SET_USER_ID(success.data.userId);
useCommon.SET_USER_ENTERPRISE_NUMBER(success.data.enterpriseNumber);
getEnterpriseMerchant(success.data.phonenumber.toString());
},error =>{
console.log("error : "+ error)
//下拉刷新
const onRefresh = () => {
freshMap.listFinished = false;
freshMap.listLoading = true;
freshMap.refreshLoad = true;
// Promise.all([getCarousel(), boutiqueGoods(), recommendGoods()]).then(() => {
// freshMap.refreshLoad = false;
// });
};
// 触底加载
const onLoad = () => {
// recommendGoods(true);
};
const generateRandomNumber = () => {
const min = 100000;
const max = 999999;
const randomNum = (Math.floor(Math.random() * (max - min + 1)) + min);
return randomNum.toString().padStart(6, '0');
}
const getEnterpriseMerchant = (phoneNumber) => {
getEnterpriseMerchantAuthorization({merchantTel: phoneNumber}, success => {
if (!(success.data == null && success.data.length == 0)) {
useCommon.SET_USER_ENTERPRISE_NUMBER(success.data[0].enterpriseNumber);
}
}, error => {
})
}
onMounted(() => {
// console.log(useCommon.phonenumber)
// useCommon.SET_USER_PHONENUMBER(success.data.phonenumber);
new Vconsolefrom();
const access_key = '6374106c5eb449a4ad6c2430f30796e6';
const access_secret = '434fec85aa5846e88bbeb8fac6cf6d7f';
// generateRandomNumber()
const nonce = generateRandomNumber();
const timestamp = `${Date.now()}`;
const str = [access_secret, nonce, timestamp]
.sort()
.reduce((str, item) => str += item, '');
// 最终还需要转成全小写
const signature = sha1(str).toString().toLowerCase();
// //深i企鉴权测试
// getSiqLoginAuthTest({userId: "1608644307579883522", userName: "汪鑫"},success =>{
// useCommon.SET_USER_ENTERPRISE_NUMBER(success.data.enterpriseNumber);
// useCommon.SET_USER_PHONENUMBER(success.data.phonenumber.toString());
// console.log("phone : "+useCommon.phonenumber);
// },error =>{})
w6s.config({
access_key: access_key,
nonce: nonce,
timestamp: timestamp,
signature: signature,
})
},
fail: function(err) {
console.log(err)
console.log("认证",err);
},
});
});
// getEnterpriseMerchantAuthorization({merchantTel: useCommon.phonenumber},success =>{
// if(!(success.data == null && success.data.length == 0)){
// console.log("success.data[0].enterpriseNumber :" + success.data[0].enterpriseNumber)
// useCommon.SET_USER_ENTERPRISE_NUMBER(success.data[0].enterpriseNumber);
// }
// },error =>{
// })
});
.then((res) => {
// 成功
console.log("鉴权", res);
})
.catch((err) => {
// 失败
// console.log(err)
console.log("鉴权", err);
});
w6s.ready(() => {
w6s.szient.getAuthCode({
success: function (res) {
console.log(res)
console.log("认证", res);
console.log("code: " + res.result.result.code);
getSiqLoginAuth({code: res.result.result.code}, success => {
useCommon.SET_USER_PHONENUMBER(success.data.phonenumber.toString());
useCommon.SET_USER_ID(success.data.userId);
useCommon.SET_USER_ENTERPRISE_NUMBER(success.data.enterpriseNumber);
getEnterpriseMerchant(success.data.phonenumber.toString());
}, error => {
console.log("error : " + error)
})
},
fail: function (err) {
console.log(err)
console.log("认证", err);
},
});
});
// getEnterpriseMerchantAuthorization({merchantTel: useCommon.phonenumber},success =>{
// if(!(success.data == null && success.data.length == 0)){
// console.log("success.data[0].enterpriseNumber :" + success.data[0].enterpriseNumber)
// useCommon.SET_USER_ENTERPRISE_NUMBER(success.data[0].enterpriseNumber);
// }
// },error =>{
// })
});
</script>
<style lang="less" scoped>
.home {
display: flex;
flex-direction: column;
height: 100%;
overflow: hidden;
background-color: #f4f4f4;
.warp_body {
position: relative;
background: url("../assets/images/bg_c.jpg");
background-size: cover;
overflow-x: hidden;
.carousel_box {
height: 150px;
width: 100%;
padding-bottom: 10px;
}
}
.boutique_box {
position: absolute;
width: 100%;
bottom: 1%;
.boutique_body {
padding: 0px 0px 10px 0px;
display: flex;
justify-content: center;
};
.box-qr-code{
width: 90%;
text-align: right;
height: 3.66667rem;
background-color: #ff976a;
border-radius: 10px;
background: url("../assets/images/item_code.png");
background-size: cover;
.box-qr-code-text{
margin: 0.35rem 0.5rem 0 0;
display: block;
font-size: 17px
}
}
.box-info{
width: 52%;
text-align: right;
height: 3.66667rem;
background-color: #ff976a;
border-radius: 10px;
background: url("../assets/images/item_check.png");
background-size: cover;
.box-info-text{
margin: 0.35rem 0.5rem 0 0;
display: block;
font-size: 17px
}
.home {
display: flex;
flex-direction: column;
height: 100%;
overflow: hidden;
background-color: #f4f4f4;
.warp_body {
position: relative;
background: url("../assets/images/bg_c.jpg");
background-size: cover;
overflow-x: hidden;
.carousel_box {
height: 150px;
width: 100%;
padding-bottom: 10px;
}
}
.boutique_box {
position: absolute;
width: 100%;
bottom: 1%;
.boutique_body {
padding: 0px 0px 10px 0px;
display: flex;
justify-content: center;
}
;
.box-qr-code {
width: 90%;
text-align: right;
height: 3.66667rem;
background-color: #ff976a;
border-radius: 10px;
background: url("../assets/images/item_code.png");
background-size: cover;
.box-qr-code-text {
margin: 0.35rem 0.5rem 0 0;
display: block;
font-size: 17px
}
}
.box-info {
width: 52%;
text-align: right;
height: 3.66667rem;
background-color: #ff976a;
border-radius: 10px;
background: url("../assets/images/item_check.png");
background-size: cover;
.box-info-text {
margin: 0.35rem 0.5rem 0 0;
display: block;
font-size: 17px
}
}
.box-complaint {
width: 36%;
text-align: right;
height: 3.66667rem;
background-color: #ff976a;
border-radius: 10px;
margin-left: 2%;
background: url("../assets/images/item_complain.png");
background-size: cover;
.box-complaint-text {
margin: 0.35rem 0.5rem 0 0;
display: block;
font-size: 17px
}
}
}
.recommend_box {
.recommend_body {
width: 100%;
}
}
}
.box-complaint{
width: 36%;
text-align: right;
height: 3.66667rem;
background-color: #ff976a;
border-radius: 10px;
margin-left: 2%;
background: url("../assets/images/item_complain.png");
background-size: cover;
.box-complaint-text{
margin:0.35rem 0.5rem 0 0;
display: block;
font-size: 17px
}
.logobox {
position: relative;
top: 4%;
left: 5%;
z-index: 99;
width: 82%;
height: 10vh;
background: url("../assets/images/logo.png") no-repeat;
background-size: 100% auto;
}
}
.recommend_box {
.recommend_body {
width: 100%;
}
}
}
.logobox {
position: relative;
top: 4%;
left: 5%;
z-index: 99;
width: 82%;
height: 10vh;
background: url("../assets/images/logo.png") no-repeat;
background-size: 100% auto;
}
</style>

14
src/views/enforce/enforcementPlanAdd.vue

@ -81,7 +81,7 @@
<div class="file-upload-center">
文件上传 <span>(不多于9张)</span>
</div>
<van-uploader v-model="data.fileListObj" class="file" :after-read="uploadFiles" multiple @oversize="onOversize" :before-delete="deleteFile" accept=".pdf">
<van-uploader v-model="data.fileListObj" max-count="9" class="file" :after-read="uploadFiles" multiple @oversize="onOversize" :before-delete="deleteFile" accept=".pdf">
<template #preview-cover="{ file }">
<div class="preview-cover van-ellipsis">{{ file.name }}</div>
</template>
@ -234,18 +234,16 @@ const uploadFiles = (file) =>{
}
const deleteFile = (file,index) =>{
console.log(index);
data.fileListObj.filter((item, indexs) => {
if (index.index == indexs) {
data.fileListObj.splice(indexs, 1);//splice 删除
}
});
// data.fileListObj.filter((item, indexs) => {
// if (index.index == indexs) {
// data.fileListObj.splice(indexs, 1);//splice 删除
// }
// });
submitData.fileList.filter((item, indexs) => {
if (index.index == indexs) {
submitData.fileList.splice(indexs, 1);//splice 删除
}
});
console.log(submitData.fileList);
return true;
}
onMounted(() => {

10
src/views/enforce/enterpriseBaseInfo.vue

@ -246,10 +246,16 @@ onMounted(() =>{
data.enterpriseInfo.enterpriseType = success.data.companyOrgType
data.enterpriseInfo.enterpriseAddress = success.data.enterpriseAddress
data.enterpriseInfo.legalPerson = 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;
tmpoperatingTerm = tmpoperatingTerm.substring(0, success.data.operatingTerm.indexOf('null'));
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');

3
src/views/enforce/enterpriseScanPreview.vue

@ -95,7 +95,8 @@ const toSign = () =>{
router.push({
path: "/sign",
query:{
enterpriseNumber: data.enterpriseNumber
enterpriseNumber: data.enterpriseNumber,
isNoScan: false
}
});
};

898
src/views/enforce/historyCheck.vue

@ -1,454 +1,474 @@
<template>
<div class="shop app_content">
<!-- 导航栏 -->
<div class="header_body">
<header-nav :slefBack="true" @goBack="goBack" :titelText="`行政检查信息查询`"/>
<!-- <header-nav :slefBack="true" @goBack="goBack" :titelText="`历史检查信息`"/> -->
</div>
<van-search v-model="searchParam.searchValue" show-action placeholder="执法事项/执法部门/执法人员/企业名称 " @search="onSearch">
<template #action>
<div @click="onClickButton">搜索</div>
</template>
</van-search>
<div class="search-button-list">
<van-button plain hairline class="search-button" @click="searchDateType()" round type="primary" size="mini">全部</van-button>
<van-button plain hairline class="search-button" @click="searchDateType(1)" round type="primary" size="mini">本月</van-button>
<van-button plain hairline class="search-button" @click="searchDateType(2)" round type="primary" size="mini">本季</van-button>
<van-button plain hairline class="search-button" @click="searchDateType(3)" round type="primary" size="mini">本年</van-button>
<van-button plain hairline class="search-button" @click="selectDate" round type="primary" size="mini">筛选</van-button>
</div>
<div class="search-button-date">
<span class="date-select" v-show="data.dateShow" @click="selectDate">{{ data.dateSearch }}</span>
<div style="border-color: black;" class="van-hairline--bottom"></div>
<van-popup v-model:show="data.showDatePicker" position="bottom">
<van-date-picker
title="选择日期"
v-model="data.currentDate"
:min-date="data.minDate"
:max-date="data.maxDate"
:columns-type="data.columnsType"
@confirm="onDateConfirm"
@cancel="cancelSelectDate"
/>
</van-popup>
</div>
<!-- 中间 -->
<div class="shop-center">
<lodding-card :isLodding="isLodding">
<refresh-list v-model:freshMap="freshMap" @refresh="onRefresh" @onLoad="onLoad"
:resetScroll="resetScroll" class="refresh_box">
<div class="refresh_content" v-if="data?.dataList.length">
<div class="goods_box" v-for="(item, index) in data?.dataList" :key="index">
<van-swipe-cell class="swipe_cell">
<div class="card_box" >
<div class="card_box_span">
<p>执法时间:{{ item.enforcementTime }}
<span class="card_box_action" v-if="item.isSubmit == 0">
<van-button @click="toEditView(item.id)" type="primary" size="mini">编辑</van-button>
<div class="shop app_content">
<!-- 导航栏 -->
<div class="header_body">
<header-nav :slefBack="true" @goBack="goBack" :titelText="`行政检查信息查询`"/>
<!-- <header-nav :slefBack="true" @goBack="goBack" :titelText="`历史检查信息`"/> -->
</div>
<van-search v-model="searchParam.searchValue" show-action placeholder="执法事项/执法部门/执法人员/企业名称 " @search="onSearch">
<template #action>
<div @click="onClickButton">搜索</div>
</template>
</van-search>
<div class="search-button-list">
<van-button plain hairline class="search-button" @click="searchDateType()" round type="primary" size="mini">
全部
</van-button>
<van-button plain hairline class="search-button" @click="searchDateType(1)" round type="primary"
size="mini">本月
</van-button>
<van-button plain hairline class="search-button" @click="searchDateType(2)" round type="primary"
size="mini">本季
</van-button>
<van-button plain hairline class="search-button" @click="searchDateType(3)" round type="primary"
size="mini">本年
</van-button>
<van-button plain hairline class="search-button" @click="selectDate" round type="primary" size="mini">筛选
</van-button>
</div>
<div class="search-button-date">
<span class="date-select" v-show="data.dateShow" @click="selectDate">{{ data.dateSearch }}</span>
<div style="border-color: black;" class="van-hairline--bottom"></div>
<van-popup v-model:show="data.showDatePicker" position="bottom">
<van-date-picker
title="选择日期"
v-model="data.currentDate"
:min-date="data.minDate"
:max-date="data.maxDate"
:columns-type="data.columnsType"
@confirm="onDateConfirm"
@cancel="cancelSelectDate"
/>
</van-popup>
</div>
<!-- 中间 -->
<div class="shop-center">
<lodding-card :isLodding="isLodding">
<refresh-list v-model:freshMap="freshMap" @refresh="onRefresh" @onLoad="onLoad"
:resetScroll="resetScroll" class="refresh_box">
<div class="refresh_content" v-if="data?.dataList.length">
<div class="goods_box" v-for="(item, index) in data?.dataList" :key="index">
<van-swipe-cell class="swipe_cell">
<div class="card_box">
<div class="card_box_span">
<p>执法时间:{{ item.enforcementTime }}
<span class="card_box_action" v-if="item.isSubmit == 0">
<van-button @click="toEditView(item.id)" type="primary"
size="mini">编辑</van-button>
</span>
<span class="remsty">未扫码</span>
</p>
</div>
<!-- <van-divider :style="{ color: '#1989fa', borderColor: '#1989fa',padding: '0 5px' }" />-->
<div @click="toDetailView(item.id)">
<div class="van-hairline--bottom"></div>
<div class="card_box_span">
<p>{{ item.lawEnforcementItemText }}</p>
</div>
<div class="card_box_span">
<p><span class="card_box_label">执法部门:</span> {{ item.lawEnforcement }}</p>
</div>
<div class="card_box_span">
<p><span class="card_box_label">执法人员:</span> {{ item.lawEnforcer }} , {{ item.lawEnforcerTwo }}</p>
</div>
<div class="card_box_span">
<p><span class="card_box_label">企业名称:</span> {{ item.enterpriseName }}</p>
</div>
</div>
</div>
</van-swipe-cell>
</div>
</div>
<van-empty v-else class="no_data" description="暂无数据" />
</refresh-list>
</lodding-card>
</div>
<!-- 底部 -->
<!-- <div class="shop_footer_body">-->
<!-- <footer-nav></footer-nav>-->
<!-- </div>-->
</div>
<span v-if="null != item.enforce" class="remsty">未扫码</span>
</p>
</div>
<!-- <van-divider :style="{ color: '#1989fa', borderColor: '#1989fa',padding: '0 5px' }" />-->
<div @click="toDetailView(item.id)">
<div class="van-hairline--bottom"></div>
<div class="card_box_span">
<p>{{ item.lawEnforcementItemText }}</p>
</div>
<div class="card_box_span">
<p><span class="card_box_label">执法部门:</span> {{ item.lawEnforcement }}</p>
</div>
<div class="card_box_span">
<p><span class="card_box_label">执法人员:</span> {{ item.lawEnforcer }} , {{
item.lawEnforcerTwo }}</p>
</div>
<div class="card_box_span">
<p><span class="card_box_label">企业名称:</span> {{ item.enterpriseName }}</p>
</div>
</div>
</div>
</van-swipe-cell>
</div>
</div>
<van-empty v-else class="no_data" description="暂无数据"/>
</refresh-list>
</lodding-card>
</div>
<!-- 底部 -->
<!-- <div class="shop_footer_body">-->
<!-- <footer-nav></footer-nav>-->
<!-- </div>-->
</div>
</template>
<script setup name="registrationList">
import {queryRegistrationList,getAttr} from '../../api/enforce';
import {queryLinkage, queryLinkageById, queryLinkageDictByValueAndParentId} from "@/api/linkage";
const { useCommon, useShopCard } = $globalStore;
const router = useRouter();
let allchecked = ref(false); // 是否全选
let refreshLoad = ref(false); // 是否加载中
let searchParam = reactive({
userId: useCommon.userId,
//执法事件
// lawEnforcementIncident:"",
//执法部门
lawEnforcement:"",
//搜索框
searchValue: ref(''),
//时间类型
dateType: null,
//是否投诉
isComplaint: null,
//企业统一信用码
// enterpriseNumber: ref(useCommon.enterpriseNumber),
lawEnforcerId: ref(useCommon.userId),
//日期搜索
dateSearch: ref(),
});
const data = reactive({
cartList: [],
dataList: [],
dateSearch: ref(),
showDatePicker:false,
currentDate:ref(['2024', '01']),
minDate: new Date(2020, 0, 1),
maxDate: new Date(2125, 5, 1),
columnsType :['year', 'month'],
ga_columns: [],
dateShow: false,
});
// 设置初始值为当前时间
onMounted(async() => {
// getCard();
searchParam.lawEnforcerId = useCommon.userId;
// queryList();
searchDateType(1);
data.dateSearch = nowDate(new Date());
// queryLinkageDictByValueAndParentId({"value": "check_item", "parentId": "100"}, success => {
// getLinkageByParentIdToItem(success.id)
// },error=>{});
isLodding.value = false;
});
const getLinkageByParentIdToItem = (parentId) => {
// 查询检查要求字典信息
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 })
}
queryList();
},error=>{});
}
const queryList = () =>{
queryRegistrationList(searchParam,success =>{
data.dataList = success.data;
for (var i=0; i<success.data.length; i++) {
// var itemTxt = success.data[i].lawEnforcementItem;
// console.log(itemTxt);
// for (var j=0; j<data.ga_columns.length; j++) {
// if (itemTxt == data.ga_columns[j].value) {
// success.data[i].lawEnforcementItem = data.ga_columns[j].text;
// break;
// }
// }
// setLinkageItem(success.data[i].lawEnforcementItem,success.data[i]);
}
},error =>{
})
}
const onSearch = (val) => {
searchParam.dateSearch = null;
queryRegistrationList(
{
"searchValue": searchParam.searchValue
}
,success =>{
data.dataList = success.data;
},error =>{
})
};
const onClickButton = () =>{
queryList();
}
const toEditView = (id) =>{
router.push(
{
path: "/registrationEdit",
query: {
id: id,
}
});
}
onActivated(() => {
});
onDeactivated(() => {
});
// 返回
const goBack = () => {
router.go(-1);
};
let resetScroll = ref(0); // 滚动记录
let isLodding = ref(true); // 是否加载中
let freshMap = reactive({
refreshLoad: false, // 是否刷新
listLoading: false, // 是否加载中
listFinished: false, // 是否加载完成标识
});
//下拉刷新
const onRefresh = () => {
freshMap.listFinished = false;
freshMap.listLoading = true;
getGoodslist();
};
// 触底加载
const onLoad = () => {
freshMap.listFinished = true;
getGoodslist(true);
};
//获取分类下的商品列表
const getGoodslist = async (onLoad) => {
// const res = await useClassify.classifyGoods();
// if (res?.code === 20000) {
// goodsList = onLoad ? goodsList.concat(res?.data) : res?.data;
// freshMap.refreshLoad = false;
// freshMap.listLoading = false;
// freshMap.listFinished = res?.listFinished;
// if (goodsList.length > 50) {
// freshMap.listFinished = true;
// }
// }
freshMap.refreshLoad = false;
freshMap.listLoading = false;
freshMap.listFinished = true;
isLodding.value = false;
};
const selectDate = () =>{
data.showDatePicker = true;
}
const onDateConfirm = (value)=> {
data.dateSearch = value.selectedValues[0] + "/" + value.selectedValues[1];
data.showDatePicker = false;
//日期搜索条件
searchParam.dateSearch = value.selectedValues[0] + "-" + value.selectedValues[1];
//取消投诉
searchParam.isComplaint = null;
searchParam.dateType = null;
data.dateShow = true;
queryList();
}
const nowDate = (time) => {
var year = time.getFullYear(); // 年
var month = (time.getMonth() + 1).toString().padStart(2, '0'); // 月
var date = time.getDate().toString().padStart(2, '0'); // 日
var hour = time.getHours().toString().padStart(2, '0'); // 时
var minute = time.getMinutes().toString().padStart(2, '0'); // 分
var second = time.getSeconds().toString().padStart(2, '0'); // 秒
return (
year + "/" + month
)
}
const searchDateType = (val) =>{
searchParam.dateSearch = null;
searchParam.dateType = val;
searchParam.isComplaint = null;
data.dateShow = false;
queryList();
}
const searchComplaint = (val) =>{
searchParam.isComplaint = val;
searchParam.dateType = null;
queryList();
}
/**
* 查看执法登记详情
* @param {} id
* @param {*} name
*/
const toDetailView = (id) =>{
router.push(
{
path: "/registrationDetail",
query: {
id: id,
import {queryRegistrationList, getAttr} from '../../api/enforce';
import {queryLinkage, queryLinkageById, queryLinkageDictByValueAndParentId} from "@/api/linkage";
const {useCommon, useShopCard} = $globalStore;
const router = useRouter();
let allchecked = ref(false); // 是否全选
let refreshLoad = ref(false); // 是否加载中
let searchParam = reactive({
userId: useCommon.userId,
//执法事件
// lawEnforcementIncident:"",
//执法部门
lawEnforcement: "",
//搜索框
searchValue: ref(''),
//时间类型
dateType: null,
//是否投诉
isComplaint: null,
//企业统一信用码
// enterpriseNumber: ref(useCommon.enterpriseNumber),
lawEnforcerId: ref(useCommon.userId),
//日期搜索
dateSearch: ref(),
});
const data = reactive({
cartList: [],
dataList: [],
dateSearch: ref(),
showDatePicker: false,
currentDate: ref(['2024', '01']),
minDate: new Date(2020, 0, 1),
maxDate: new Date(2125, 5, 1),
columnsType: ['year', 'month'],
ga_columns: [],
dateShow: false,
});
// 设置初始值为当前时间
onMounted(async () => {
// getCard();
searchParam.lawEnforcerId = useCommon.userId;
// queryList();
searchDateType(1);
data.dateSearch = nowDate(new Date());
// queryLinkageDictByValueAndParentId({"value": "check_item", "parentId": "100"}, success => {
// getLinkageByParentIdToItem(success.id)
// },error=>{});
isLodding.value = false;
});
const getLinkageByParentIdToItem = (parentId) => {
// 查询检查要求字典信息
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})
}
queryList();
}, error => {
});
}
const queryList = () => {
queryRegistrationList(searchParam, success => {
console.log(success.data);
data.dataList = success.data;
for (var i = 0; i < success.data.length; i++) {
// var itemTxt = success.data[i].lawEnforcementItem;
// console.log(itemTxt);
// for (var j=0; j<data.ga_columns.length; j++) {
// if (itemTxt == data.ga_columns[j].value) {
// success.data[i].lawEnforcementItem = data.ga_columns[j].text;
// break;
// }
// }
// setLinkageItem(success.data[i].lawEnforcementItem,success.data[i]);
}
}, error => {
})
}
const onSearch = (val) => {
searchParam.dateSearch = null;
queryRegistrationList(
{
"searchValue": searchParam.searchValue
}
});
}
const setLinkageItem = (id,item) => {
queryLinkageById({"id": id}, success => {
item.lawEnforcementItem = success.title
data.dataList.push(item);
},error=>{});
}
, success => {
data.dataList = success.data;
}, error => {
})
};
const onClickButton = () => {
queryList();
}
const toEditView = (id) => {
router.push(
{
path: "/registrationEdit",
query: {
id: id,
}
});
}
onActivated(() => {
});
onDeactivated(() => {
});
// 返回
const goBack = () => {
router.go(-1);
};
let resetScroll = ref(0); // 滚动记录
let isLodding = ref(true); // 是否加载中
let freshMap = reactive({
refreshLoad: false, // 是否刷新
listLoading: false, // 是否加载中
listFinished: false, // 是否加载完成标识
});
//下拉刷新
const onRefresh = () => {
freshMap.listFinished = false;
freshMap.listLoading = true;
getGoodslist();
};
// 触底加载
const onLoad = () => {
freshMap.listFinished = true;
getGoodslist(true);
};
//获取分类下的商品列表
const getGoodslist = async (onLoad) => {
// const res = await useClassify.classifyGoods();
// if (res?.code === 20000) {
// goodsList = onLoad ? goodsList.concat(res?.data) : res?.data;
// freshMap.refreshLoad = false;
// freshMap.listLoading = false;
// freshMap.listFinished = res?.listFinished;
// if (goodsList.length > 50) {
// freshMap.listFinished = true;
// }
// }
freshMap.refreshLoad = false;
freshMap.listLoading = false;
freshMap.listFinished = true;
isLodding.value = false;
};
const selectDate = () => {
data.showDatePicker = true;
}
const onDateConfirm = (value) => {
data.dateSearch = value.selectedValues[0] + "/" + value.selectedValues[1];
data.showDatePicker = false;
//日期搜索条件
searchParam.dateSearch = value.selectedValues[0] + "-" + value.selectedValues[1];
//取消投诉
searchParam.isComplaint = null;
searchParam.dateType = null;
data.dateShow = true;
queryList();
}
const nowDate = (time) => {
var year = time.getFullYear(); // 年
var month = (time.getMonth() + 1).toString().padStart(2, '0'); // 月
var date = time.getDate().toString().padStart(2, '0'); // 日
var hour = time.getHours().toString().padStart(2, '0'); // 时
var minute = time.getMinutes().toString().padStart(2, '0'); // 分
var second = time.getSeconds().toString().padStart(2, '0'); // 秒
return (
year + "/" + month
)
}
const searchDateType = (val) => {
searchParam.dateSearch = null;
searchParam.dateType = val;
searchParam.isComplaint = null;
data.dateShow = false;
queryList();
}
const searchComplaint = (val) => {
searchParam.isComplaint = val;
searchParam.dateType = null;
queryList();
}
/**
* 查看执法登记详情
* @param {} id
* @param {*} name
*/
const toDetailView = (id) => {
router.push(
{
path: "/registrationDetail",
query: {
id: id,
}
});
}
const setLinkageItem = (id, item) => {
queryLinkageById({"id": id}, success => {
item.lawEnforcementItem = success.title
data.dataList.push(item);
}, error => {
});
}
</script>
<style lang="less" scoped>
.shop {
height: 100%;
display: flex;
flex-direction: column;
overflow: hidden;
background-color: #f4f4f4;
.header_body {
height: 50px;
}
.shop-center {
flex: 1;
overflow-y: scroll;
position: relative;
.goods_box {
display: flex;
background-color: #fff;
margin: 6px;
border-radius: 10px;
.swipe_cell {
width: 100%;
}
.card_box {
display: flex;
width: 100%;
padding: 0.1rem 0 0.2rem;
flex-direction: column;
.card_body {
background-color: #fff;
border-radius: 10px;
flex: 1;
}
.card_box_span {
display: flex;
align-items: center;
margin: 2% 0;
padding-left: 3%;
font-size: 0.38rem;
line-height: 1.5;
p {
margin: 0;
.shop {
height: 100%;
display: flex;
flex-direction: column;
overflow: hidden;
background-color: #f4f4f4;
.header_body {
height: 50px;
}
.shop-center {
flex: 1;
overflow-y: scroll;
position: relative;
.goods_box {
display: flex;
background-color: #fff;
margin: 6px;
border-radius: 10px;
.swipe_cell {
width: 100%;
}
.card_box {
display: flex;
width: 100%;
padding: 0.1rem 0 0.2rem;
flex-direction: column;
.card_body {
background-color: #fff;
border-radius: 10px;
flex: 1;
}
.card_box_span {
display: flex;
align-items: center;
margin: 2% 0;
padding-left: 3%;
font-size: 0.38rem;
line-height: 1.5;
p {
margin: 0;
}
}
.card_box_action {
position: absolute;
right: 4%;
}
}
}
}
.shop_footer_body {
height: 101px;
position: relative;
.footer-one-btn {
height: 50px;
bottom: 51px;
}
}
.card_box_action{
position: absolute;
right: 4%;
}
}
}
}
.shop_footer_body {
height: 101px;
position: relative;
.footer-one-btn {
height: 50px;
bottom: 51px;
}
}
}
.search-button-list{
height: 3%;
display: flex;
flex-direction: row;
padding-left: 10px;
margin-top: 6px;
align-items: end;
.search-button{
width: 15%;
height: 80%;
}
}
.search-button-date{
height: 3%;
display: flex;
flex-direction: row;
padding-left: 10px;
margin-top: 6px;
align-items: end;
position: relative;
.date-select{
font-size: 20px;
margin-left: 2%;
}
.search-button{
width: 15%;
height: 80%;
position: absolute;
top: 1%;
right: 1%;
}
}
/deep/ .van-hairline--bottom {
margin: -1% 0 3% 0;
height: 0;
background-color: transparent;
border: 1px;
}
/deep/ .card_box_span:first-child {
color: #c1bfbf;
}
/deep/ .card_box_span:nth-child(2) p {
font-size: 0.4rem;
font-weight: bold;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.card_box_label {
color: rgba(128, 128, 128, 0.65);
}
.remsty {
position: absolute;
top: 0;
right: 0;
margin: 0.25rem 0.25rem 0;
padding-left: 0.5rem;
background: url(/src/assets/images/icon_remind.png) no-repeat left center;
background-size: auto 80%;
font-size: 0.35rem;
}
}
}
.search-button-list {
height: 3%;
display: flex;
flex-direction: row;
padding-left: 10px;
margin-top: 6px;
align-items: end;
.search-button {
width: 15%;
height: 80%;
}
}
.search-button-date {
height: 3%;
display: flex;
flex-direction: row;
padding-left: 10px;
margin-top: 6px;
align-items: end;
position: relative;
.date-select {
font-size: 20px;
margin-left: 2%;
}
.search-button {
width: 15%;
height: 80%;
position: absolute;
top: 1%;
right: 1%;
}
}
/deep/ .van-hairline--bottom {
margin: -1% 0 3% 0;
height: 0;
background-color: transparent;
border: 1px;
}
/deep/ .card_box_span:first-child {
color: #c1bfbf;
}
/deep/ .card_box_span:nth-child(2) p {
font-size: 0.4rem;
font-weight: bold;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.card_box_label {
color: rgba(128, 128, 128, 0.65);
}
.remsty {
position: absolute;
top: 0;
right: 0;
margin: 0.25rem 0.25rem 0;
padding-left: 0.5rem;
background: url(/src/assets/images/icon_remind.png) no-repeat left center;
background-size: auto 80%;
font-size: 0.35rem;
}
</style>

497
src/views/enforce/noScan.vue

@ -1,271 +1,288 @@
<template>
<div class="address_edit">
<!-- 导航栏 -->
<div class="header_body">
<header-nav
:slefBack="true"
@goBack="goBack"
:titelText="`企业搜索(未扫码)`"
>
</header-nav>
</div>
<!-- 中间 -->
<div class="warp_body">
<!-- {{ content }}-->
<div class="subsearch">
<input class="searchbox" v-model="searchParam.enterpriseName" placeholder="请输入关键字搜索" name="keyword" id="" onclick="search">
</div>
<div class="search-result">
<div class="case-item" v-for="(item, index) in enterpriseList" @click="toDetail(item)">
<div class="case-title">{{item.enterpriseName}}</div>
<div class="case-info">统一社会信用代码:{{item.enterpriseNumber}}</div>
<div class="case-area">{{item.enterpriseAddress}}</div>
<div class="case-info"><span>法定代表人:{{item.legalPerson}}</span><span>证件号:{{item.idNumbe}}</span></div>
<div class="case-info"><span>企业联系人:{{item.enterprise}}</span><span>联系电话:{{item.enterpriseTel}}</span></div>
<div class="address_edit">
<!-- 导航栏 -->
<div class="header_body">
<header-nav
:slefBack="true"
@goBack="goBack"
:titelText="`企业搜索(未扫码)`"
>
</header-nav>
</div>
</div>
<!-- 中间 -->
<div class="warp_body">
<!-- {{ content }}-->
<div class="subsearch" style="display: flex; justify-content: space-between;">
<view style="width: 100%;">
<input class="searchbox" v-model="searchParam.enterpriseName" placeholder="请输入关键字搜索" name="keyword" id="">
</view>
<div style="width: 50%;">
<button class='btn-search' @click="queryList()">搜索</button>
</div>
</div>
<div class="search-result">
<div class="case-item" v-for="(item, index) in enterpriseList" @click="toDetail(item)">
<div class="case-title">{{item.enterpriseName}}</div>
<div class="case-info">统一社会信用代码:{{item.enterpriseNumber}}</div>
<div class="case-area">{{item.enterpriseAddress}}</div>
<div class="case-info"><span>法定代表人:{{item.legalPerson}}</span><span>证件号:{{item.idNumbe}}</span>
</div>
<div class="case-info">
<span>企业联系人:{{item.enterprise}}</span><span>联系电话:{{item.enterpriseTel}}</span></div>
</div>
</div>
</div>
</div>
</div>
</div>
<div v-if="visible" class="popup" v-show="isCheck">
<!-- 弹窗的内容 -->
<div class="popup-content">
<div class="subtitle">请选择不扫码的原因:</div>
<div class="item-box">
<span :class="checkCss==1?'item-btn active':'item-btn'" @click="checkReason('企业拒绝出示二维码', 1)">企业拒绝出示二维码</span>
<span :class="checkCss==2?'item-btn active':'item-btn'" @click="checkReason('网络/设备故障', 2)">网络/设备故障</span>
<span :class="checkCss==3?'item-btn active':'item-btn'" @click="checkReason('其它', 3)">其它</span>
</div>
<div class="btnbox">
<!-- <button class='btn-reset' @click="">重置</button>-->
<button class='btn-search' @click="closeReason">确定</button>
</div>
<div v-if="visible" class="popup" v-show="isCheck">
<!-- 弹窗的内容 -->
<div class="popup-content">
<div class="subtitle">请选择不扫码的原因:</div>
<div class="item-box">
<span :class="checkCss==1?'item-btn active':'item-btn'"
@click="checkReason('企业拒绝出示二维码', 1)">企业拒绝出示二维码</span>
<span :class="checkCss==2?'item-btn active':'item-btn'"
@click="checkReason('网络/设备故障', 2)">网络/设备故障</span>
<span :class="checkCss==3?'item-btn active':'item-btn'" @click="checkReason('其它', 3)">其它</span>
</div>
<div class="btnbox">
<!-- <button class='btn-reset' @click="">重置</button>-->
<button class='btn-search' @click="closeReason">确定</button>
</div>
</div>
</div>
</div>
</template>
<script>
import { queryEnterpriseInfoList } from '../../api/enterprise'
export default {
data() {
return {
isCheck: true,
checkCss: 1,
reason: "企业拒绝出示二维码",
enterpriseList: [],
searchParam: {
// 企业名称
enterpriseName:"",
}
}
},
props: {
visible: {
type: Boolean,
default: true
},
content: {
type: String,
default: ''
}
},
created() {
this.queryList();
},
methods: {
closePopup() {
this.$emit('close');
},
queryList() {
queryEnterpriseInfoList(null,success =>{
console.log(success)
if(success.success) {
this.enterpriseList.push(...success.data);
}
console.log(this.enterpriseList);
});
},
toDetail(item) {
this.$router.push({
path: "/sign",
query: {
reason: this.reason,
enterpriseNumber: item.salt,
import {queryEnterpriseInfoList} from '../../api/enterprise'
import {queryRegistrationList} from "../../api/enforce";
export default {
data() {
return {
isCheck: true,
checkCss: 1,
reason: "企业拒绝出示二维码",
enterpriseList: [],
searchParam: {
// 企业名称
enterpriseName: "",
}
}
},
props: {
visible: {
type: Boolean,
default: true
},
content: {
type: String,
default: ''
}
},
created() {
// this.queryList();
},
methods: {
closePopup() {
this.$emit('close');
},
queryList() {
this.enterpriseList = [];
queryEnterpriseInfoList(this.searchParam, success => {
if (success.success) {
this.enterpriseList.push(...success.data);
}
console.log(this.enterpriseList);
});
},
toDetail(item) {
this.$router.push({
path: "/sign",
query: {
reason: this.reason,
enterpriseNumber: item.salt,
isNoScan: true,
}
});
},
checkReason(val, key) {
this.reason = val;
this.checkCss = key;
},
closeReason() {
this.isCheck = false;
},
cancel() {
this.searchParam.enterpriseName = '';
this.queryList()
},
// 返回
goBack() {
this.$router.go(-1);
}
}
});
},
search() {
queryList();
},
checkReason(val, key) {
this.reason = val;
this.checkCss = key;
},
closeReason() {
this.isCheck = false;
}
}
}
</script>
<style scoped>
.address_edit {
display: flex;
flex-direction: column;
height: 100%;
overflow: hidden;
background-color: #ebf3fb;
}
.warp_body {
background-image: linear-gradient(to bottom, #ebf3fb, #fff);
}
.address_edit {
display: flex;
flex-direction: column;
height: 100%;
overflow: hidden;
background-color: #ebf3fb;
}
.warp_body {
background-image: linear-gradient(to bottom, #ebf3fb, #fff);
}
.subsearch {
width: 100%;
height: 1.25rem;
font-size: 0.38rem;
}
.subsearch {
width: 100%;
height: 1.25rem;
font-size: 0.38rem;
}
.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;
}
.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;
}
.search-result {
margin: 1% 3%;
padding-bottom: 2rem;
width: 94%;
background: #fff;
}
.search-result {
margin: 1% 3%;
padding-bottom: 2rem;
width: 94%;
background: #fff;
}
.case-item {
margin: 3% 4%;
padding: 2% 0;
width: 92%;
font-size: 0.35rem;
border-bottom: 1px solid #f4f4f4;
color: #999;
line-height: 2;
}
.case-item {
margin: 3% 4%;
padding: 2% 0;
width: 92%;
font-size: 0.35rem;
border-bottom: 1px solid #f4f4f4;
color: #999;
line-height: 2;
}
.case-title {
margin: 2% 0;
padding-left: 0.65rem;
background: url(/src/assets/images/icon_jd.png) no-repeat left top 0.08rem;
background-size: auto 0.5rem;
font-size: 0.5rem;
color: #000;
line-height: 1.25;
}
.case-title {
margin: 2% 0;
padding-left: 0.65rem;
background: url(/src/assets/images/icon_jd.png) no-repeat left top 0.08rem;
background-size: auto 0.5rem;
font-size: 0.5rem;
color: #000;
line-height: 1.25;
}
.case-area {
display: table;
margin: 2% 0 2% -4.5%;
padding: 1% 15% 1% 4%;
width: auto;
background-color: #d0e5ff;
color: #077bf7;
font-size: 0.4rem;
border-radius: 0 0.75rem 0.75rem 0;
}
.case-area {
display: table;
margin: 2% 0 2% -4.5%;
padding: 1% 15% 1% 4%;
width: auto;
background-color: #d0e5ff;
color: #077bf7;
font-size: 0.4rem;
border-radius: 0 0.75rem 0.75rem 0;
}
.case-info {
display: flex;
white-space: nowrap;
}
.case-info {
display: flex;
white-space: nowrap;
}
.case-info span {
width: 45%;
}
.case-info span {
width: 45%;
}
.popup {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: rgba(0, 0, 0, 0.35);
}
.popup {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: rgba(0, 0, 0, 0.35);
}
.popup-content {
position: fixed;
z-index: 999;
bottom: 0;
left: 0;
padding: 0 3%;
width: 94%;
height: 35vh;
background: #fff;
overflow-y: auto;
font-size: 0.38rem;
}
.popup-content {
position: fixed;
z-index: 999;
bottom: 0;
left: 0;
padding: 0 3%;
width: 94%;
height: 35vh;
background: #fff;
overflow-y: auto;
font-size: 0.38rem;
}
.subtitle {
margin: 5% 2% 2%;
width: 96%;
/*font-size: 0.4rem;
font-weight: 600;*/
border-bottom: 1px solid #f4f4f4;
line-height: 2;
}
.subtitle {
margin: 5% 2% 2%;
width: 96%;
/*font-size: 0.4rem;
font-weight: 600;*/
border-bottom: 1px solid #f4f4f4;
line-height: 2;
}
.item-btn {
float: left;
margin: 0.3rem 0.2rem;
padding: 0.2rem 0.3rem;
background-color: #f2f3f4;
color: #999;
border-radius: 1rem;
font-size: 0.35rem;
}
.item-btn {
float: left;
margin: 0.3rem 0.2rem;
padding: 0.2rem 0.3rem;
background-color: #f2f3f4;
color: #999;
border-radius: 1rem;
font-size: 0.35rem;
}
.item-btn.active {
background-color: #e9f2fb;
color: #1367fe;
}
.item-btn.active {
background-color: #e9f2fb;
color: #1367fe;
}
.btnbox {
display: flex;
justify-content: center;
position: absolute;
bottom: 1rem;
left: 5%;
width: 90%;
height: 1rem;
}
.btnbox {
display: flex;
justify-content: center;
position: absolute;
bottom: 1rem;
left: 5%;
width: 90%;
height: 1rem;
}
.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,
.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;
}
.btn-reset {
width: 35%;
background-color: #fff;
border-color: rgba(19, 103, 254, .7);
color: #1367fe;
}
</style>

18
src/views/enforce/sign.vue

@ -44,7 +44,7 @@
@click="showPopup2"
:rules="[{ required: true, message: '请选择辅助人员' }]"
/>
<van-field
<van-field v-if="data.isNoScan"
v-model="submitData.enforce"
label="未扫码原因"
readonly
@ -110,9 +110,9 @@
<div class="file-upload">
<div class="file-upload-center">
<label>上传附件</label> <span>(不多于9张)</span>
<label>上传附件</label> <span>(不多于3张)</span>
</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" class="file" multiple max-count="9" :after-read="uploadFiles" :before-delete="deleteFile">
<template #preview-cover="{ file }">
<div class="preview-cover van-ellipsis">{{ file.name }}</div>
</template>
@ -206,6 +206,7 @@ const data = reactive({
lawEnforcementItemText: "",
ga_columns: [],
item_columns: [],
isNoScan: false,
});
//保存参数
const submitData = reactive({
@ -301,6 +302,7 @@ onMounted(() =>{
// 数据填充
// dataFillIn();
submitData.enforce = route?.query?.reason;
data.isNoScan = route?.query?.isNoScan;
//查询企业信息
getEnterpriseInformation(route?.query?.enterpriseNumber,success =>{
@ -349,11 +351,11 @@ const uploadFiles = (file) =>{
}
const deleteFile = (file,index) =>{
submitData.fileListObj.filter((item, indexs) => {
if (index.index == indexs) {
submitData.fileListObj.splice(indexs, 1);//splice 删除
}
});
// submitData.fileListObj.filter((item, indexs) => {
// if (index.index == indexs) {
// submitData.fileListObj.splice(indexs, 1);//splice 删除
// }
// });
submitData.fileList.filter((item, indexs) => {
if (index.index == indexs) {
submitData.fileList.splice(indexs, 1);//splice 删除

852
src/views/enterprise/caseFilter.vue

@ -1,429 +1,453 @@
<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">
<!-- {{ content }}-->
<div class="subsearch">
<input class="searchbox" placeholder="请输入关键字搜索" name="keyword" id="" onclick="">
</div>
<!-- <div class="subtitle">快捷筛选</div>
<div class="quick-item">
<span class="seled">1天内</span> <span>7天内</span> <span>14天内</span> <span>30天内</span>
</div> -->
<div class="subtitle">执法信息</div>
<van-cell-group>
<van-field
label="执法部门"
placeholder="请选择"
clickable
is-link
@click=""
/>
<van-field
label="执法人员"
placeholder="请选择"
clickable
is-link
@click=""
/>
<van-field
label="执法事项"
placeholder="请选择事项"
clickable
is-link
readonly
v-model="searchParam.lawEnforcementItemText"
@click="showPicker = true"
/>
</van-cell-group>
<van-popup v-model:show="showPicker" round position="bottom">
<van-picker
:columns="columns"
@cancel="showPicker = false"
@confirm="onConfirm"
/>
</van-popup>
<div class="subtitle">自定义时段</div>
<van-cell-group>
<van-field
label="开始时间"
placeholder="请选择"
clickable
is-link
@click="selectDate"
v-model="date.beginTime"
/>
<van-popup v-model:show="date.showBeginDatePicker" position="bottom">
<van-date-picker
title="选择日期"
v-model="date.currentDate"
:min-date="date.minDate"
:max-date="date.maxDate"
:columns-type="date.columnsType"
@confirm="onDateConfirm"
@cancel="cancelSelectDate"
/>
</van-popup>
<van-field
label="结束时间"
placeholder="请选择"
clickable
is-link
@click="selectEndDate"
v-model="date.endTime"
/>
<van-popup v-model:show="date.showEndDatePicker" position="bottom">
<van-date-picker
title="选择日期"
v-model="date.currentDate"
:min-date="date.minDate"
:max-date="date.maxDate"
:columns-type="date.columnsType"
@confirm="onEndDateConfirm"
@cancel="cancelSelectDate"
/>
</van-popup>
</van-cell-group>
<div class="btnbox">
<button class='btn-reset' @click="cancel()">重置</button>
<button class='btn-search' @click="queryList()">搜索</button>
</div>
<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">
<!-- {{ content }}-->
<div class="subsearch">
<input v-model="searchParam.searchValue" class="searchbox" placeholder="执法事项/执法部门/执法人员" name="keyword" id="" onclick="">
</div>
<!-- <div class="subtitle">快捷筛选</div>
<div class="quick-item">
<span class="seled">1天内</span> <span>7天内</span> <span>14天内</span> <span>30天内</span>
</div> -->
<div class="subtitle">执法信息</div>
<van-cell-group>
<!-- <van-field-->
<!-- label="执法部门"-->
<!-- placeholder="请选择"-->
<!-- clickable-->
<!-- is-link-->
<!-- @click=""-->
<!-- />-->
<!-- <van-field-->
<!-- label="执法人员"-->
<!-- placeholder="请选择"-->
<!-- clickable-->
<!-- is-link-->
<!-- @click=""-->
<!-- />-->
<van-field
label="执法事项"
placeholder="请选择事项"
clickable
is-link
readonly
v-model="searchParam.lawEnforcementItemText"
@click="showPicker = true"
/>
</van-cell-group>
<van-popup v-model:show="showPicker" round position="bottom">
<van-picker
:columns="columns"
@cancel="showPicker = false"
@confirm="onConfirm"
/>
</van-popup>
<div class="subtitle">自定义时段</div>
<van-cell-group>
<van-field
label="开始时间"
placeholder="请选择"
clickable
is-link
@click="selectDate"
v-model="date.beginTime"
/>
<van-popup v-model:show="date.showBeginDatePicker" position="bottom">
<van-date-picker
title="选择日期"
v-model="date.currentDate"
:min-date="date.minDate"
:max-date="date.maxDate"
:columns-type="date.columnsType"
@confirm="onDateConfirm"
@cancel="cancelSelectDate"
/>
</van-popup>
<van-field
label="结束时间"
placeholder="请选择"
clickable
is-link
@click="selectEndDate"
v-model="date.endTime"
/>
<van-popup v-model:show="date.showEndDatePicker" position="bottom">
<van-date-picker
title="选择日期"
v-model="date.currentDate"
:min-date="date.minDate"
:max-date="date.maxDate"
:columns-type="date.columnsType"
@confirm="onEndDateConfirm"
@cancel="cancelSelectDate"
/>
</van-popup>
</van-cell-group>
<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.lawEnforcementItem }}</div>
<div class="case-depart">执法部门:{{ item.lawEnforcement }}</div>
<div class="case-depart">执法人员:{{ item.lawEnforcer }} ,{{ item.lawEnforcerTwo }}</div>
<div class="case-time">执法时间:{{ item.createTime }}</div>
</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.lawEnforcementItem }}</div>
<div class="case-depart">执法部门:{{ item.lawEnforcement }}</div>
<div class="case-depart">执法人员:{{ item.lawEnforcer }} ,{{ item.lawEnforcerTwo }}</div>
<div class="case-time">执法时间:{{ item.createTime }}</div>
</div>
</div>
</div>
</div>
</div>
</div>
</template>
<script>
import { ref } from 'vue'
import {queryRegistrationList} from '../../api/enterprise'
import {queryLinkageDictByValueAndParentId,queryLinkage,queryLinkageById} from '@/api/linkage'
const { useCommon } = $globalStore
export default {
props: {
visible: {
type: Boolean,
default: false
},
content: {
type: String,
default: ''
}
},
data(){
return{
searchParam: {
//执法事件
lawEnforcementIncident:"",
//执法部门
lawEnforcement:"",
//搜索框
searchText: ref(''),
//时间类型
dateType: null,
//是否投诉
isComplaint: null,
//企业统一信用码
enterpriseNumber: ref(useCommon.enterpriseNumber),
lawEnforcementItem: ref(""),
lawEnforcementItemText: ref(""),
beginTime: ref(),
endTime: ref(),
},
showPicker: false,
columns: [],
date:{
beginTime:ref(),
endTime:ref(),
currentDate:ref(['2024', '01']),
minDate: new Date(2020, 0, 1),
maxDate: new Date(2125, 5, 1),
columnsType :['year', 'month'],
showBeginDatePicker:false,
showEndDatePicker:false,
},
dataList:[],
lawEnforcementItemList:[],
}
},
created(){
this.getLinkageByValueAndParentId("law_item", "100");
},
methods: {
closePopup() {
this.$emit('close');
},
queryList(){
console.log(ref(useCommon.enterpriseNumber))
queryRegistrationList(this.searchParam,success=>{
success.data.forEach(res =>{
this.lawEnforcementItemList.forEach(r =>{
console.log(r);
if(res.lawEnforcementItem == r.id){
res.lawEnforcementItem = r.title
}
})
})
this.dataList = success.data
},error =>{
})
},
selectData(item){
this.$emit("reciveData",item);
this.$emit('close');
},
onDateConfirm (value){
console.log(value);
value.selectedValues.forEach((item,index) => {
console.log(item);
});
this.date.beginTime = value.selectedValues[0] + "/" + value.selectedValues[1]
this.searchParam.beginTime = value.selectedValues[0] + "-" + value.selectedValues[1];
this.date.showBeginDatePicker = false;
},
onEndDateConfirm (value){
console.log(value);
value.selectedValues.forEach((item,index) => {
console.log(item);
});
this.date.endTime = value.selectedValues[0] + "/" + value.selectedValues[1]
this.searchParam.endTime = value.selectedValues[0] + "-" + value.selectedValues[1];;
this.date.showEndDatePicker = false;
},
cancelSelectDate(){
this.date.showEndDatePicker = false;
this.date.showBeginDatePicker = false;
},
selectDate (){
this.date.showBeginDatePicker = true;
},
selectEndDate (){
this.date.showEndDatePicker = true;
},
onConfirm(selectedOptions){
this.showPicker = false;
console.log(selectedOptions.selectedOptions[0].value);
this.searchParam.lawEnforcementItem = selectedOptions.selectedOptions[0].value;
this.searchParam.lawEnforcementItemText = selectedOptions.selectedOptions[0].text;
},
getLinkageByValueAndParentId (value, parentId){
// 查询检查要求字典信息
queryLinkageDictByValueAndParentId({"value":value, "parentId": parentId}, success => {
this.getLinkageByParentIdToItem(success.id)
},error=>{});
},
getLinkageByParentIdToItem (parentId) {
// 查询检查要求字典信息
queryLinkage({"parentId": parentId}, success => {
this.lawEnforcementItemList = success;
for(var i=0; i<success.length; i++) {
this.columns.push({ text: success[i].title, value: success[i].id, id: success[i].id })
// if (i==0) {
// this.searchParam.lawEnforcementItemText = success[i].title;
// this.searchParam.lawEnforcementItem = success[i].id;
// this.getLinkageByParentIdToGA(success[i].id);
// }
}
this.queryList();
},error=>{});
},
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.lawEnforcementBasisText = success[i].title;
submitData.lawEnforcementBasis = success[i].id;
import {ref} from 'vue'
import {queryRegistrationList} from '../../api/enterprise'
import {queryLinkageDictByValueAndParentId, queryLinkage, queryLinkageById} from '@/api/linkage'
const {useCommon} = $globalStore
export default {
props: {
visible: {
type: Boolean,
default: false
},
content: {
type: String,
default: ''
}
},
data() {
return {
searchParam: {
//执法事件
lawEnforcementIncident: "",
//执法部门
lawEnforcement: "",
//搜索框
searchValue: ref(''),
//时间类型
dateType: null,
//是否投诉
isComplaint: null,
//企业统一信用码
enterpriseNumber: ref(useCommon.enterpriseNumber),
lawEnforcementItem: ref(""),
lawEnforcementItemText: ref(""),
beginTime: ref(),
endTime: ref(),
},
showPicker: false,
columns: [],
date: {
beginTime: ref(),
endTime: ref(),
currentDate: ref(['2024', '01']),
minDate: new Date(2020, 0, 1),
maxDate: new Date(2125, 5, 1),
columnsType: ['year', 'month'],
showBeginDatePicker: false,
showEndDatePicker: false,
},
dataList: [],
lawEnforcementItemList: [],
}
},
created() {
this.getLinkageByValueAndParentId("law_item", "100");
},
methods: {
closePopup() {
this.$emit('close');
},
queryList() {
console.log(ref(useCommon.enterpriseNumber))
queryRegistrationList(this.searchParam, success => {
success.data.forEach(res => {
this.lawEnforcementItemList.forEach(r => {
console.log(r);
if (res.lawEnforcementItem == r.id) {
res.lawEnforcementItem = r.title
}
})
})
this.dataList = success.data
}, error => {
})
},
cancel() {
this.searchParam = {
//执法事件
lawEnforcementIncident: "",
//执法部门
lawEnforcement: "",
//搜索框
searchValue: ref(''),
//时间类型
dateType: null,
//是否投诉
isComplaint: null,
//企业统一信用码
enterpriseNumber: ref(useCommon.enterpriseNumber),
lawEnforcementItem: ref(""),
lawEnforcementItemText: ref(""),
beginTime: ref(),
endTime: ref(),
}
this.date.beginTime = null;
this.date.endTime = null;
},
selectData(item) {
this.$emit("reciveData", item);
this.$emit('close');
},
onDateConfirm(value) {
console.log(value);
value.selectedValues.forEach((item, index) => {
console.log(item);
});
this.date.beginTime = value.selectedValues[0] + "/" + value.selectedValues[1]
this.searchParam.beginTime = value.selectedValues[0] + "-" + value.selectedValues[1];
this.date.showBeginDatePicker = false;
},
onEndDateConfirm(value) {
console.log(value);
value.selectedValues.forEach((item, index) => {
console.log(item);
});
this.date.endTime = value.selectedValues[0] + "/" + value.selectedValues[1]
this.searchParam.endTime = value.selectedValues[0] + "-" + value.selectedValues[1];
;
this.date.showEndDatePicker = false;
},
cancelSelectDate() {
this.date.showEndDatePicker = false;
this.date.showBeginDatePicker = false;
},
selectDate() {
this.date.showBeginDatePicker = true;
},
selectEndDate() {
this.date.showEndDatePicker = true;
},
onConfirm(selectedOptions) {
this.showPicker = false;
console.log(selectedOptions.selectedOptions[0].value);
this.searchParam.lawEnforcementItem = selectedOptions.selectedOptions[0].value;
this.searchParam.lawEnforcementItemText = selectedOptions.selectedOptions[0].text;
},
getLinkageByValueAndParentId(value, parentId) {
// 查询检查要求字典信息
queryLinkageDictByValueAndParentId({"value": value, "parentId": parentId}, success => {
this.getLinkageByParentIdToItem(success.id)
}, error => {
});
},
getLinkageByParentIdToItem(parentId) {
// 查询检查要求字典信息
queryLinkage({"parentId": parentId}, success => {
this.lawEnforcementItemList = success;
for (var i = 0; i < success.length; i++) {
this.columns.push({text: success[i].title, value: success[i].id, id: success[i].id})
// if (i==0) {
// this.searchParam.lawEnforcementItemText = success[i].title;
// this.searchParam.lawEnforcementItem = success[i].id;
// this.getLinkageByParentIdToGA(success[i].id);
// }
}
this.queryList();
}, error => {
});
},
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.lawEnforcementBasisText = success[i].title;
submitData.lawEnforcementBasis = success[i].id;
}
}
}, error => {
});
}
}
},error=>{});
}
}
}
}
</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;
}
.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>

1153
src/views/enterprise/complaint.vue

File diff suppressed because it is too large

14
src/views/enterprise/complaintNoScan.vue

@ -56,7 +56,7 @@
<div class="file-upload-center">
<label>上传附件</label> <span>(不多于9张)</span>
</div>
<van-uploader v-model="submitData.fileListObj" class="file" :after-read="uploadFiles" multiple :max-size="500 * 1024" @oversize="onOversize" :before-delete="deleteFile">
<van-uploader v-model="submitData.fileListObj" max-count="9" class="file" :after-read="uploadFiles" multiple @oversize="onOversize" :before-delete="deleteFile">
<template #preview-cover="{ file }">
<div class="preview-cover van-ellipsis">{{ file.name }}</div>
</template>
@ -197,18 +197,16 @@ const uploadFiles = (file) =>{
}
const deleteFile = (file,index) =>{
console.log(index);
submitData.fileListObj.filter((item, indexs) => {
if (index.index == indexs) {
submitData.fileListObj.splice(indexs, 1);//splice 删除
}
});
// submitData.fileListObj.filter((item, indexs) => {
// if (index.index == indexs) {
// submitData.fileListObj.splice(indexs, 1);//splice 删除
// }
// });
submitData.fileList.filter((item, indexs) => {
if (index.index == indexs) {
submitData.fileList.splice(indexs, 1);//splice 删除
}
});
console.log(submitData.fileList);
return true;
}
onMounted(() => {

12
src/views/enterprise/registrationEdit.vue

@ -98,7 +98,7 @@
<div class="file-upload-center">
<label>上传附件</label> <span>(不多于9张)</span>
</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" max-count="9" class="file" multiple :after-read="uploadFiles" :before-delete="deleteFile">
<template #preview-cover="{ file }">
<div class="preview-cover van-ellipsis">{{ file.name }}</div>
</template>
@ -332,11 +332,11 @@
}
const deleteFile = (file,index) =>{
submitData.fileListObj.filter((item, indexs) => {
if (index.index == indexs) {
submitData.fileListObj.splice(indexs, 1);//splice 删除
}
});
// submitData.fileListObj.filter((item, indexs) => {
// if (index.index == indexs) {
// submitData.fileListObj.splice(indexs, 1);//splice 删除
// }
// });
submitData.fileList.filter((item, indexs) => {
if (index.index == indexs) {
submitData.fileList.splice(indexs, 1);//splice 删除

39
src/views/enterprise/registrationList.vue

@ -66,7 +66,7 @@
<div class="card_box">
<div class="card_box_span">
<p>执法时间:{{ item.createTime }} <span class="card_box_action">
<van-button class="trbtn" @click="toComplaintView(item.id,item.lawEnforcementItem)" type="primary"
<van-button class="trbtn" @click="toComplaintView(item.id,item.lawEnforcementItem,item.lawEnforcementItemText)" type="primary"
size="mini">投诉</van-button>
</span></p>
</div>
@ -97,7 +97,8 @@
</van-swipe-cell>
</div>
</div>
<van-empty v-else class="no_data" description="暂无数据"/>
<van-empty v-else
class="no_data" description="暂无数据"/>
</refresh-list>
</lodding-card>
</div>
@ -213,17 +214,17 @@
* @param {*} id
* @param {*} name
*/
const toComplaintView = (id, name) => {
const toComplaintView = (id, name, text) => {
console.log(id, name)
router.push(
{
path: "/enterprise/complaint",
query: {
id: id,
lawEnforcementIncident: name,
isSelect: false
}
});
router.push({
path: "/enterprise/complaint",
query: {
id: id,
lawEnforcementIncident: name,
lawEnforcementItemText: text,
isSelect: false
}
});
}
/**
* 查看执法登记详情
@ -248,14 +249,14 @@
});
const countWorkdays = (startDate) => {
let workdays = 0;
endDate = new Date();
for (let date = new Date(startDate); date <= endDate; date.setDate(date.getDate() + 1)) {
if (date.getDay() % 6 !== 0) { // 假设周末是6 (星期六) 和 0 (星期日)
workdays++;
let workdays = 0;
endDate = new Date();
for (let date = new Date(startDate); date <= endDate; date.setDate(date.getDate() + 1)) {
if (date.getDay() % 6 !== 0) { // 假设周末是6 (星期六) 和 0 (星期日)
workdays++;
}
}
}
return workdays;
return workdays;
}
// 返回

Loading…
Cancel
Save