Browse Source

执法端, 企业端, 联合检查, 通知公告...

v4
蟑螂恶霸 1 year ago
parent
commit
e09d39ef88
  1. 2
      src/App.vue
  2. 2
      src/api/enforce.js
  3. 3
      src/components/footer-nav/index.vue
  4. 12
      src/router/home.js
  5. 2
      src/views/enforce/enforceNotice.vue
  6. 2
      src/views/enforce/enforceNoticeBase.vue
  7. 41
      src/views/enforce/enforceNoticeDetail.vue
  8. 10
      src/views/enforce/enforceNoticeSystem.vue
  9. 4
      src/views/enforce/enforcementPlan.vue
  10. 4
      src/views/enforce/enforcementPlanAdd.vue
  11. 2
      src/views/enforce/enforcementPlanBase.vue
  12. 69
      src/views/enforce/sign.vue
  13. 9
      src/views/enterprise/complaint.vue
  14. 28
      src/views/enterprise/registrationDetail.vue
  15. 272
      src/views/enterprise/registrationEdit.vue
  16. 2
      src/views/enterprise/registrationList.vue
  17. 549
      src/views/enterprise/systemNotice.vue
  18. 859
      src/views/enterprise/systemNoticeDetail.vue
  19. 4
      src/views/login.vue

2
src/App.vue

@ -25,3 +25,5 @@ onMounted(async () => {
});
</script>

2
src/api/enforce.js

@ -182,4 +182,4 @@ export const whole = (params,success,error) =>_get("/app/appComprehensiveAnalysi
* @param {*} error
* @returns
*/
export const queryUnionByHour = (enterpriseNumber, reason, success, error) => _get("/app/code/registration/queryUnionByHour/"+enterpriseNumber+"/"+reason, null,success,error)
export const queryUnionByHour = (enterpriseNumber, reason, enforcementTime, unionNo, success, error) => _get("/app/code/registration/queryUnionByHour/"+enterpriseNumber+"/"+reason+"/"+enforcementTime+"/"+unionNo, null,success,error)

3
src/components/footer-nav/index.vue

@ -10,6 +10,9 @@
<van-tabbar-item name="Classify" replace icon="todo-list" to="/enterprise/complaintList">
投诉进度查询
</van-tabbar-item>
<van-tabbar-item name="Classify" replace icon="todo-list" to="/enterprise/systemNotice">
通知
</van-tabbar-item>
<!-- <van-tabbar-item name="My" replace icon="manager-o" to="">{{
$t("common.lang_my")
}}</van-tabbar-item> -->

12
src/router/home.js

@ -87,6 +87,18 @@ const routes = [
name: "enterpriseInspectionNotice",
component: () => import("@/views/enterprise/enterpriseInspectionNotice.vue"),
},
// 日常通知
{
path: "/enterprise/systemNotice",
name: "systemNotice",
component: () => import("@/views/enterprise/systemNotice.vue"),
},
// 日常通知详情
{
path: "/enterprise/systemNoticeDetail",
name: "systemNoticeDetail",
component: () => import("@/views/enterprise/systemNoticeDetail.vue"),
},
// 执法列表
{
path: "/enterprise/enterpriseInspectionList",

2
src/views/enforce/enforceNotice.vue

@ -78,6 +78,7 @@
// 分页
pageNum: 1,
pageSize: 6,
userId: useCommon.userId,
//搜索框
searchText: ref(''),
//日期查询
@ -108,7 +109,6 @@
console.log(useCommon.enterpriseNumber);
// getCard();
searchParam.enterpriseNumber = useCommon.enterpriseNumber;
console.log(useCommon.enterpriseNumber)
// queryList();
data.dateSearch = nowDate(new Date());
});

2
src/views/enforce/enforceNoticeBase.vue

@ -2,7 +2,7 @@
<div class="home app_content">
<van-tabs v-model:active="data.TabId" sticky @click-tab="onClickTab">
<van-tab v-for="(item, index) in data.list" :title="item.title">
<van-tab v-for="(item, index) in data.list" :key="index" :title="item.title">
<div v-if="data.TabId == 0" style="height: calc(100vh - 1.2rem);">
<enforcementPlanAdd :isReg="0" />
</div>

41
src/views/enforce/enforceNoticeDetail.vue

@ -1,38 +1,11 @@
<template>
<div class="address_edit">
<div class="warp_body">
<van-form @failed="onFailed" @submit="submit">
<van-cell-group v-if="data">
<div class="qy-name">通知信息</div>
<van-field
v-model="data.noticeTitle"
label="通知标题"
readonly
/>
<van-field
class="mult-line"
v-model="data.objectType"
label="通知对象"
readonly
/>
<van-field
class="mult-line"
v-model="data.bureauDeptNames"
label="发布部门"
readonly
/>
<van-field label="发布内容" readonly/>
<van-field
class="complaint-cont"
v-html="data.noticeContent"
rows="5"
autosize
readonly
type="textarea"
show-word-limit
/>
<div class="file-upload">
<div style="background-color: white; border-radius: 5%;" v-html="data.noticeContent"></div>
<!-- <van-divider class="divdsty"/> -->
<div class="file-upload">
<div class="file-upload-center">
<label>附&nbsp; &nbsp; &nbsp; &nbsp;件</label>
</div>
@ -55,11 +28,7 @@
</van-image-preview>
</div>
</div>
</van-cell-group>
<van-divider class="divdsty"/>
</van-form>
</div>
</div>
</template>

10
src/views/enforce/enforceNoticeSystem.vue

@ -42,18 +42,18 @@
<p><label class="card_box_label">发布部门:</label> <span>{{ item.bureauDeptNames }}</span>
</p>
</div>
<div class="item-text">
<!-- <div class="item-text">
<p><label class="card_box_label">发布对象:</label> <span>
{{ item.objectType==1?"监督端": item.objectType==2?"执法端":
item.objectType==3?"企业端": "全部"}}
</span></p>
</div>
</div> -->
<div class="item-text">
<p><label class="card_box_label">发布时间:</label> <span>{{ item.createTime }}</span></p>
</div>
<div class="item-text">
<!-- <div class="item-text">
<p><label class="card_box_label">附&nbsp; &nbsp; &nbsp; &nbsp;件:</label> <span> <a @click="toPdfView(null==item.fileObject?'':item.fileObject.fileUrl)">{{ null==item.fileObject?'':item.fileObject.fileName }}</a></span></p>
</div>
</div> -->
</div>
</div>
</div>
@ -87,6 +87,8 @@
searchDate: ref(''),
//是否发布 1 是
isPublish: 1,
// 发布对象(执法端)
objectType: 2,
searchType:"notice"
});

4
src/views/enforce/enforcementPlan.vue

@ -84,8 +84,8 @@
null!=item.fileObject?item.fileObject.fileName:"" }}</a></p>
</div>
<div class="btn-list" >
<a v-if="item.isPublish == 0" @click.stop="update(item.id,1)"><van-icon name="passed" />发布</a>
<a v-if="item.isPublish == 1" @click.stop="update(item.id,0)"><van-icon name="close" />取消发布</a>
<a v-if="item.isPublish == 0" @click.stop="update(item.id,1)"><van-icon name="passed" />公开</a>
<a v-if="item.isPublish == 1" @click.stop="update(item.id,0)"><van-icon name="close" />取消公开</a>
</div>
</div>
</van-swipe-cell>

4
src/views/enforce/enforcementPlanAdd.vue

