Browse Source

提交扫描市监营业执照二维码

v3
chenrui 2 years ago
parent
commit
bd65251930
  1. 5580
      package-lock.json
  2. 3
      package.json
  3. 43
      src/api/enforce.js
  4. 941
      src/views/Home.vue
  5. 307
      src/views/enforce/scanQrCode.vue

5580
package-lock.json

File diff suppressed because it is too large

3
package.json

@ -19,6 +19,8 @@
"axios": "^1.6.7", "axios": "^1.6.7",
"compressorjs": "^1.2.1", "compressorjs": "^1.2.1",
"core-js": "^3.36.0", "core-js": "^3.36.0",
"crawlee": "^3.12.0",
"crawler": "^2.0.2",
"crypto-js": "^4.2.0", "crypto-js": "^4.2.0",
"date-fns": "^3.6.0", "date-fns": "^3.6.0",
"echarts": "^5.5.0", "echarts": "^5.5.0",
@ -30,6 +32,7 @@
"pdfjs-dist": "^4.0.379", "pdfjs-dist": "^4.0.379",
"pinia": "^2.1.7", "pinia": "^2.1.7",
"pinia-plugin-persistedstate": "^3.2.1", "pinia-plugin-persistedstate": "^3.2.1",
"playwright": "^1.48.2",
"sass": "^1.71.1", "sass": "^1.71.1",
"szient-js-sdk": "^1.2.2", "szient-js-sdk": "^1.2.2",
"vant": "^4.8.5", "vant": "^4.8.5",

43
src/api/enforce.js