@ -174,14 +174,14 @@
</div>
</van-cell-group>
<van-action-bar>
<van-button round block type="info" native-type="submit">提交</van-button>
<van-button round block type="info" native-type="submit">发布</van-button>
</van-action-bar>
</van-form>
</div>
<div class="van-overlay" v-show="data.showIsPublish">
<div class="popcont">
<div class="poptip">是否公布该行政检查计划?</div>
<div class="poptip">是否公开该行政检查计划?</div>
<div class="popup-btn">
<a @click="addPlan(0)">否</a><a @click="addPlan(1)">是</a>
</div>

2
src/views/enforce/enforcementPlanBase.vue

@ -22,7 +22,7 @@
<!-- </div>-->
<van-tabs v-model:active="active" sticky @click-tab="onClickTab">
<van-tab v-for="(item, index) in data.list" :title="item.title">
<van-tab v-for="(item, index) in data.list" :key="index" :title="item.title">
<div v-if="data.TabId == 0" style="height: calc(100vh - 1.2rem);">
<enforcementPlanAdd :isReg="0" />
</div>

69
src/views/enforce/sign.vue

@ -390,14 +390,14 @@
// id
id: "",
//执法部门
lawEnforcement: "",
lawEnforcementId: "",
bureauDeptId:"",
bureauDeptName:"",
lawEnforcement: "联合检查Y",
lawEnforcementId: "405",
bureauDeptId:"405",
bureauDeptName:"联合检查Y",
//执法人员1
lawEnforcer: "",
lawEnforcerId: "",
lawCertificateNumText: "",
lawEnforcer: "联合检查Y",
lawEnforcerId: "1818",
lawCertificateNumText: "联合检查Y",
//执法人员2
lawEnforcerTwo: "",
@ -568,7 +568,7 @@
submitData.enterpriseNumber = success.data.enterpriseNumber
// 查询是否有关联的执法记录
if (null != submitData.enterpriseName) {
getUnionByHour(submitData.enterpriseNumber, submitData.checkCss);
getUnionByHour(submitData.enterpriseNumber, submitData.checkCss, submitData.enforcementTime);
}
}
}, error => {
@ -623,9 +623,9 @@
data.showBl = true;
})
const getUnionByHour = (enterpriseNumber, checkCss) => {
const getUnionByHour = (enterpriseNumber, checkCss, enforcementTime) => {
// data.union_datas =
queryUnionByHour(enterpriseNumber, checkCss, success => {
queryUnionByHour(enterpriseNumber, checkCss, enforcementTime, null, success => {
if(success.success) {
data.union_datas = success.data;
}
@ -803,7 +803,7 @@
submitData.isUnite = 0;
// if (data.checked) { submitData.isUnite = 1; } // 原来的联合检查, 忘记咋用了, 就没用了.
//联合检查
if (data.union_checked == 1) {submitData.isUnite = 1;}
if (data.union_checked == 1) {submitData.hasUnion = 1;} else {submitData.unionNo = null;}
// 是否委托检查
if (data.auth_checked) {submitData.hasAuto = 1;}
@ -860,7 +860,7 @@
submitData.isUnite = 0;
// if (data.checked) { submitData.isUnite = 1; } // 原来的联合检查, 忘记咋用了, 就没用了.
//联合检查
if (data.union_checked == 1) {submitData.hasUnion = 1;}
if (data.union_checked == 1) {submitData.hasUnion = 1;} else {submitData.unionNo = null;}
// 是否委托检查
if (data.auth_checked) {submitData.hasAuto = 1;}
@ -952,27 +952,28 @@
data.tempDate = times[1] + "月" + times[2] + "号";
}
data.showTimePicker = false;
// 查询设定的检查时间是否有别的企业对该部门进行检查, 如果有这提示可进行联合执法
if (null != submitData.enterpriseNumber && null != data.tempDate) {
let params = {
enterpriseNumber: submitData.enterpriseNumber,
checkTime: submitData.checkTime,
}
queryEnterpriseLawEnforcementList(params, success => {
var deptName = "";
for (var i = 0; i < success.rows.length; i++) {
deptName += success.rows[i].lawEnforcement + ", ";
}
if (success.rows.length > 0) {
data.notifyContent = "您在" + data.tempDate + "和" + deptName + "执法部门有相同的执法企业,可以发起联合执法"
data.notifyShow = true;
// setTimeout(() => {
// data.notifyShow = false;
// }, 2000);
}
});
}
getUnionByHour(submitData.enterpriseNumber, submitData.checkCss, submitData.enforcementTime);
// 查询设定的检查时间是否有别的企业对该部门进行检查, 如果有这提示可进行联合执法(旧的)
// if (null != submitData.enterpriseNumber && null != data.tempDate) {
// let params = {
// enterpriseNumber: submitData.enterpriseNumber,
// checkTime: submitData.checkTime,
// }
// queryEnterpriseLawEnforcementList(params, success => {
// var deptName = "";
// for (var i = 0; i < success.rows.length; i++) {
// deptName += success.rows[i].lawEnforcement + ", ";
// }
// if (success.rows.length > 0) {
// data.notifyContent = "您在" + data.tempDate + "和" + deptName + "执法部门有相同的执法企业,可以发起联合执法"
// data.notifyShow = true;
// // setTimeout(() => {
// // data.notifyShow = false;
// // }, 2000);
// }
// });
// }
}
const showPopup = (flag) => {
@ -1055,7 +1056,7 @@
const reciveDataCp = (item) => {
submitData.enterpriseName = item.enterpriseName;
submitData.enterpriseNumber = item.enterpriseNumber;
getUnionByHour(submitData.enterpriseNumber, submitData.checkCss);
getUnionByHour(submitData.enterpriseNumber, submitData.checkCss, submitData.enforcementTime);
// 填充数据
// dataFillIn('bulu');
}

9
src/views/enterprise/complaint.vue

@ -124,8 +124,8 @@
is-link
readonly
clickable
@click="selectType"
/>
<!-- @click="selectType" -->
<van-popup v-model:show="data.showPicker" position="bottom">
<van-picker
v-model="data.selectTypeValue"
@ -136,7 +136,6 @@
</van-popup>
<div v-if="data.uniteCheck != '' && data.uniteCheck != null" v-for="(item, index) in data.depts" :key="index">
<van-field
v-model="item.text"
label="执法部门"
readonly
@ -403,6 +402,12 @@
console.log(submitData.userId);
console.log("================")
// 如果是直接投诉页面则直接定死字典
if (submitData.comOrOpi!=1) {
submitData.enforceType = 3;
submitData.enforceTypeText = "入企不扫码";
}
submitData.relId = route?.query?.id;
submitData.lawEnforcementIncidentText = route?.query?.lawEnforcementItemText;
submitData.complaintDepartments = route?.query?.complaintDepartments;

28
src/views/enterprise/registrationDetail.vue

@ -95,6 +95,14 @@
readonly
/>
<van-divider class="divdsty" />
<van-cell center title="委托执法">
<template #right-icon>
<!-- <van-switch disabled v-model="item.hasAuto"/> -->
<van-switch v-model="data.auth_checked"/>
</template>
</van-cell>
<div class="file-upload">
<div class="file-upload-center">
<label>附&nbsp; &nbsp; &nbsp; &nbsp;件</label>
@ -496,6 +504,7 @@ import {
queryEnforcementRegistrationById,
queryEnforcementRegistrationUniteById,
getAttr,
queryUnionByHour,
} from "@/api/enforce";
import { reactive, ref, nextTick } from "vue";
import { uploadFile } from "@/util/fileUpload";
@ -533,6 +542,12 @@ const data = reactive({
regList: [],
lawList: [],
arrayLength: 1,
allNo: 'circle',
union_checked: '0', // 联合检查选择
auth_checked: false, // 委托执法选择
union_datas: [], // 联合检查用的分组list
check_union_no: '', // 选中的联合检查编号
radio_flag: 'circle', // 联合检查单选按钮的选择标识
});
//保存参数
const submitData = reactive({
@ -859,14 +874,11 @@ const queryRegUniteById = () => {
queryEnforcementRegistrationUniteById(
route?.query?.id,
(success) => {
convertReg(success.data["regResults"])
.then(() => {
convertReg(success.data["regResults"]).then(() => {
return convertLaw(success.data["lawResults"]);
})
.then(() => {
}).then(() => {
data.regList[0].downShow = true;
data.regList[data.regList.length - 1].upShow = true;
console.log(success.data);
//评价信息
submitData.isEvaluate = success.data["regResults"][0].isEvaluate;
if (
@ -936,6 +948,11 @@ const convertReg = (regs) => {
return new Promise((res) => {
var proFlag = 0;
for (var k = 0; k < regs.length; k++) {
// 因为下面的小箭头隐藏了, 所以这里要把自己移动到第一位 放出来的话删掉 start
if (regs[k].id != route?.query?.id) {
continue
}
// 因为下面的小箭头隐藏了, 所以这里要把自己移动到第一位 放出来的话删掉 end
let dt = regs[k];
let obj = {};
obj.id = dt.id;
@ -947,6 +964,7 @@ const convertReg = (regs) => {
obj.lawEnforcementId = dt.lawEnforcementId;
obj.lawEnforcementItem = dt.lawEnforcementItem;
obj.lawEnforcementItemText = dt.lawEnforcementItemText;
data.auth_checked = dt.hasAuto==0?false:true;
obj.lawEnforcer = nameCorrect(dt.lawEnforcer);
obj.remark = dt.remark;
obj.enforce = dt.enforceReason;

272
src/views/enterprise/registrationEdit.vue

@ -233,14 +233,39 @@
/>-->
<van-divider class="divdsty" />
<van-cell center title="开启联合检查">
<van-cell center title="联合检查" required>
<template #right-icon>
<van-switch v-model="data.checked" @click="!data.checked"/>
<!-- <van-switch v-model="data.checked" @click="checkUnite"/>-->
<van-radio-group v-model="data.union_checked" shape="square" direction="horizontal">
<van-radio name="0">否</van-radio>
<van-radio name="1">是</van-radio>
</van-radio-group>
<!-- <van-switch v-model="data.union_checked" @click="!data.union_checked"/> -->
</template>
</van-cell>
<div class="add-inspect" v-if="data.checked">
<div class="add-inspect" v-if="data.union_checked==1">
<div v-for="(item, index) in data.union_datas" :key="index" ref="radio_fales" @click="check_radio(Object.values(item)[0].unionNo, index)" class="item-inspect">
<van-icon name="checked" />
<div class="dept-inspect">
<p v-for="(item2, index2) in item" :key="index2">{{item2.bureauDeptName}}</p>
</div>
</div>
<div class="item-inspect" @click="check_radio(null, null)">
<van-icon :name="data.allNo" />
<div class="dept-inspect no-inspect">
<p>开启新的联合检查</p>
</div>
</div>
</div>
<van-divider class="divdsty" />
<van-cell center title="委托执法">
<template #right-icon>
<van-switch v-model="data.auth_checked" @click="!data.auth_checked"/>
</template>
</van-cell>
<!-- <div class="add-inspect" v-if="data.checked"> -->
<div class="add-inspect" v-if="false">
<!-- <p v-if="submitData.userObjs.length > 0"><label>联合检查部门+人员</label></p>-->
<p v-for="(item, index) in submitData.userObjs" :key="index">
<span class="add-name">{{nameCorrect(item.userName)}}</span>
@ -256,7 +281,7 @@
<label>附&nbsp; &nbsp; &nbsp; &nbsp;件</label> <span>(不多于 8张)</span>
</div>
<!-- :after-read="uploadFiles" -->
<van-uploader v-model="submitData.fileListObj" class="file" multiple max-count="8" :after-read="uploadFiles" :before-delete="deleteFile">
<van-uploader v-model="data.fileListObj" class="file" multiple max-count="8" :after-read="uploadFiles" :before-delete="deleteFile">
<template #preview-cover="{ file }">
<div class="preview-cover van-ellipsis">{{ file.name }}</div>
</template>
@ -319,7 +344,7 @@
import 'vant/es/toast/style';
import {addEnforcementRegistration, editEnforcementRegistration, editEnforcementRegistration2, getRegByUserIdAndZero, getByUserIdAndEnterpriseNumber, queryUserInfo} from '../../api/enforce'
import {getEnterpriseInformation} from '../../api/enterprise'
import {queryEnforcementRegistrationById, getAttr} from '@/api/enforce'
import {queryEnforcementRegistrationById, queryUnionByHour, getAttr} from '@/api/enforce'
import { reactive, ref } from "vue";
import {nameCorrect, uploadFile} from "../../util/fileUpload";
import {formattedTime} from "@/util/util";
@ -338,9 +363,12 @@
getByUserIdAndZero,
queryEnterpriseLawEnforcementList
} from "../../api/administrative";
import { baseUrl } from "@/config/env";
const { useCommon,useMy } = $globalStore
const radio_fales = ref([]);
const router = useRouter();
//路由参数
const route = useRoute();
@ -378,6 +406,14 @@
checked: false,
deptChecked: false,
deptContent: '',
//vant组件上传照片列表
fileListObj:[],
allNo: 'circle',
union_checked: '0', // 联合检查选择
auth_checked: false, // 委托执法选择
union_datas: [], // 联合检查用的分组list
check_union_no: '', // 选中的联合检查编号
radio_flag: 'circle', // 联合检查单选按钮的选择标识
});
var fileSize = 0;
//保存参数
@ -385,12 +421,14 @@
// id
id:"",
//执法部门
lawEnforcement:"",
lawEnforcementId:"",
lawEnforcement:"联合执法H",
lawEnforcementId:"405",
bureauDeptId:"405",
bureauDeptName:"联合执法H",
//执法人员1
lawEnforcer:"",
lawEnforcerId:"",
lawCertificateNumText:"",
lawEnforcer:"1818",
lawEnforcerId:"1818",
lawCertificateNumText:"1818",
//执法人员2
@ -422,10 +460,14 @@
enforcementTime:formattedTime(new Date()),
//后台保存图片列表
fileList:[],
//vant组件上传照片列表
fileListObj:[],
// 数据保存或提交 0 保存 1提交
isSubmit: 0,
// 选择的联合检查编号
unionNo: '',
// 联合检查选择
hasUnion: 0,
// 委托执法选择
hasAuto: 0,
lawId: "",
lawText: "",
uniteCheck: "",
@ -440,8 +482,6 @@
deptObjs: [],
userObjs: [],
isUnite: 0,
bureauDeptId:"",
bureauDeptName:"",
})
const tapGood = () => {
@ -561,7 +601,6 @@
}
},error=>{});
})
// 返回
@ -578,15 +617,16 @@
const uploadFiles = (file) =>{
uploadFile(file,(res) =>{
console.log("32323")
submitData.fileList.push(res.url)
});
}
const deleteFile = (file,index) =>{
// submitData.fileListObj.filter((item, indexs) => {
// data.fileListObj.filter((item, indexs) => {
// if (index.index == indexs) {
// submitData.fileListObj.splice(indexs, 1);//splice 删除
// data.fileListObj.splice(indexs, 1);//splice 删除
// }
// });
submitData.fileList.filter((item, indexs) => {
@ -650,6 +690,11 @@
// 检查时间
// submitData.enforcementTime = formattedTimeYYYYmmdd(success.data.enforcementTime);
submitData.enforcementTime = success.data.enforcementTime;
submitData.hasUnion = success.data.hasUnion;
data.union_checked = String(success.data.hasUnion);
submitData.hasAuto = success.data.hasAuto;
data.auth_checked = success.data.hasAuto==0?false:true;
submitData.unionNo = success.data.unionNo;
//评价信息
submitData.isEvaluate = success.data.isEvaluate;
if (null != success.data.enterpriseEvaluate && "" != success.data.enterpriseEvaluate) {
@ -701,54 +746,82 @@
// setLinkageItem(submitData.lawEnforcementItem);
// setLinkageGA(submitData.lawEnforcementBasis);
if(success.data.uniteCheck!= null && success.data.uniteCheck != ''){
selectRegistrationList({"uniteCheck":success.data.uniteCheck},success =>{
console.log(success.data);
for (let index = 0; index < success.data.length; index++) {
const element = success.data[index];
var arr = [];
// arr.push(nameCorrect(element.lawEnforcer));
// let tow = element.lawEnforcerTwo.split(",");
// for (const key in tow) {
// arr.push(nameCorrect(tow[key]));
// }
for (const key in element.lawEnforcer2List) {
arr.push(nameCorrect(element.lawEnforcer2List[key]));
}
var obj = {
"deptName": element.bureauDeptName,
"deptId": element.bureauDeptId,
"userList": arr
}
data.dataList.push(obj)
}
},error =>{
})
// 老版本的关联联合检查
// if(success.data.uniteCheck!= null && success.data.uniteCheck != ''){
// selectRegistrationList({"uniteCheck":success.data.uniteCheck},success =>{
// console.log(success.data);
// for (let index = 0; index < success.data.length; index++) {
// const element = success.data[index];
// var arr = [];
// // arr.push(nameCorrect(element.lawEnforcer));
// // let tow = element.lawEnforcerTwo.split(",");
// // for (const key in tow) {
// // arr.push(nameCorrect(tow[key]));
// // }
// for (const key in element.lawEnforcer2List) {
// arr.push(nameCorrect(element.lawEnforcer2List[key]));
// }
// var obj = {
// "deptName": element.bureauDeptName,
// "deptId": element.bureauDeptId,
// "userList": arr
// }
// data.dataList.push(obj)
// }
// },error =>{
// })
// }
// 新版本管理的关联联合检查
if (null != submitData.enterpriseName) {
getUnionByHour(submitData.enterpriseNumber, 'edit', submitData.enforcementTime, submitData.unionNo);
}
console.log(data.dataList)
},error=>{})
}
const setAttr = () =>{
// 查询检查要求字典信息
getAttr(route?.query?.id, success => {
// 附件回显
submitData.fileList = [];
getAttr(route?.query?.id, (success) => {
if (success.data.filePreview != null) {
if(success.data.filePreview.fileList != null) {
for (var i=0; i<success.data.filePreview.fileList.length; i++) {
data.imgstr += success.data.filePreview.fileList[i] + ",";
}
data.imgstr = data.imgstr.substring(0, data.imgstr.length - 1);
}
data.imageList = success.data.filePreview.fileList;
success.data.filePreview.fileList;
for (const key in success.data.filePreview.fileList) {
console.log(success.data.filePreview.fileList[key]);
data.imageList[key] = success.data.filePreview.fileList[key];
submitData.fileList.push(success.data.filePreview.fileList[key]);
data.fileListObj.push(
{
'url': baseUrl + success.data.filePreview.fileList[key],
'file': {'name': success.data.filePreview[key]}
}
);
}
}
}, (error) => {console.log(error)});
}
const getUnionByHour = (enterpriseNumber, checkCss, enforcementTime, unionNo) => {
// data.union_datas =
queryUnionByHour(enterpriseNumber, checkCss, enforcementTime, unionNo, success => {
if(success.success) {
console.log('---G: ',success.data)
data.union_datas = success.data;
// 设置被选择
nextTick(() => { // 确保dom渲染完成
setUnionChecked(submitData.id);
});
}
},error=>{});
}, error => { console.log(error); })
}
const setUnionChecked = (id) => {
for (let index = 0; index < data.union_datas.length; index++) {
const rawObj = JSON.parse(JSON.stringify(data.union_datas[index]));
Object.keys(rawObj).forEach(key => {
if (key === id) {
check_radio(submitData.unionNo, index)
}
});
}
}
const dataFillIn = () => {
@ -801,11 +874,11 @@
tapBad();
}
submitData.fileList = [];
submitData.fileListObj = [];
data.fileListObj = [];
// showSuccessToast('保存成功');
console.log(success.data.fileList);
//图片回显
// submitData.fileListObj.push(
// data.fileListObj.push(
// {
// url: 'https://example.com/image.jpg', // 替换为你的图片地址
// status: 'done', // 图片状态,'uploading'、'done'或者'failed'
@ -818,6 +891,25 @@
})
}
const check_radio = (unio_no, index) => {
console.log('---> : ', radio_fales.value)
for(var i=0; i<radio_fales.value.length; i++) {
radio_fales.value[i].querySelector('i').classList.remove("van-icon-checked")
radio_fales.value[i].querySelector('i').classList.add("van-icon-circle")
}
if (null == unio_no) {
data.allNo = "checked"
submitData.unionNo = null
} else {
const itag = radio_fales.value[index].querySelector('i')
itag.classList.remove("van-icon-circle")
itag.classList.add("van-icon-checked")
data.allNo = "circle"
submitData.unionNo = unio_no
}
}
const tmpSave = () => {
showSuccessToast('临时保存');
submitData.userId = useCommon.userId;
@ -831,18 +923,21 @@
data.overlayShow = true; // 遮罩层
submitData.userId = useCommon.userId;
submitData.isUnite = 0;
if (data.checked) { submitData.isUnite = 1; }
// if (data.checked) { submitData.isUnite = 1; } // 原来的联合检查, 忘记咋用了, 就没用了.
//联合检查
if (data.union_checked == 1) {submitData.hasUnion = 1;} else {submitData.unionNo = null;}
// 是否委托检查
if (data.auth_checked) {submitData.hasAuto = 1;}
// 处理回显附件
if (null != data.fileListObj) {
for (var k = 0; k < data.fileListObj.length; k++) {
var url = data.fileListObj[k].url;
if (null != url) {
submitData.fileList.push(url);
}
}
}
// if (null != data.fileListObj) {
// for (var k = 0; k < data.fileListObj.length; k++) {
// var url = data.fileListObj[k].url;
// console.log("-------------------------------------------->>>>>>", url)
// if (null != url) {
// submitData.fileList.push(url);
// }
// }
// }
// 执法依据
submitData.lawEnforcementBasis = "";
@ -896,6 +991,11 @@
submitData.isSubmit = type;
submitData.userId = useCommon.userId;
//联合检查
if (data.union_checked == 1) {submitData.hasUnion = 1;} else {submitData.unionNo = null;}
// 是否委托检查
if (data.auth_checked) {submitData.hasAuto = 1;}
// 执法依据
submitData.lawEnforcementBasis = "";
submitData.lawEnforcementBasisText = "";
@ -916,6 +1016,16 @@
submitData.lawEnforcerIdTwo = submitData.lawEnforcerIdTwo.substring(0, submitData.lawEnforcerIdTwo.length - 1);
submitData.lawEnforcerTwo = submitData.lawEnforcerTwo.substring(0, submitData.lawEnforcerTwo.length - 1);
// 处理回显附件
// if (null != data.fileListObj) {
// for (var k = 0; k < data.fileListObj.length; k++) {
// var url = data.fileListObj[k].url;
// if (null != url) {
// submitData.fileList.push(url);
// }
// }
// }
form.value.validate().then(() => {
editEnforcementRegistration(submitData, success => {
//跳转首页
@ -1285,6 +1395,34 @@
line-height: 1.25;
}
.dept-inspect {
margin: 2% 0;
padding: 0 2%;
width: calc(100% - 1rem);
background: #f3f4f5;
color: #666;
}
.dept-inspect p {
margin: 3% 0;
padding: 0;
}
.item-inspect {
display: flex;
justify-content: space-between;
}
.item-inspect > i {
margin: 5% 2% 0 0;
color: #dfdddd;
font-size: 0.5rem;
}
.item-inspect > i.van-icon-checked {
color: #1367fe;
}
/deep/ .mult-line .van-field__label {
padding-right: 0.3rem;
width: 2.3rem;

2
src/views/enterprise/registrationList.vue

@ -102,7 +102,7 @@
<label class="card_box_label">执法人员:</label>
<div>
<div>{{ nameCorrect(item.lawEnforcer) }}</div>
<div v-for="(item, index) in item.lawEnforcer2List">{{ nameCorrect(item)}}</div>
<div v-for="(item, index) in item.lawEnforcer2List" :key="index">{{ nameCorrect(item)}}</div>
</div>
</p>
</div>

549
src/views/enterprise/systemNotice.vue

@ -0,0 +1,549 @@
<template>
<div class="home app_content">
<!-- 导航栏 -->
<!-- <div class="header_body">
<header-nav
:leftArrow="false"
:titelText="`通知公告`"
>
</header-nav>
<header-nav :slefBack="true" @goBack="goBack" :titelText="`通知公告`"></header-nav>
</div>-->
<van-search
v-model="searchParam.noticeTitle"
show-action
placeholder="请输入通知名称"
clearable="true"
clear-icon="clear"
clear-trigger="always"
@search="onSearch"
>
<template #action>
<div @click="onClickButton">搜索</div>
</template>
</van-search>
<!-- 中间 -->
<div class="shop-center">
<van-pull-refresh v-model="data.refreshing" @refresh="onRefresh">
<van-list v-model:loading="data.loading" :finished="data.finished" finished-text="没有更多了" @load="onLoad">
<div class="goods_box" v-for="(item, index) in data.dataList" :key="index">
<div class="notice-item" @click="toDetailView(item.noticeId)"><i></i>
<div class="item-cont">
<span class="item-title">{{ item.noticeTitle }}</span>
<!-- <span class="item-time"> {{ item.enforcementDepartment }} - {{ item.createTime }}</span>-->
<!-- <div class="item-time" style="display: flex; justify-content: space-between;">
<span>{{ item.bureauDeptName }}</span>
<span>{{ item.createTime }}</span>
</div>-->
<div class="item-text">
<p><label class="card_box_label">发布部门:</label> <span>{{ item.bureauDeptNames }}</span>
</p>
</div>
<!-- <div class="item-text">
<p><label class="card_box_label">发布对象:</label> <span>
{{ item.objectType==1?"监督端": item.objectType==2?"执法端":
item.objectType==3?"企业端": "全部"}}
</span></p>
</div> -->
<div class="item-text">
<p><label class="card_box_label">发布时间:</label> <span>{{ item.createTime }}</span></p>
</div>
<!-- <div class="item-text">
<p><label class="card_box_label">附&nbsp; &nbsp; &nbsp; &nbsp;件:</label> <span> <a @click="toPdfView(null==item.fileObject?'':item.fileObject.fileUrl)">{{ null==item.fileObject?'':item.fileObject.fileName }}</a></span></p>
</div> -->
</div>
</div>
</div>
</van-list>
</van-pull-refresh>
</div>
<!-- 底部 -->
<div class="shop_footer_body">
<footer-nav></footer-nav>
</div>
</div>
</template>
<script setup name="enforcementInspectionProgram">
import {queryEnforceSystemNotice} from "@/api/enforce";
const {useCommon} = $globalStore;
const router = useRouter();
let allchecked = ref(false); // 是否全选
let refreshLoad = ref(false); // 是否加载中
let searchParam = reactive({
// 分页
pageNum: 1,
pageSize: 6,
//搜索框
noticeTitle: ref(''),
//日期查询
searchDate: ref(''),
//是否发布 1 是
isPublish: 1,
// 发布对象(企业)
objectType: 3,
searchType:"notice"
});
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'],
loading: false,
finished: false,
refreshing: false,
curPage: 1,
total: 0,
});
/**
* 查看通知详情
* @param {} id
* @param {*} name
*/
const toDetailView = (id) => {
router.push(
{
path: "/enterprise/systemNoticeDetail",
query: {
id: id,
}
});
}
// 设置初始值为当前时间
onMounted(() => {
console.log(useCommon.enterpriseNumber);
// getCard();
searchParam.enterpriseNumber = useCommon.enterpriseNumber;
console.log(useCommon.enterpriseNumber)
// queryList();
data.dateSearch = nowDate(new Date());
});
const queryList = () => {
searchParam.pageNum = (data.curPage-1)*searchParam.pageSize;
queryEnforceSystemNotice(searchParam, success => {
//debugger
data.curPage++;
data.loading = false;
if (success.total <= data.dataList.length) {
// 查到最后没数据
data.finished = ref(true);
return;
}
for (let index = 0; index < success.rows.length; index++) {
const element = success.rows[index];
console.log(element);
// element.planName = element.planYear + element.planName;
if(element.timeType == 'quarter'){
let val = "";
if(element.quarter == "1") val = "一季度";
if(element.quarter == "2") val = "二季度";
if(element.quarter == "3") val = "三季度";
if(element.quarter == "4") val = "四季度";
element.planName = element.planYear + "年" + val + element.planName;
}else if (element.timeType == 'mouth') {
const val = element.mouth + "月";
element.planName = element.planYear + "年" + val + element.planName;
}
element.planName = element.bureauDeptName + element.planName;
}
// data.dataList = success.data;
data.dataList.push(...success.rows);
freshMap.refreshLoad = false;
freshMap.listLoading = false;
freshMap.listFinished = true;
isLodding.value = false;
}, error => {
})
}
const onSearch = (val) => {
// queryEnforcementInspectionProgramListNoPermission(searchParam
// , success => {
// console.log(success)
// data.dataList = success.data;
// }, error => {
// })
data.dataList = [];
queryList();
};
const onClickButton = () => {
data.curPage = 1;
data.dataList = [];
onRefresh();
}
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 = () => {
data.curPage = 1;
// 清空列表数据
data.dataList = [];
data.finished = false;
// 重新加载数据
// 将 loading 设置为 true,表示处于加载状态
data.loading = true;
onLoad();
};
// 触底加载
const onLoad = () => {
setTimeout(() => {
if (data.refreshing) {
data.refreshing = false;
}
queryList();
}, 1000);
};
//获取分类下的商品列表
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;
};
onMounted(async () => {
// let res = await getClassify();
// if (res && res?.length) {
// classifyId = res?.[0]?.id;
// classifyId && getGoodslist();
// } else {
// isLodding.value = false;
// }
// queryList();
});
const selectDate = () => {
data.showDatePicker = true;
console.log(data.showDatePicker)
}
const onDateConfirm = (value) => {
console.log(value);
value.selectedValues.forEach((item, index) => {
console.log(item);
});
data.dateSearch = value.selectedValues[0] + "/" + value.selectedValues[1]
data.showDatePicker = false;
searchParam.dateSearch = value.selectedValues[0] + "-" + value.selectedValues[1];
data.curPage = 1;
data.dataList = [];
onRefresh();
}
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.dateType = val;
searchParam.isComplaint = null;
data.curPage = 1;
data.dataList = [];
onRefresh();
}
const searchComplaint = (val) => {
searchParam.isComplaint = val;
searchParam.dateType = null;
data.curPage = 1;
data.dataList = [];
onRefresh();
}
const toPdfView = (url) => {
console.log(url)
router.push(
{
path: "/pdfView",
query: {
url: url
}
});
}
</script>
<style lang="less" scoped>
.home {
height: 100%;
display: flex;
flex-direction: column;
overflow: hidden;
background-color: #ebf3fb;
.header_body {
height: 1.33rem;
}
.shop-center {
flex: 1;
overflow-y: scroll;
position: relative;
.goods_box {
display: flex;
background-color: #fff;
margin: 0.27rem;
border-radius: 0.27rem;
.swipe_cell {
width: 100%;
}
.card_box {
display: flex;
width: 100%;
padding: 0.27rem 0;
flex-direction: column;
.card_body {
background-color: #fff;
border-radius: 0.27rem;
flex: 1;
}
.card_box_span {
display: flex;
align-items: center;
margin: 2% 0;
padding: 0 3%;
color: #666;
font-size: 0.35rem;
line-height: 1.5;
p {
display: flex;
margin: 0;
}
}
.card_box_action {
position: absolute;
right: 4%;
}
}
}
}
.shop_footer_body {
//height: 101px;
position: relative;
.footer-one-btn {
height: 1.33rem;
bottom: 1.34rem;
}
}
}
.search-button-list {
height: 0.7rem;
display: flex;
flex-direction: row;
padding-left: 0.27rem;
margin-top: 0.27rem;
align-items: end;
.search-button {
width: 15%;
height: 90%;
background: #ebebeb;
border-color: #ebebeb;
color: #999;
font-size: 0.3rem;
line-height: 1.5;
}
.search-button.active {
background-color: #d9e6fd;
border-color: #75a5fb;
color: #1367fe;
}
}
.search-button-date {
display: flex;
flex-direction: row;
align-items: end;
position: relative;
.date-select {
margin: 3% 0 0 4%;
color: #c1bfbf;
font-size: 0.52rem;
i {
transform: rotate(90deg);
font-size: 0.4rem;
}
}
.search-button {
width: 15%;
height: 80%;
position: absolute;
top: 1%;
right: 1%;
}
}
.noticebox {
position: absolute;
top: 0;
width: 100%;
height: 100%;
background-color: #fff;
border-radius: 0.2rem;
}
.notice-item {
display: flex;
position: relative;
margin: 1% 0;
padding: 1% 1% 3% 0;
width: 98%;
align-items: flex-start;
/*border-bottom: 1px solid #f3f4f5;*/
}
.notice-item > i {
display: inline-block;
margin: 0.5% 0 0 0.2rem;
width: 1.2rem;
height: 1.2rem;
background: url("../../assets/images/icon_notice2.png") no-repeat left top 50%;
background-size: auto 80%;
}
.item-cont {
display: inline-block;
margin: 3% 0 0 0;
width: calc(100% - 1.4rem);
}
.item-time {
float: left;
margin: 2% 0;
width: 100%;
color: #c1bfbf;
font-size: 0.3rem;
//height: 0.75rem;
//line-height: 1rem;
}
.item-title, .item-text {
float: left;
margin: 0;
width: 100%;
font-size: 0.40rem;
font-weight: 600;
line-height: 1.5;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.item-text {
width: 100%;
color: #666;
font-size: 0.35rem;
font-weight: normal;
}
.item-text a {
color: #2b75fd;
}
.item-text p {
display: flex;
margin: 0;
padding: 0.1rem 0;
line-height: 1.25;
}
.item-text label {
color: #323233;
}
.item-text p span {
white-space: break-spaces;
}
/deep/ .van-search__content {
height: 0.9rem;
border: 1px solid #ececec;
border-radius: 0.15rem 0 0 0.15rem;
}
/deep/ .van-search__action {
margin: 0 3% 0 0;
width: 10%;
height: 0.9rem;
background: #1367fe;
border: 1px solid #1367fe;
border-radius: 0 0.15rem 0.15rem 0;
color: #fff;
text-align: center;
line-height: 0.9rem;
}
</style>

859
src/views/enterprise/systemNoticeDetail.vue

@ -0,0 +1,859 @@
<template>
<div class="address_edit">
<div class="warp_body">
<div style="background-color: white; border-radius: 5%;" v-html="data.noticeContent"></div>
<!-- <van-divider class="divdsty"/> -->
<div class="file-upload">
<div class="file-upload-center">
<label>附&nbsp; &nbsp; &nbsp; &nbsp;件</label>
</div>
<div class="zoom">
<img
v-for="(ite, index) in data.images"
class="img"
:src="ite"
alt="预览图片"
@click="imagePreview(index)"
:key="index"
/>
<van-image-preview
v-model:show="data.show"
:images="data.imageList"
@change="onChange"
ref="imagePre"
>
<template v-slot:index>第{{ indexImg + 1 }}页</template>
</van-image-preview>
</div>
</div>
</div>
</div>
</template>
<script setup name="register">
import {showSuccessToast, showImagePreview} from "vant";
import {
queryEnforcementRegistrationById,
getAttr, queryEnforceSystemNoticeDetail,
} from "@/api/enforce";
import {reactive, ref, nextTick} from "vue";
import {uploadFile} from "@/util/fileUpload";
import {queryLinkageById} from "@/api/linkage";
import {baseUrl} from "@/config/env";
//用户筛选弹窗
// import Popup from './userFilter.vue';
const {useMy} = $globalStore;
const router = useRouter();
//路由参数
const route = useRoute();
const data = reactive({
showLawEnforcerFlag: false,
currentPage: 1,
good: "#7FFFD4",
bad: "#D3D3D3",
popupVisible: false,
popupContent: "",
popupVisible2: false,
popupContent2: "",
imgstr: "",
lawList: [{text: "", id: ""}],
lawCer: [{text: "", id: ""}],
imageList: [],
show: ref(false),
show2: ref(false),
dataList: [],
evaluateImageList: [],
regList: [],
lawList: [],
arrayLength: 1,
noticeTitle: "",
noticeContent: "",
bureauDeptNames: "",
objectType: "",
createTime: "",
images: "",
});
//保存参数
const submitData = reactive({
//执法部门
lawEnforcement: "",
lawEnforcementId: "",
//执法人员1
lawEnforcer: "",
lawEnforcerId: "",
//执法人员2
lawEnforcerTwo: "",
lawEnforcerIdTwo: "",
//辅助人员
subsidiaryer: "",
subsidiaryerId: "",
//执法事项
lawEnforcementItem: "",
enforce: "",
//执法依据
lawEnforcementBasis: "",
// 检查时间
enforcementTime: "",
//执法结果
reslut: 0,
//备注
remark: "",
//企业名称
enterpriseName: "",
//统一信用码
enterpriseNumber: "",
//后台保存图片列表
fileList: [],
//vant组件上传照片列表
fileListObj: [],
/**局级部门 */
bureauDeptName: "",
bureauDeptId: "",
isEvaluate: 0,
lawFieldText: "",
checkCategoryText: "",
uniteCheck: "",
satisfactionLevel: 3,
serviceExperience: 0,
checkEffect: 0,
proceduralLegality: 0,
checkEffectiveness: 0,
otherProblemSwitch: 0,
otherProblemSwitchBoolean: true,
problem1: 0,
problem2: 0,
problem3: 0,
problem4: 0,
problem5: 0,
});
const tapGood = () => {
data.good = "#7FFFD4";
data.bad = "#D3D3D3";
submitData.reslut = 0;
};
const tapBad = () => {
data.good = "#D3D3D3";
data.bad = "#7FFFD4";
submitData.reslut = 1;
};
const indexImg = ref(0);
const indexImg2 = ref(0);
const imagePreview = (newIndex) => {
var imgstrArr = data.imgstr.split(",");
nextTick(() => {
// console.log(this.$refs.testRef)
// this.$refs.imagePre.change(newIndex)
// const imagePre = ref("imagePre");
// imagePre.change(newIndex);
});
data.show = ref(true);
};
const imagePreview2 = (newIndex) => {
var imgstrArr = data.imgstr.split(",");
nextTick(() => {
// console.log(this.$refs.testRef)
// this.$refs.imagePre.change(newIndex)
// const imagePre = ref("imagePre");
// imagePre.change(newIndex);
});
data.show2 = ref(true);
};
const setLinkageItem = (id) => {
queryLinkageById(
{id: id},
(success) => {
submitData.lawEnforcementItem = success.title;
},
(error) => {
}
);
};
const setLinkageGA = (id) => {
queryLinkageById(
{id: id},
(success) => {
submitData.lawEnforcementBasis = success.title;
},
(error) => {
}
);
};
const setAttr = () => {
// 查询检查要求字典信息
getAttr(
route?.query?.id,
(success) => {
if (success.data.filePreview != null) {
if (success.data.filePreview.fileList != null) {
for (var i = 0; i < success.data.filePreview.fileList.length; i++) {
data.imgstr += success.data.filePreview.fileList[i] + ",";
}
data.imgstr = data.imgstr.substring(0, data.imgstr.length - 1);
}
data.imageList = success.data.filePreview.fileList;
success.data.filePreview.fileList;
for (const key in success.data.filePreview.fileList) {
console.log(success.data.filePreview.fileList[key]);
data.imageList[key] = success.data.filePreview.fileList[key];
}
}
},
(error) => {
}
);
};
const setEvaluateFile = (id) => {
// 查询检查要求字典信息
getAttr(
id,
(success) => {
if (success.data.filePreview != null) {
if (success.data.filePreview.fileList != null) {
for (var i = 0; i < success.data.filePreview.fileList.length; i++) {
data.imgstr += success.data.filePreview.fileList[i] + ",";
}
data.imgstr = data.imgstr.substring(0, data.imgstr.length - 1);
}
data.evaluateImageList = success.data.filePreview.fileList;
success.data.filePreview.fileList;
for (const key in success.data.filePreview.fileList) {
console.log(success.data.filePreview.fileList[key]);
data.evaluateImageList[key] =
baseUrl + success.data.filePreview.fileList[key];
}
}
},
(error) => {
}
);
};
const onChange = (newIndex) => {
indexImg.value = newIndex;
};
const onChange2 = (newIndex) => {
indexImg2.value = newIndex;
};
//3a0096181c184e5aa56f70923680856d$6e74ceda1463c165fd43eeeadce4f7cd
//初始化参数,获取扫码的企业统一信用编码
onMounted(() => {
queryRegUniteById();
});
const showArrays = (item) => {
if (item.downShow) {
item.downShow = false;
data.arrayLength = data.regList.length;
} else {
data.regList[0].downShow = true;
data.arrayLength = 1;
}
};
const queryRegUniteById = () => {
queryEnforceSystemNoticeDetail(
route?.query?.id,
(success) => {
convertReg(success.data)
},
(error) => {
}
);
};
const convertReg = (regs) => {
data.id = regs.noticeId;
data.noticeTitle = regs.noticeTitle;
data.noticeContent = regs.noticeContent;
data.bureauDeptNames = regs.bureauDeptNames;
data.createTime = regs.createTime;
if (regs.objectType != null) {
if (regs.objectType == 1) {
data.objectType = "监督端";
} else if (regs.objectType == 2) {
data.objectType = "执法端";
} else if (regs.objectType == 3) {
data.objectType = "企业端";
} else {
data.objectType = "全部";
}
}
// 附件
getAttr(
data.id,
(success) => {
if (success.data.filePreview != null) {
let images = [];
for (const key in success.data.filePreview.fileList) {
images[key] = baseUrl + success.data.filePreview.fileList[key];
data.imageList.push(
baseUrl + success.data.filePreview.fileList[key]
);
}
data.images = images;
}
console.log(data.imageList);
},
(error) => {
}
);
}
// 返回
const goBack = () => {
router.go(-1);
};
const uploadFiles = (file) => {
uploadFile(file, (res) => {
console.log(res);
submitData.fileList.push(res.url);
console.log(submitData.fileList);
});
};
const deleteFile = (file, index) => {
console.log(index);
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;
};
const submit = () => {
addEnforcementRegistration(
submitData,
(success) => {
//跳转首页
if (success.success) {
showSuccessToast("登记成功");
router.push({path: "/home"});
}
},
(error) => {
console.log("登记失败");
}
);
};
const showPopup = () => {
data.popupVisible = true;
};
const showPopup2 = () => {
data.popupVisible2 = true;
};
const closePopup = () => {
data.popupVisible = false;
data.popupVisible2 = false;
};
const reciveData = (item) => {
submitData.lawEnforcerTwo = item.userName;
submitData.lawEnforcerIdTwo = item.userId;
};
const reciveData2 = (item) => {
submitData.subsidiaryer = item.userName;
submitData.subsidiaryerId = item.userId;
};
</script>
<script>
export default {
data() {
return {
is_show: false,
};
},
computed: {
words() {
if (this.is_show === false) return "展开";
else if (this.is_show === true) return "收起";
else if (this.is_show === "") return null;
else return null;
},
},
};
</script>
<style lang="less" scoped>
.address_edit {
display: flex;
flex-direction: column;
height: 100%;
overflow: hidden;
background-color: #ebf3fb;
}
.warp_body {
margin: 3%;
padding-bottom: 3rem;
width: 94%;
height: 100%;
//border-radius: 0.25rem;
background-image: linear-gradient(to bottom, #ebf3fb, #fff);
overflow-y: auto;
}
.qy-name {
margin: 0 0.27rem;
font-size: 0.42rem;
height: 1.2rem;
background-color: white;
font-weight: 600;
line-height: 3.5;
}
.zf-name {
padding: 0 0.27rem;
font-size: 0.42rem;
height: 1.2rem;
background-color: white;
font-weight: 600;
line-height: 3.5;
}
/* vant4的 Toast 和 Popup 样式冲突,会导致 Toast 变成白底 */
.van-popup.van-toast {
background: var(--van-toast-background) !important;
box-sizing: content-box !important;
/* 下面3条css,影响不大 */
transition: all var(--van-duration-fast) !important;
width: var(--van-toast-default-width) !important;
max-width: var(--van-toast-max-width) !important;
}
.van-popup.van-toast .van-toast__icon {
font-size: var(--van-toast-icon-size) !important;
}
.divdsty {
margin: auto;
width: 100%;
height: 0.25rem;
background-color: #f4f4f4;
border: 0;
}
.file-upload {
position: relative;
min-height: 3rem;
// max-height: 6.5rem;
padding: 1rem 0.27rem 0.27rem 0.43rem;
box-sizing: border-box;
border-top: 5px solid #f4f4f4;
}
.file-upload-center {
position: absolute;
top: 0.27rem;
left: 0.43rem;
width: 90%;
height: 0.65rem;
font-size: 0.37rem;
span {
font-size: 0.32rem;
color: rgb(221, 229, 227);
}
}
.file {
position: relative;
width: 100%;
height: calc(100% - 1.5rem);
}
/deep/ .van-uploader__upload,
/deep/ .van-uploader__preview-image {
width: 1.95rem !important;
}
.preview-cover {
position: absolute;
bottom: 0;
box-sizing: border-box;
width: 100%;
padding: 4px;
color: #fff;
font-size: 0.32rem;
text-align: center;
background: rgba(0, 0, 0, 0.3);
}
.zoom {
/*margin-top: 0.65rem;
padding-top: 0.27rem;
padding-left: 0.27rem;*/
img {
width: 1.95rem;
height: 2rem;
// margin: 0 0.21rem 0.21rem 0;
margin: 0 0.6rem 0.21rem 0;
font-size: 0.35rem;
}
}
/deep/ .van-picker-column__item--selected {
background: #e5eef9;
color: #000;
font-weight: 600;
}
/deep/ .van-field .van-field__control {
color: #666;
}
/deep/ .van-field__label--required:before {
margin-left: -0.2rem;
}
/deep/ .mult-line .van-field__label {
padding-right: 0.5rem;
line-height: 1.25;
}
.complaint-cont {
margin: -1px 0.43rem 2%;
padding: 0 0 0.5rem;
width: calc(100% - 0.86rem);
border-radius: 0.15rem;
box-sizing: border-box;
line-height: 1.5;
font-size: 0.37rem;
}
/deep/ .complaint-cont textarea.van-field__control {
padding: 0.1rem 0.2rem;
background: #f5f6f7;
border-radius: 0.15rem;
line-height: 1.25;
}
.fold-div {
position: relative;
display: flex;
padding: 0 0.43rem 0.13rem;
width: 100%;
box-sizing: border-box;
color: rgb(50, 50, 51);
font-size: 0.37rem;
}
.fold-div::after {
position: absolute;
left: 0.43rem;
bottom: 0;
width: calc(100% - 0.86rem);
border-bottom: 1px solid #f5f6f7;
content: "";
}
.fold-div label {
width: 2.6rem;
padding: 0.27rem 0px 0.27rem 0;
}
.fold-div .van-text-ellipsis {
padding: 0.27rem 0;
width: calc(100% - 2.6rem);
color: #666;
}
.one-label {
position: relative;
padding-bottom: 0.25rem;
}
.one-label::after {
position: absolute;
left: 0.43rem;
bottom: 0;
width: calc(100% - 0.86rem);
border-bottom: 1px solid #ebedf0;
content: "";
transform: scaleY(0.5);
}
.one-label .van-cell {
padding-bottom: 0;
}
.one-label .no-label {
margin-top: -1px;
padding-top: 0;
padding-bottom: 0;
}
.joint-mark {
position: relative;
top: -0.05rem;
display: inline-block;
margin: 0 0.25rem;
width: 0.55rem;
height: 0.55rem;
background: #2d94fa;
border-radius: 50%;
color: #fff;
font-size: 0.35rem;
line-height: 1.65;
text-align: center;
}
/***折叠**/
.look_all {
display: flex;
align-items: center;
justify-content: center;
width: 100%;
height: 0.75rem;
font-size: 0.3rem;
color: #666;
cursor: pointer;
user-select: none;
border-radius: 0.05rem;
background-color: #fff;
}
.look_all i {
margin: 0 0.2rem;
padding: 0.1rem 0.3rem 0;
color: rgba(0, 0, 0, 0.35);
font-size: 0.4rem;
height: 0.5rem;
/*background: linear-gradient(to bottom, rgba(0, 0, 0, .1), transparent);*/
border-radius: 0.2rem 0.2rem 0 0;
}
.new_detail {
padding-top: 0.3rem;
height: 100%;
transition: height 2s linear;
}
.work_detail {
padding-top: 0.3rem;
height: 0.2rem;
overflow: hidden;
}
.new_up {
position: absolute;
bottom: 0;
}
/***/
/*.eval-star {
margin: 0 0.7rem 0 0.2rem;
}
.eval-star i {
margin: 0 0.3rem;
color: #ddd;
font-size: 0.5rem;
}
.eval-star i.active {
color: #fbb516;
}
.eval-star-font{
font-weight: bold;
font-size: 0.4rem;
}*/
.eval-list {
display: flex;
justify-content: space-between;
margin: 3%;
}
.eval-list > div {
width: 30%;
text-align: center;
}
.eval-list > div > label {
margin: 0.2rem 0;
color: #999;
// font-size: 0.35rem;
}
.eval-list > div.active > label {
color: #323233;
font-weight: 600;
}
.eval-list > div > span {
display: block;
margin: 0.5rem auto 0.2rem;
width: 0.8rem;
height: 1rem;
}
.eval-list > div#evalBad > span {
background: url("../../assets/images/eval-bad-dis.png") no-repeat;
background-size: 100%;
opacity: 0.5;
}
.eval-list > div#evalGood > span {
background: url("../../assets/images/eval-good-dis.png") no-repeat;
background-size: 100%;
opacity: 0.5;
}
.eval-list > div#evalVeryGood > span {
background: url("../../assets/images/eval-verygood-dis.png") no-repeat;
background-size: 100%;
opacity: 0.5;
}
.eval-list > div#evalBad.active > span {
background: url("../../assets/images/eval-bad.png") no-repeat;
background-size: 100%;
opacity: 1;
}
.eval-list > div#evalGood.active > span {
background: url("../../assets/images/eval-good.png") no-repeat;
background-size: 100%;
opacity: 1;
}
.eval-list > div#evalVeryGood.active > span {
background: url("../../assets/images/eval-verygood.png") no-repeat;
background-size: 100%;
opacity: 1;
}
.van-hairline--top-bottom:after,
.van-hairline-unset--top-bottom:after {
border: 0;
}
.evaluateText {
font-size: 0.42rem;
}
.cardsty {
margin: 3% 0;
width: 100%;
padding: 5%;
background: #fff;
border-radius: 0.2rem;
font-size: 0.37rem;
box-sizing: border-box;
}
.cardsty label {
margin-right: 0.4rem;
color: #323233;
}
.eval-star {
margin: 0 0.7rem 0 0.2rem;
}
.eval-item {
display: flex;
align-items: center;
margin: 0.27rem 0;
font-weight: 800;
}
.otherProBlem {
margin: 3% 0;
width: 100%;
background: #fff;
border-radius: 0.2rem;
box-sizing: border-box;
}
// .otherProBlem span{
// font-size: 0.37rem;
// }
.otherProBlemItem {
padding: 7px;
line-height: 30px;
}
.otherProBlemText {
font-size: 16px;
margin-right: 10px;
}
.otherProBlemItemIconList {
padding-right: 15px;
display: flex;
float: right;
}
.otherProBlemItemIcon {
display: flex;
padding: 3px;
}
.onbad {
background: url("../../assets/images/onbad.png") no-repeat;
background-size: 100%;
height: 20px;
width: 20px;
opacity: 1;
}
.ongood {
background: url("../../assets/images/ongood.png") no-repeat;
background-size: 100%;
height: 20px;
width: 20px;
opacity: 1;
}
.bad {
background: url("../../assets/images/bad.png") no-repeat;
background-size: 100%;
height: 20px;
width: 20px;
opacity: 1;
}
.good {
background: url("../../assets/images/good.png") no-repeat;
background-size: 100%;
height: 20px;
width: 20px;
opacity: 1;
}
</style>

4
src/views/login.vue

@ -45,9 +45,9 @@
testLogin({"secretName": loginParam.secretName, "secretKey": values.secretKey}, success => {
if (success.success) {
//企业端
router.push({ name: "Home" });
// router.push({ name: "Home" });
//执法端
// router.push({name: "enforceHome"});
router.push({name: "enforceHome"});
//设置全局变量
useCommon.SET_USER_PHONENUMBER(success.data.phonenumber.toString());
useCommon.SET_USER_ID(success.data.userId);

Loading…
Cancel
Save