@ -19,22 +19,6 @@ export const queryEnforcementInspectionProgramList = (params, success, error) =
* @returns * @returns
*/ */
export const queryEnforcementInspectionProgramListNoPermission = (params, success, error) => _get("/app/code/enforcementInspectionProgram/queryListNoPermission", params, success, error); export const queryEnforcementInspectionProgramListNoPermission = (params, success, error) => _get("/app/code/enforcementInspectionProgram/queryListNoPermission", params, success, error);
/**
* 执法计划列表 无权限 不分页接口
* @param {*} params
* @param {*} success
* @param {*} error
* @returns
*/
export const queryEnforcementInspectionProgramListNoPermissionNoPaging = (params, success, error) => _get("/app/code/enforcementInspectionProgram/queryListNoPermissionNoPaging", params, success, error);
/**
* 执法计划列表 按id查询
* @param {*} params
* @param {*} success
* @param {*} error
* @returns
*/
export const detail = (id, success, error) => _get("/app/code/enforcementInspectionProgram/detail/"+id, null, success, error);
/** /**
* 添加年度执法计划 * 添加年度执法计划
* @param {*} params * @param {*} params
@ -43,19 +27,10 @@ export const detail = (id, success, error) => _get("/app/code/enforcementInspec
* @returns * @returns
*/ */
export const addEnforcementInspectionProgram = (params, success, error) =>_post("/app/code/enforcementInspectionProgram/add", params, success, error) export const addEnforcementInspectionProgram = (params, success, error) =>_post("/app/code/enforcementInspectionProgram/add", params, success, error)
/**
* 修改年度执法计划
* @param {*} params
* @param {*} success
* @param {*} error
* @returns
*/
export const editEnforcementInspectionProgram = (params, success, error) =>_post("/app/code/enforcementInspectionProgram/edit", params, success, error)
//保存执法信息登记 //保存执法信息登记
export const addEnforcementRegistration = (params, success, error) => _post("/app/code/registration/add",params,success,error) export const addEnforcementRegistration = (params, success, error) => _post("/app/code/registration/add",params,success,error)
export const editEnforcementRegistration = (params, success, error) => _post("/app/code/registration/edit",params,success,error) export const editEnforcementRegistration = (params, success, error) => _post("/app/code/registration/edit",params,success,error)
export const editEnforcementRegistration2 = (params, success, error) => _post("/app/code/registration/edit2",params,success,error)
export const getRegByUserIdAndZero = (userId, success, error) => _get("/app/code/registration/getByUserIdAndZero/"+ userId,null,success,error) export const getRegByUserIdAndZero = (userId, success, error) => _get("/app/code/registration/getByUserIdAndZero/"+ userId,null,success,error)
export const getByUserIdAndEnterpriseNumber = (modth, userId, enterpriseNumber, success, error) => _get("/app/code/registration/getByUserIdAndEnterpriseNumber/"+ modth +"/"+ userId +"/"+ enterpriseNumber,null,success,error) export const getByUserIdAndEnterpriseNumber = (modth, userId, enterpriseNumber, success, error) => _get("/app/code/registration/getByUserIdAndEnterpriseNumber/"+ modth +"/"+ userId +"/"+ enterpriseNumber,null,success,error)
export const getByIdToDataFillIn = (id, success, error) => _get("/app/code/registration/getByIdToDataFillIn/" + id,null,success,error) export const getByIdToDataFillIn = (id, success, error) => _get("/app/code/registration/getByIdToDataFillIn/" + id,null,success,error)
@ -67,15 +42,6 @@ export const queryRegistrationList = (params, success, error) => _get("/app/code
// export const queryEarlyWarning = (params, success, error) => _get("/code/registration/queryEarlyWarning",params,success,error) // export const queryEarlyWarning = (params, success, error) => _get("/code/registration/queryEarlyWarning",params,success,error)
export const queryEarlyWarning = (params, success, error) => _get("/app/code/LawEnforcementWarningList/queryList",params,success,error) export const queryEarlyWarning = (params, success, error) => _get("/app/code/LawEnforcementWarningList/queryList",params,success,error)
/**
* 查询当前企业本月预警信息列表
* @param {*} params
* @param {*} success
* @param {*} error
* @returns
*/
export const queryListByEnterpriseNumber = (params, success, error) => _get("/app/code/LawEnforcementWarningList/queryListByEnterpriseNumber",params,success,error)
/** /**
* 查询用户信息 * 查询用户信息
* @param {*} params * @param {*} params
@ -93,7 +59,6 @@ export const queryUserInfo = (userId, success, error) => _get("/app/getUserInfo/
* @returns * @returns
*/ */
export const queryEnforcementRegistrationById = (id, success, error) =>_get("/app/code/registration/queryById/" + id,null,success,error) export const queryEnforcementRegistrationById = (id, success, error) =>_get("/app/code/registration/queryById/" + id,null,success,error)
export const queryEnforcementRegistrationUniteById = (id, success, error) =>_get("/app/code/registration/queryUniteById/" + id,null,success,error)
//查询附件 //查询附件
@ -116,9 +81,9 @@ export const unQrCode = (id, success, error) => _get("/app/enterpriseInformation
export const addQrCode = (num, success, error) => _get("/app/enterpriseInformation/addQrCode/"+ num, null,success,error) export const addQrCode = (num, success, error) => _get("/app/enterpriseInformation/addQrCode/"+ num, null,success,error)
/** /**
* 市监获取企业信息 * 市监获取企业信息
* @param {*} params * @param {*} params
* @param {*} success * @param {*} success
* @param {*} error * @param {*} error
* @returns * @returns
*/ */
export const getEnterpriseInfoBySj = (params,success,error) => _get("/app/enterpriseInformation/getEnterpriseInfoBySj",params,success,error) export const getEnterpriseInfoBySj = (params,success,error) => _get("/app/enterpriseInformation/getEnterpriseInfoBySj",params,success,error)

941
src/views/Home.vue

@ -1,478 +1,481 @@
<template> <template>
<!-- <Loading class="loading-div" type="spinner" v-show="isLoading" color="#1989fa"/> --> <!-- <Loading class="loading-div" type="spinner" v-show="isLoading" color="#1989fa"/> -->
<!-- <div class="home app_content" v-if="!isLoading"> --> <!-- v-if="!isLoading" -->
<div class="home app_content"> <div class="home app_content" >
<!-- 导航栏 --> <!-- 导航栏 -->
<!-- <div class="header_body">--> <!-- <div class="header_body">-->
<!-- <header-nav :leftArrow="false" titelText="执法监督码"></header-nav>--> <!-- <header-nav :leftArrow="false" titelText="执法监督码"></header-nav>-->
<!-- </div>--> <!-- </div>-->
<!-- 中间 --> <!-- 中间 -->
<div class="warp_body"> <div class="warp_body">
<div class="logobox"></div> <div class="logobox"></div>
<!-- <refresh-list v-model:freshMap="freshMap" @refresh="onRefresh" @onLoad="onLoad"> --> <!-- <refresh-list v-model:freshMap="freshMap" @refresh="onRefresh" @onLoad="onLoad"> -->
<div class="carousel_box" @onLoad="onLoad"> <div class="carousel_box" @onLoad="onLoad">
<carousel-card v-if="carouselList.length" v-model:carouselList="carouselList"></carousel-card> <carousel-card v-if="carouselList.length" v-model:carouselList="carouselList"></carousel-card>
</div> </div>
<div class="boutique_box"> <div class="boutique_box">
<!-- <van-cell :border="false" title="精品" /> --> <!-- <van-cell :border="false" title="精品" /> -->
<div class="boutique_body"> <div class="boutique_body">
<!-- <goodsCard :goodsList="boutique" :cardAttr="boutiqueAttr"></goodsCard> --> <!-- <goodsCard :goodsList="boutique" :cardAttr="boutiqueAttr"></goodsCard> -->
<div class="box-qr-code" @click="toRegisterView"> <div class="box-qr-code" @click="toRegisterView">
<span class="box-qr-code-text">执法监督码</span> <span class="box-qr-code-text">执法监督码</span>
</div> </div>
</div> </div>
<div class="boutique_body"> <div class="boutique_body">
<!-- <goodsCard :goodsList="boutique" :cardAttr="boutiqueAttr"></goodsCard> --> <!-- <goodsCard :goodsList="boutique" :cardAttr="boutiqueAttr"></goodsCard> -->
<div class="box-info" @click="toRegistrationListView"> <div class="box-info" @click="toRegistrationListView">
<span class="box-info-text">历史检查信息</span> <span class="box-info-text">历史检查信息</span>
</div> </div>
<div class="box-complaint" @click="toComplaintView"> <div class="box-complaint" @click="toComplaintView">
<span class="box-complaint-text">执法投诉</span> <span class="box-complaint-text">执法投诉</span>
</div> </div>
</div> </div>
</div> </div>
<!-- <div class="recommend_box"> <!-- <div class="recommend_box">
<van-cell :border="false" title="推荐" /> <van-cell :border="false" title="推荐" />
<div class="recommend_body"> <div class="recommend_body">
<goodsCard :goodsList="recommend"></goodsCard> <goodsCard :goodsList="recommend"></goodsCard>
</div> </div>
</div> --> </div> -->
<!-- </refresh-list> --> <!-- </refresh-list> -->
</div> </div>
<!-- 底部 --> <!-- 底部 -->
<div class="footer_body"> <div class="footer_body">
<footer-nav></footer-nav> <footer-nav></footer-nav>
</div> </div>
</div> </div>
</template> </template>
<script setup name="Home"> <script setup name="Home">
import Vconsolefrom from 'vconsole'; import Vconsolefrom from 'vconsole';
import * as w6s from 'szient-js-sdk'; import * as w6s from 'szient-js-sdk';
import sha1 from 'crypto-js/sha1'; import sha1 from 'crypto-js/sha1';
import {getEnterpriseMerchantAuthorization, getSiqLoginAuth, getSiqLoginAuthTest, siqCode} from '../api/Home'; import { Loading } from 'vant';
import {Loading, showFailToast, showSuccessToast} from "vant"; import {getEnterpriseMerchantAuthorization, getSiqLoginAuth, siqCode} from '../api/Home';
import 'vant/es/toast/style'; import {showSuccessToast} from "vant";
const {useCommon} = $globalStore; import 'vant/es/toast/style';
const router = useRouter(); const {useCommon} = $globalStore;
const route = useRoute(); const router = useRouter();
let carouselList = reactive([]); // 轮播列表 const route = useRoute();
const isLoading = ref(true); let carouselList = reactive([]); // 轮播列表
let freshMap = reactive({ const isLoading = ref(true);
refreshLoad: false, // 是否刷新 let freshMap = reactive({
listLoading: false, // 是否加载中 refreshLoad: false, // 是否刷新
listFinished: false, // 是否加载完成标识 listLoading: false, // 是否加载中
}); listFinished: false, // 是否加载完成标识
const data = reactive({}); });
const boutiqueAttr = reactive({ const data = reactive({});
columnNum: 4, const boutiqueAttr = reactive({
itemClass: "boutique_item", columnNum: 4,
goodsCradclass: "boutique-crad", itemClass: "boutique_item",
}); // 商品卡片展示 goodsCradclass: "boutique-crad",
}); // 商品卡片展示
//获取轮播
const getCarousel = async () => { //获取轮播
// const res = await useHome.getCarousel(); const getCarousel = async () => {
// if (res?.code === 20000) { // const res = await useHome.getCarousel();
// carouselList = res?.data; // if (res?.code === 20000) {
// } // carouselList = res?.data;
}; // }
};
//精品
const boutiqueGoods = async () => { //精品
// const res = await useHome.boutiqueGoods(); const boutiqueGoods = async () => {
// if (res?.code === 20000) { // const res = await useHome.boutiqueGoods();
// boutique = res?.data; // if (res?.code === 20000) {
// } // boutique = res?.data;
}; // }
};
const toRegisterView = async () => {
if (useCommon.enterpriseNumber == null || useCommon.enterpriseNumber == "") { const toRegisterView = async () => {
router.push({path: "/enterprise/register"}); if (useCommon.enterpriseNumber == null || useCommon.enterpriseNumber == "") {
} else { router.push({path: "/enterprise/register"});
router.push({ } else {
path: "/enterprise/qrCode", router.push({
query: { path: "/enterprise/qrCode",
enterpriseNumber: useCommon.enterpriseNumber, query: {
} enterpriseNumber: useCommon.enterpriseNumber,
}); }
} });
}; }
};
const toRegistrationListView = async () => {
router.push({ const toRegistrationListView = async () => {
path: "/enterprise/registrationList", router.push({
}); path: "/enterprise/registrationList",
} });
const toComplaintView = async () => { }
router.push({ const toComplaintView = async () => {
path: "/compaintBase", router.push({
query: { path: "/enterprise/complaint",
isSelect: true query: {
} isSelect: true
}); }
} });
}
//下拉刷新
const onRefresh = () => { //下拉刷新
freshMap.listFinished = false; const onRefresh = () => {
freshMap.listLoading = true; freshMap.listFinished = false;
freshMap.refreshLoad = true; freshMap.listLoading = true;
// Promise.all([getCarousel(), boutiqueGoods(), recommendGoods()]).then(() => { freshMap.refreshLoad = true;
// freshMap.refreshLoad = false; // Promise.all([getCarousel(), boutiqueGoods(), recommendGoods()]).then(() => {
// }); // freshMap.refreshLoad = false;
}; // });
};
// 触底加载
const onLoad = () => { // 触底加载
// recommendGoods(true); const onLoad = () => {
}; // recommendGoods(true);
};
const generateRandomNumber = () => {
const min = 100000; const generateRandomNumber = () => {
const max = 999999; const min = 100000;
const randomNum = (Math.floor(Math.random() * (max - min + 1)) + min); const max = 999999;
return randomNum.toString().padStart(6, '0'); const randomNum = (Math.floor(Math.random() * (max - min + 1)) + min);
} return randomNum.toString().padStart(6, '0');
}
const getEnterpriseMerchant = (phoneNumber) => {
getEnterpriseMerchantAuthorization({merchantTel: phoneNumber}, success => { const getEnterpriseMerchant = (phoneNumber) => {
if (!(success.data == null && success.data.length == 0)) { getEnterpriseMerchantAuthorization({merchantTel: phoneNumber}, success => {
useCommon.SET_USER_ENTERPRISE_NUMBER(success.data[0].enterpriseNumber); if (!(success.data == null && success.data.length == 0)) {
} useCommon.SET_USER_ENTERPRISE_NUMBER(success.data[0].enterpriseNumber);
}, error => { }
}) }, error => {
} })
}
onMounted(() => {
// console.log(useCommon.phonenumber) onMounted(() => {
// useCommon.SET_USER_PHONENUMBER(success.data.phonenumber); // console.log(useCommon.phonenumber)
// new Vconsolefrom(); // useCommon.SET_USER_PHONENUMBER(success.data.phonenumber);
// new Vconsolefrom();
// const access_key = '6374106c5eb449a4ad6c2430f30796e6';
// const access_secret = '434fec85aa5846e88bbeb8fac6cf6d7f'; // const access_key = '6374106c5eb449a4ad6c2430f30796e6';
// generateRandomNumber() // const access_secret = '434fec85aa5846e88bbeb8fac6cf6d7f';
console.log(useCommon.firstLoad); // generateRandomNumber()
isLoading.value = useCommon.firstLoad; console.log(useCommon.firstLoad);
siqCode(null, success => { isLoading.value = useCommon.firstLoad;
let access_key = ""; siqCode(null, success => {
let access_secret = ""; let access_key = "";
if (success.success) { let access_secret = "";
access_key = success.data.accessKey; if (success.success) {
access_secret = success.data.accessSecret; access_key = success.data.accessKey;
} access_secret = success.data.accessSecret;
}
const nonce = generateRandomNumber();
const timestamp = `${Date.now()}`; const nonce = generateRandomNumber();
const timestamp = `${Date.now()}`;
const str = [access_secret, nonce, timestamp]
.sort() const str = [access_secret, nonce, timestamp]
.reduce((str, item) => str += item, ''); .sort()
.reduce((str, item) => str += item, '');
// 最终还需要转成全小写
const signature = sha1(str).toString().toLowerCase(); // 最终还需要转成全小写
const signature = sha1(str).toString().toLowerCase();
//深i企鉴权测试
// getSiqLoginAuthTest({userId: "1608644307579883522", userName: "汪鑫"}, success => { //深i企鉴权测试
// getSiqLoginAuthTest({userId: "1795031916332843009", userName: "陈瑞"}, success => { // getSiqLoginAuthTest({userId: "1608644307579883522", userName: "汪鑫"}, success => {
// console.log(success.data); // getSiqLoginAuthTest({userId: "1795031916332843009", userName: "陈瑞"}, success => {
// useCommon.SET_USER_PHONENUMBER(success.data.phonenumber.toString()); // console.log(success.data);
// useCommon.SET_USER_ID(success.data.userId); // useCommon.SET_USER_PHONENUMBER(success.data.phonenumber.toString());
// console.log("-----> success.data: ", success.data); // useCommon.SET_USER_ID(success.data.userId);
// useCommon.SET_USER_ENTERPRISE_NUMBER(success.data.enterpriseNumber); // useCommon.SET_USER_ENTERPRISE_NUMBER(success.data.enterpriseNumber);
// useCommon.SET_TOKEN(success.data.token); // useCommon.SET_TOKEN(success.data.token);
// console.log("-----> useCommon.userId: ", useCommon.userId); // console.log(useCommon.userId);
// console.log("-----> useCommon.firstLoad: ", useCommon.firstLoad); // console.log(useCommon.firstLoad);
// //设置已经初始化 // if(useCommon.firstLoad){
// useCommon.SET_IS_FIRST_LOAD(false) // isLoading.value = false;
// getEnterpriseMerchant(success.data.phonenumber.toString()); // }
// isLoading.value = false; // //设置已经初始化
// }, error => { // useCommon.SET_IS_FIRST_LOAD(false)
// }) // getEnterpriseMerchant(success.data.phonenumber.toString());
// }, error => {
w6s.config({ // })
access_key: access_key,
nonce: nonce, w6s.config({
timestamp: timestamp, access_key: access_key,
signature: signature, nonce: nonce,
}).then((res) => { timestamp: timestamp,
// 成功 signature: signature,
console.log("鉴权", res); }).then((res) => {
// 成功
}).catch((err) => { console.log("鉴权", res);
// 失败
// console.log(err) }).catch((err) => {
console.log("鉴权", err); // 失败
// todo 临时工 // console.log(err)
getEnterpriseMerchant(useCommon.phonenumber.toString()); console.log("鉴权", err);
}); // todo 临时工
getEnterpriseMerchant(useCommon.phonenumber.toString());
w6s.ready(() => { });
w6s.szient.getAuthCode({
success: function (res) { w6s.ready(() => {
console.log(res) w6s.szient.getAuthCode({
console.log("认证", res); success: function (res) {
console.log("code: " + res.result.result.code); console.log(res)
getSiqLoginAuth({code: res.result.result.code}, success => { console.log("认证", res);
useCommon.SET_USER_PHONENUMBER(success.data.phonenumber.toString()); console.log("code: " + res.result.result.code);
useCommon.SET_USER_ID(success.data.userId); getSiqLoginAuth({code: res.result.result.code}, success => {
useCommon.SET_USER_ENTERPRISE_NUMBER(success.data.enterpriseNumber); useCommon.SET_USER_PHONENUMBER(success.data.phonenumber.toString());
console.log(success.data); useCommon.SET_USER_ID(success.data.userId);
// useCommon.SET_USER_PHONENUMBER(success.data.phonenumber.toString()); useCommon.SET_USER_ENTERPRISE_NUMBER(success.data.enterpriseNumber);
// useCommon.SET_USER_ID(success.data.userId); console.log(success.data);
// useCommon.SET_USER_ENTERPRISE_NUMBER(success.data.enterpriseNumber); // useCommon.SET_USER_PHONENUMBER(success.data.phonenumber.toString());
useCommon.SET_TOKEN(success.data.token); // useCommon.SET_USER_ID(success.data.userId);
console.log(useCommon.userId); // useCommon.SET_USER_ENTERPRISE_NUMBER(success.data.enterpriseNumber);
console.log(useCommon.firstLoad); useCommon.SET_TOKEN(success.data.token);
if(useCommon.firstLoad){ console.log(useCommon.userId);
isLoading.value = false; console.log(useCommon.firstLoad);
} if(useCommon.firstLoad){
//设置已经初始化 isLoading.value = false;
useCommon.SET_IS_FIRST_LOAD(false) }
getEnterpriseMerchant(success.data.phonenumber.toString()); //设置已经初始化
isLoading.value = false; useCommon.SET_IS_FIRST_LOAD(false)
}, error => { getEnterpriseMerchant(success.data.phonenumber.toString());
console.log("error : " + error) if(useCommon.firstLoad){
}) isLoading.value = false;
}, }
fail: function (err) { }, error => {
console.log(err) console.log("error : " + error)
console.log("认证", err); })
}, },
}); 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);
// } // getEnterpriseMerchantAuthorization({merchantTel: useCommon.phonenumber},success =>{
// },error =>{ // 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 =>{
const { VITE_BASE_URL,access_key,access_secret } = import.meta.env; // })
console.log(VITE_BASE_URL);
const apiUrl = ref(import.meta.env.accessKey);
console.log(access_key); });
console.log(access_secret); const { VITE_BASE_URL,access_key,access_secret } = import.meta.env;
console.log(VITE_BASE_URL);
}); const apiUrl = ref(import.meta.env.accessKey);
console.log(access_key);
console.log(access_secret);
});
</script> </script>
<style lang="less" scoped> <style lang="less" scoped>
.home { .home {
display: flex; display: flex;
flex-direction: column; flex-direction: column;
height: 100%; height: 100%;
overflow: hidden; overflow: hidden;
background-color: #f4f4f4; background-color: #f4f4f4;
.warp_body { .warp_body {
position: relative; position: relative;
margin: 0; margin: 0;
width: 100%; width: 100%;
height: 100%; height: 100%;
background: #c6e6ff url("../assets/images/bg_c.jpg") no-repeat top; background: #c6e6ff url("../assets/images/bg_c.jpg") no-repeat top;
background-size: auto 100%; background-size: auto 100%;
overflow-x: hidden; overflow-x: hidden;
overflow-y: auto; overflow-y: auto;
.carousel_box { .carousel_box {
height: 4rem; height: 4rem;
width: 100%; width: 100%;
padding-bottom: 0.27rem; padding-bottom: 0.27rem;
} }
} }
.boutique_box { .boutique_box {
position: absolute; position: absolute;
width: 100%; width: 100%;
bottom: calc(0.5rem + constant(safe-area-inset-bottom)); bottom: 1%;
bottom: calc(0.5rem + env(safe-area-inset-bottom));
.boutique_body {
.boutique_body { padding: 0 0 0.27rem 0;
padding: 0 0 0.27rem 0; display: flex;
display: flex; justify-content: center;
justify-content: center; }
}
.box-qr-code {
.box-qr-code { position: relative;
position: relative; margin: 2% 0;
margin: 2% 0; width: 90%;
width: 90%; height: 3.67rem;
height: 3.67rem; text-align: right;
text-align: right; border-radius: 0.27rem;
border-radius: 0.27rem;
.box-qr-code-text {
.box-qr-code-text { position: absolute;
position: absolute; z-index: 10;
z-index: 10; top: 0.35rem;
top: 0.35rem; right: 0.35rem;
right: 0.35rem; display: block;
display: block; font-size: 0.5rem;
font-size: 0.5rem; }
} }
}
.box-qr-code::before {
.box-qr-code::before { content: "";
content: ""; position: absolute;
position: absolute; top: -0.14rem;
top: -0.14rem; left: -0.14rem;
left: -0.14rem; z-index: 0;
z-index: 0; width: calc(100% + 0.13rem);
width: calc(100% + 0.13rem); height: calc(100% + 0.13rem);
height: calc(100% + 0.13rem); background-color: #fff;
background-color: #fff; border: 0.14rem solid rgba(255, 255, 255, 0.5);
border: 0.14rem solid rgba(255, 255, 255, 0.5); border-radius: 0.27rem;
border-radius: 0.27rem; }
}
.box-qr-code::after {
.box-qr-code::after { content: "";
content: ""; position: absolute;
position: absolute; top: 0;
top: 0; left: 0;
left: 0; z-index: 1;
z-index: 1; width: 100%;
width: 100%; height: 100%;
height: 100%; border-radius: 0.27rem;
border-radius: 0.27rem; background: #fff url("../assets/images/item_code.jpg") no-repeat left;
background: #fff url("../assets/images/item_code.jpg") no-repeat left; background-size: auto 100%;
background-size: auto 100%; border: 1px solid #8db4ff;
border: 1px solid #8db4ff; }
}
.box-info {
.box-info { position: relative;
position: relative; margin-right: 2%;
margin-right: 2%; width: 50%;
width: 50%; height: 3.67rem;
height: 3.67rem; text-align: right;
text-align: right; border-radius: 0.27rem;
border-radius: 0.27rem;
.box-info-text {
.box-info-text { position: absolute;
position: absolute; z-index: 10;
z-index: 10; top: 0.35rem;
top: 0.35rem; right: 0.35rem;
right: 0.35rem; display: block;
display: block; font-size: 0.5rem;
font-size: 0.5rem; }
} }
}
.box-info::before {
.box-info::before { content: "";
content: ""; position: absolute;
position: absolute; top: -0.14rem;
top: -0.14rem; left: -0.14rem;
left: -0.14rem; z-index: 0;
z-index: 0; width: calc(100% + 0.13rem);
width: calc(100% + 0.13rem); height: calc(100% + 0.13rem);
height: calc(100% + 0.13rem); background-color: #fff;
background-color: #fff; border: 0.14rem solid rgba(255, 255, 255, 0.5);
border: 0.14rem solid rgba(255, 255, 255, 0.5); border-radius: 0.27rem;
border-radius: 0.27rem; }
}
.box-info::after {
.box-info::after { content: "";
content: ""; position: absolute;
position: absolute; top: 0;
top: 0; left: 0;
left: 0; z-index: 1;
z-index: 1; width: 100%;
width: 100%; height: 100%;
height: 100%; border-radius: 0.27rem;
border-radius: 0.27rem; background: #fff url("../assets/images/item_checkc.jpg") no-repeat left;
background: #fff url("../assets/images/item_checkc.jpg") no-repeat left; background-size: auto 100%;
background-size: auto 100%; border: 1px solid #8db4ff;
border: 1px solid #8db4ff; }
}
.box-complaint {
.box-complaint { position: relative;
position: relative; margin-left: 3%;
margin-left: 3%; width: 35%;
width: 35%; height: 3.67rem;
height: 3.67rem; text-align: right;
text-align: right; border-radius: 0.27rem;
border-radius: 0.27rem;
.box-complaint-text {
.box-complaint-text { position: absolute;
position: absolute; z-index: 10;
z-index: 10; top: 0.35rem;
top: 0.35rem; right: 0.35rem;
right: 0.35rem; display: block;
display: block; font-size: 0.5rem;
font-size: 0.5rem; }
} }
} }
}
.box-complaint::before {
.box-complaint::before { content: "";
content: ""; position: absolute;
position: absolute; top: -0.14rem;
top: -0.14rem; left: -0.14rem;
left: -0.14rem; z-index: 0;
z-index: 0; width: calc(100% + 0.13rem);
width: calc(100% + 0.13rem); height: calc(100% + 0.13rem);
height: calc(100% + 0.13rem); background-color: #fff;
background-color: #fff; border: 0.14rem solid rgba(255, 255, 255, 0.5);
border: 0.14rem solid rgba(255, 255, 255, 0.5); border-radius: 0.27rem;
border-radius: 0.27rem; }
}
.box-complaint::after {
.box-complaint::after { content: "";
content: ""; position: absolute;
position: absolute; top: 0;
top: 0; left: 0;
left: 0; z-index: 1;
z-index: 1; width: 100%;
width: 100%; height: 100%;
height: 100%; border-radius: 0.27rem;
border-radius: 0.27rem; background: #fff url("../assets/images/item_complain.jpg") no-repeat left;
background: #fff url("../assets/images/item_complain.jpg") no-repeat left; background-size: auto 100%;
background-size: auto 100%; border: 1px solid #8db4ff;
border: 1px solid #8db4ff; }
}
.recommend_box {
.recommend_box { .recommend_body {
.recommend_body { width: 100%;
width: 100%; }
} }
} }
}
.logobox {
.logobox { position: relative;
position: relative; top: 4%;
top: 4%; left: 5%;
left: 5%; z-index: 99;
z-index: 99; width: 82%;
width: 82%; height: 10vh;
height: 10vh; background: url("../assets/images/logo.png") no-repeat;
background: url("../assets/images/logo.png") no-repeat; background-size: 100% auto;
background-size: 100% auto; }
}
@media screen and (max-width: 380px) {
@media screen and (max-width: 380px) { .home .warp_body {
.home .warp_body { background: #c6e6ff url("../assets/images/bg_c.jpg") no-repeat top;
background: #c6e6ff url("../assets/images/bg_c.jpg") no-repeat top; background-size: 100% auto;
background-size: 100% auto; }
} }
}
@media screen and (min-width: 540px) {
@media screen and (min-width: 540px) { .home .warp_body {
.home .warp_body { background: #c6e6ff url("../assets/images/bg_c.jpg") no-repeat top;
background: #c6e6ff url("../assets/images/bg_c.jpg") no-repeat top; background-size: 100% auto;
background-size: 100% auto; }
} }
} .loading-div{
.loading-div{ position: absolute;
position: absolute; top: 45%;
top: 45%; left: 48%;
left: 48%; }
}
</style> </style>

307
src/views/enforce/scanQrCode.vue

@ -15,14 +15,14 @@
<div class="warp_body"> <div class="warp_body">
<!-- <refresh-list v-model:freshMap="freshMap" @refresh="onRefresh" @onLoad="onLoad"> --> <!-- <refresh-list v-model:freshMap="freshMap" @refresh="onRefresh" @onLoad="onLoad"> -->
<div class="white-body"> <div class="white-body">
<!-- <div class="carousel_box"> <div class="carousel_box">
<div class="box-scan-one"> <div class="box-scan-one">
<span class="box-scan-text">扫一扫<br/>企业二维码</span> <span class="box-scan-text">扫一扫<br/>企业二维码</span>
</div> </div>
<div class="box-scan-two"> <div class="box-scan-two">
<span class="box-scan-text">即可查看<br/>企业信息</span> <span class="box-scan-text">即可查看<br/>企业信息</span>
</div> </div>
</div>--> </div>
<div class="boutique_box"> <div class="boutique_box">
<!-- <van-cell :border="false" title="精品" /> --> <!-- <van-cell :border="false" title="精品" /> -->
<div class="boutique_body"> <div class="boutique_body">
@ -32,48 +32,23 @@
<span class="box-qr-code-text">执法监督码</span>--> <span class="box-qr-code-text">执法监督码</span>-->
</div> </div>
</div> </div>
<div class="scan-note">扫一扫企业二维码,即可查看企业信息</div> <div class="nocode" @click="toNoScanView">没有企业码?手动输入关键词查询 >></div>
<!-- <div class="nocode" @click="toNoScanView">扫码不成功?手动输入关键词查询 >></div>--> </div>
<div class="nocode" @click="showPopup()">手动登记,请输入关键字搜索企业 >></div> </div>
<!-- <div class="recommend_box">
<van-cell :border="false" title="推荐" />
<div class="recommend_body">
<!-- <div class="nav-div"> <goodsCard :goodsList="recommend"></goodsCard>
<div @click="showPopup()"><van-icon name="search" /><span>企业搜索</span> </div>
<div class="act-note">扫码不成功?手动输入关键词查询</div> </div> -->
</div>
<div><van-icon name="records-o" /><span>补录</span>
<div class="act-note">仅限因特殊情形,需先检查,后登记相关检查信息</div>
</div>
</div>-->
</div>
<!-- <div class="addinfo" @click="toRecord">补录</div>-->
<div class="record">如遇网络异常、设备故障无法登录系统的情况,<a @click="toSign">补录 >></a></div>
</div>
<!-- <div class="recommend_box">
<van-cell :border="false" title="推荐" />
<div class="recommend_body">
<goodsCard :goodsList="recommend"></goodsCard>
</div>
</div> -->
<!-- </refresh-list> --> <!-- </refresh-list> -->
</div> </div>
<!-- 底部 --> <!-- 底部 -->
<!-- <div class="footer_body"> <!-- <div class="footer_body">
<footer-nav></footer-nav> <footer-nav></footer-nav>
</div> --> </div> -->
<popup :visible="popupVisible" :content="data.lawContent" @close="closePopup" @reciveData=""/>
</div> </div>
<!-- <van-popup v-model:show="data.showNoScanPicker" position="bottom">
<van-calendar v-model:show="data.showOperatingTermPicker" type="range"
:min-date="data.minDate" :max-date="data.maxDate" @confirm="onOperatingTermConfirm" />
</van-popup> -->
</template> </template>
<script setup name="Home"> <script setup name="Home">
@ -161,7 +136,7 @@
success: (res) => { success: (res) => {
// 页面跳转 // 页面跳转
console.log("=========== 扫码返回 ===========") console.log("=========== 扫码返回 ===========")
console.log(res) console.log(res)
//TODO 判断是否是市监 //TODO 判断是否是市监
if(isHttpLink(res.resultStr)){ if(isHttpLink(res.resultStr)){
@ -181,7 +156,7 @@
}) })
} }
},error =>{}) },error =>{})
}else{ }else{
const scanObj = JSON.parse(res.resultStr); const scanObj = JSON.parse(res.resultStr);
// 判断二维码是否过期, 如果已过期则跳转提示页 // 判断二维码是否过期, 如果已过期则跳转提示页
@ -205,8 +180,8 @@
showFailToast("该二维码不正确"); showFailToast("该二维码不正确");
}) })
} }
}, },
cancel: (res) => { cancel: (res) => {
console.log('err', res); console.log('err', res);
@ -264,53 +239,15 @@
}, error => { }, error => {
}) })
}) })
// 返回 // 返回
const goBack = () => { const goBack = () => {
router.go(-1); router.go(-1);
}; };
const isHttpLink = (url) =>{
return url.indexOf("http://") === 0 || url.indexOf("https://") === 0;
const toSign = () => {
router.push({
path: "/sign",
query: {
// enterpriseNumber: data.enterpriseNumber,
reason: '补录',
checkCss: 9,
isNoScan: true,
}
});
};
const isHttpLink = (url) =>{
return url.indexOf("http://") === 0 || url.indexOf("https://") === 0;
}
</script>
<script>
//不扫码企业筛选弹窗
import Popup from '@/views/enforce/noScanFilter.vue';
export default {
components: {
Popup
},
data() {
return {
popupVisible: false,
popupContent: ''
}
},
methods: {
showPopup() {
this.popupVisible = true;
},
closePopup() {
this.popupVisible = false;
}
} }
}
</script> </script>
<style lang="less" scoped> <style lang="less" scoped>
.home { .home {
display: flex; display: flex;
@ -359,7 +296,7 @@ export default {
.boutique_box { .boutique_box {
position: relative; position: relative;
top: 25%; top: 10%;
z-index: 100; z-index: 100;
width: 100%; width: 100%;
@ -373,7 +310,7 @@ export default {
.box-qr-code { .box-qr-code {
width: 52%; width: 52%;
text-align: right; text-align: right;
height: 6rem; height: 7rem;
//background-color: var(--van-primary-color); //background-color: var(--van-primary-color);
background: url("../../assets/images/scan-btn.jpg") no-repeat center center; background: url("../../assets/images/scan-btn.jpg") no-repeat center center;
background-size: 100%; background-size: 100%;
@ -400,7 +337,6 @@ export default {
} }
.white-body { .white-body {
position: relative;
margin: 0 3%; margin: 0 3%;
width: 94%; width: 94%;
height: 99%; height: 99%;
@ -409,211 +345,10 @@ export default {
} }
.nocode { .nocode {
margin: 15% 0 0;
width: 100%; width: 100%;
color: #fb7905; color: #fb7905;
font-size: 0.42rem; font-size: 0.42rem;
text-align: center; text-align: center;
line-height: 5; line-height: 3;
}
.scan-note {
width: 100%;
color: #d3d0d0;
font-size: 0.35rem;
text-align: center;
line-height: 2;
}
.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.37rem;
}
.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.active {
background-color: #e9f2fb;
color: #1367fe;
}
.btnbox {
display: flex;
justify-content: center;
position: absolute;
bottom: 1rem;
left: 5%;
width: 90%;
height: 1rem;
}
.btn-reset {
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-search {
display: inline-block;
margin: 3% 7%;
padding: 0;
width: 70%;
color: #fff;
font-size: 0.35rem;
border-radius: 1rem;
background: #1367fe;
border: 1px solid #1367fe;
text-align: center;
height: 90%;
}
.btn-reset {
width: 35%;
background-color: #fff;
border-color: rgba(19, 103, 254, .7);
color: #1367fe;
}
.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;
}
.nav-div {
display: flex;
margin: 15% 2% 0;
width: 96%;
color: #287eef;
font-size: 0.4rem;
line-height: 2;
text-align: center;
}
.nav-div > div {
margin: 2% 3%;
width: 45%;
}
.nav-div div span{
display: block;
}
.nav-div div i {
margin: 0.35rem;
width: 1.5rem;
height: 1.5rem;
font-size: 0.8rem;
background: #e6eff7;
border-radius: 50%;
text-align: center;
line-height: 1.85;
}
.nav-div .act-note {
margin: 10% 0 0;
width: 100%;
font-size: 0.3rem;
color: #d3d0d0;
line-height: 1.5;
text-align: left;
}
.addinfo {
position: absolute;
bottom: 2rem;
right: 2%;
z-index: 999;
width: 1.5rem;
height: 1.5rem;
background-color: #e0e9f9;
border-radius: 50%;
box-shadow: 0 0 0.27rem #90b6f9;
color: #0240f7;
font-size: 0.4rem;
text-align: center;
vertical-align: middle;
padding-top: 0.45rem;
box-sizing: border-box;
}
.record {
position: absolute;
bottom: 2rem;
color: #bbbaba;
font-size: 0.35rem;
width: 100%;
text-align: center;
white-space: nowrap;
}
.record a {
color: #287eef;
}
</style> </style>

Loading…
Cancel
Save