Browse Source

修改不扫码弹窗,添加评价功能

v3
chenrui 2 years ago
parent
commit
8dde5215ac
  1. 2
      src/views/enforce/lawFilter.vue
  2. 2
      src/views/enforce/noScan.vue
  3. 182
      src/views/enforce/noScanFilter.vue
  4. 24
      src/views/enterprise/compaint/compaintDetailIndex.vue
  5. 114
      src/views/enterprise/compaint/compaintFlowView.vue
  6. 4
      src/views/enterprise/complaintList.vue
  7. 5
      src/views/enterprise/enterpriseInspectionDetail.vue
  8. 11
      src/views/enterprise/enterpriseInspectionList.vue

2
src/views/enforce/lawFilter.vue

@ -34,7 +34,7 @@
<script setup> <script setup>
import {ref,defineEmits,getCurrentInstance } from 'vue'; import {ref,defineEmits,getCurrentInstance } from 'vue';
import {queryEnforcementList} from '../../api/enterprise' import {queryEnforcementList} from '@/api/enterprise'
import { defineProps } from 'vue' import { defineProps } from 'vue'
const emits = defineEmits(['reciveData','close']); const emits = defineEmits(['reciveData','close']);
const props = defineProps({ const props = defineProps({

2
src/views/enforce/noScan.vue

@ -52,7 +52,7 @@
<script setup > <script setup >
import {queryEnterpriseInfoList} from '../../api/enterprise' import {queryEnterpriseInfoList} from '../../api/enterprise'
import {queryRegistrationList} from "../../api/enforce"; import {queryRegistrationList} from "../../api/enforce";
import {getDict} from "../../api/Home"; import {getDict} from "@/api/Home";
//路由参数 //路由参数
const router = useRouter(); const router = useRouter();

182
src/views/enforce/noScanFilter.vue

@ -14,12 +14,11 @@
<div class="item-box"> <div class="item-box">
<!-- <span :class="checkCss==1?'item-btn active':'item-btn'" <!-- <span :class="checkCss==1?'item-btn active':'item-btn'"
@click="checkReason('企业拒绝出示二维码', 1)">企业拒绝出示二维码</span>--> @click="checkReason('企业拒绝出示二维码', 1)">企业拒绝出示二维码</span>-->
<span :class="checkCss==2?'item-btn active':'item-btn'" <!-- <span :class="checkCss==2?'item-btn active':'item-btn'" v-for="(item,index) in dicts" :key="index" @click="checkReason('网络/设备故障', 2)">网络/设备故障</span> -->
@click="checkReason('网络/设备故障', 2)">网络/设备故障</span> <!-- <span :class="checkCss==3?'item-btn active':'item-btn'"
<span :class="checkCss==3?'item-btn active':'item-btn'"
@click="checkReason('其它', 3)">其它</span> @click="checkReason('其它', 3)">其它</span>
<span :class="checkCss==4?'item-btn active':'item-btn'" <span :class="checkCss==4?'item-btn active':'item-btn'"
@click="checkReason('补录', 3)">补录</span> @click="checkReason('补录', 3)">补录</span> -->
<span v-for="(item, index) in dicts" :key="index" :class="checkCss==item.dictValue?'item-btn active':'item-btn'" @click="checkReason(item.dictLabel, item.dictValue)">{{item.dictLabel}}</span> <span v-for="(item, index) in dicts" :key="index" :class="checkCss==item.dictValue?'item-btn active':'item-btn'" @click="checkReason(item.dictLabel, item.dictValue)">{{item.dictLabel}}</span>
</div> </div>
@ -38,10 +37,11 @@
<div class="search-result"> <div class="search-result">
<van-pull-refresh v-model="refreshing" @refresh="onRefresh"> <van-pull-refresh v-model="refreshing" @refresh="onRefresh">
<van-list v-model:loading="loading" :finished="finished" finished-text="没有更多了" @load="onLoad"> <van-list v-model:loading="loading" :finished="finished" finished-text="没有更多了" @load="onLoad">
<div class="case-item" v-for="(item, index) in dataList" :key="index" @click="selectData(item)"> <div class="case-item" v-for="(item, index) in dataList" :key="index" @click="toDetail(item)">
<div class="case-title">{{ item.enterpriseName }}</div> <div class="case-title">{{ item.enterpriseName }}</div>
<!-- <div class="case-depart">{{ item.phonenumber }}</div> <!-- <div class="case-depart">{{ item.phonenumber }}</div>
<div class="case-time">{{ item.loginName }}</div> --> <div class="case-time">{{ item.loginName }}</div> -->
</div> </div>
</van-list> </van-list>
</van-pull-refresh> </van-pull-refresh>
@ -50,14 +50,17 @@
</div> </div>
</template> </template>
<script> <script setup>
import {ref} from 'vue' import {ref,defineEmits,getCurrentInstance,defineProps } from 'vue';
// import {queryUsers} from '../../api/user' // import {queryUsers} from '../../api/user'
import {queryEnterpriseInfoList} from '../../api/enterprise' import {queryEnterpriseInfoList} from '@/api/enterprise'
import {getDict} from "@/api/Home";
const {useCommon} = $globalStore const {useCommon} = $globalStore;
export default { //子组件调用父组件方法
props: { const emits = defineEmits(['reciveData','close']);
//路由参数
const router = useRouter();
const props = defineProps( {
visible: { visible: {
type: Boolean, type: Boolean,
default: false default: false
@ -66,95 +69,112 @@ export default {
type: String, type: String,
default: '' default: ''
}, },
}, })
data() {
return { const searchParam = reactive( {
searchParam: { //搜索框
//搜索框 enterpriseName: '',
enterpriseName: '', // 分页
// 分页 pageNum: 1,
pageNum: 1, pageSize: 6,
pageSize: 6, })
}, const dataList = [];
dataList: [], const loading = ref(false);
loading: false, const finished = ref(false);
finished: false, const refreshing = ref(false);
refreshing: false, const curPage = ref(false);
curPage: 1, const dicts = ref([]);
} const reason = ref("");
}, const checkCss = ref(0);
created() { // watch: {
}, // 'searchParam.enterpriseName': {
watch: { // handler: function (newValue, oldValue) {
'searchParam.enterpriseName': { // // 当person对象的age属性变化时,这个函数会被调用
handler: function (newValue, oldValue) { // console.log(`age changed from ${oldValue} to ${newValue}`);
// 当person对象的age属性变化时,这个函数会被调用 // if (newValue.length > 0) {
console.log(`age changed from ${oldValue} to ${newValue}`); // // this.queryList();
if (newValue.length > 0) { // } else {
// this.queryList(); // this.dataList = [];
} else { // }
this.dataList = []; // },
} // }
}, // },
onMounted(() =>{
getDict({"dictType":"no-scan-reason"}, success => {
if (success.success) {
dicts.value.push(...success.data);
}
});
})
const closePopup = () =>{
emits('close');
} }
}, const queryList = () =>{
methods: { searchParam.pageNum = (curPage.value-1)*searchParam.pageSize;
closePopup() { queryEnterpriseInfoList(searchParam, success => {
this.$emit('close'); curPage.value++;
}, loading.value = false; // 查出结果停止加载
queryList() { if (success.total <= dataList.length) {
this.searchParam.pageNum = (this.curPage-1)*this.searchParam.pageSize;
queryEnterpriseInfoList(this.searchParam, success => {
this.curPage++;
this.loading = false; // 查出结果停止加载
if (success.total <= this.dataList.length) {
// 查到最后没数据 // 查到最后没数据
this.finished = true; finished.value = true;
return; return;
} }
// this.dataList = success.data // this.dataList = success.data
this.dataList.push(...success.rows); dataList.push(...success.rows);
}, error => { }, error => {
}) })
}, }
search() { const search = () =>{
this.curPage = 1; curPage.value = 1;
this.dataList = []; dataList = [];
this.onRefresh(); onRefresh();
}, }
cancel() { const cancel = () =>{
this.searchParam.enterpriseName = ''; this.searchParam.enterpriseName = '';
this.search() this.search()
}, }
selectData(item) { const selectData = (item) =>{
this.$emit("reciveData", item); emits("reciveData", item);
this.$emit('close'); emits('close');
}, }
//下拉刷新 //下拉刷新
onRefresh() { const onRefresh = () =>{
// 清空列表数据 // 清空列表数据
this.enterpriseList = []; enterpriseList = [];
this.finished = false; finished.value = false;
// 重新加载数据 // 重新加载数据
// 将 loading 设置为 true,表示处于加载状态 // 将 loading 设置为 true,表示处于加载状态
this.loading = true; loading.value = true;
this.onLoad(); onLoad();
}, }
// 触底加载 // 触底加载
onLoad() { const onLoad = () =>{
let that = this;
setTimeout(() => { setTimeout(() => {
if (that.refreshing) { if (refreshing.value) {
that.refreshing = false; refreshing.value = false;
} }
that.queryList(); queryList();
}, 1000); }, 1000);
}, }
} const checkReason = (val, key) =>{
reason.value = val;
checkCss.value = key;
}
const toDetail = (item) =>{
router.push({
// path: "/sign",
path: "/enterpriseScanPreview",
query: {
reason: reason.value,
checkCss: checkCss.value,
enterpriseNumber: item.salt,
isNoScan: true,
}
});
}
}
</script> </script>
<style scoped> <style scoped>

24
src/views/enterprise/compaint/compaintDetailIndex.vue

@ -24,11 +24,11 @@
<van-tabs v-model:active="active" sticky @click-tab="onClickTab"> <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" :title="item.title">
<!-- 处置流程页面 --> <!-- 处置流程页面 -->
<div v-if="data.TabId == 0" style="height: calc(100vh - 1.5rem);"> <div v-if="indexTab == 0" style="height: calc(100vh - 1.5rem);">
<compaintFlowView isReg="0" :id="data.id" /> <compaintFlowView isReg="0" :id="data.id" :data="responData" />
</div> </div>
<!-- 处置详情页面 --> <!-- 处置详情页面 -->
<div v-if="data.TabId == 1" style="height: calc(100vh - 1.5rem);"> <div v-if="indexTab == 1" style="height: calc(100vh - 1.5rem);">
<complaintDetailView isReg="0" :id="data.id" /> <complaintDetailView isReg="0" :id="data.id" />
</div> </div>
@ -44,16 +44,17 @@
<script setup name="complaintBase"> <script setup name="complaintBase">
import compaintFlowView from '@/views/enterprise/compaint/compaintFlowView.vue'; import compaintFlowView from '@/views/enterprise/compaint/compaintFlowView.vue';
import complaintDetailView from '@/views/enterprise/complaintDetailView.vue'; import complaintDetailView from '@/views/enterprise/complaintDetailView.vue';
import {complaintInfoById} from '@/api/enterprise';
const {useCommon} = $globalStore; const {useCommon} = $globalStore;
//路由参数 //路由参数
const router = useRouter(); const router = useRouter();
const route = useRoute(); const route = useRoute();
const indexTab = ref(2)
const data = reactive({ const data = reactive({
id: ref(""), id: ref(""),
status: 0, status: 0,
TabId: 0, TabId: ref(2),
list: [ list: [
{ {
title: '处置进度', title: '处置进度',
@ -66,6 +67,7 @@
], ],
}); });
const responData = reactive({});
const check = (index) => { const check = (index) => {
console.log("点击切换tab", index); console.log("点击切换tab", index);
@ -74,16 +76,22 @@
const active = ref(0); const active = ref(0);
const onClickTab = ({ title }) => { const onClickTab = ({ title }) => {
if(title == '处置进度'){ if(title == '处置进度'){
data.TabId = 0; indexTab.value = 0;
}else{ }else{
data.TabId = 1; indexTab.value = 1;
} }
}; };
onMounted(() => { onMounted(() => {
// let id = route?.query?.id; // let id = route?.query?.id;
data.id = route?.query?.id; data.id = route?.query?.id;
console.log(route?.query?.id);
complaintInfoById({id:route?.query?.id},success =>{
console.log("====> : ", success)
responData.value = success.data;
console.log(responData.value);
indexTab.value = 0;
},error =>{})
}) })
</script> </script>

114
src/views/enterprise/compaint/compaintFlowView.vue

@ -6,35 +6,69 @@
<p>暂无数据</p> <p>暂无数据</p>
</div> </div>
<div class="timbox"> <div class="timbox">
<div class="timitem curtime"> <div class="timitem curtime" >
<h4 class="timtit">处置中</h4> <!-- <h4 class="timtit" v-if="item.state == 20">处理中</h4>
<div class="progress-box"> <h4 class="timtit" v-if="item.state == 20">已处理</h4>
<div class="prolist"><label>处理部门:</label><span>深圳市司法局</span></div> <h4 class="timtit" v-if="item.state == 20">已办结</h4> -->
<div class="prolist"><label>处理意见:</label><span>请行政执法监督处跟进处理</span></div> <div class="progress-box" v-for="(item,index) in result" :key="index">
<div class="prolist"><label>处理时间:</label><span>12-06 11:15</span></div> <div class="prolist"><label>处理部门:</label><span>{{ item.appOrgName }}</span></div>
<div class="prolist"><label>处理意见:</label><span>{{ item.approveContent }}</span></div>
<div class="prolist"><label>处理时间:</label><span>{{ item.approveTime }}</span></div>
</div> </div>
<div class="progress-box"> <!-- <div class="progress-box">
<div class="prolist"><label>处理部门:</label><span>深圳市司法局</span></div> <div class="prolist"><label>处理部门:</label><span>深圳市司法局</span></div>
<div class="prolist"><label>处理意见:</label><span>请行政执法监督处跟进处理</span></div> <div class="prolist"><label>处理意见:</label><span>请行政执法监督处跟进处理</span></div>
<div class="prolist"><label>处理时间:</label><span>12-06 11:15</span></div> <div class="prolist"><label>处理时间:</label><span>12-06 11:15</span></div>
</div> </div> -->
</div> </div>
<!-- <div class="timitem">
<div class="timitem">
<h4 class="timtit">已受理</h4> <h4 class="timtit">已受理</h4>
</div> </div> -->
</div> </div>
</div> </div>
</div> </div>
</template> </template>
<script setup>
import { onMounted } from 'vue';
import { defineProps } from 'vue'
const emits = defineEmits(['reciveData','close']);
//路由参数
const router = useRouter();
const route = useRoute();
const isShow = ref(false);
const props = defineProps({
data: Object
})
// const result = reactive({
// appOrgName:"",
// approveContent:"",
// approveTime:"",
// approveUserName:"",
// operName:""
// })
//存储民生诉求处置流程
const result = ref([]);
onMounted(() =>{
console.log(props?.data?.mssqOrderFlows)
console.log(props?.data)
console.log(props?.data?.value)
const arrData = props?.data?.value?.mssqOrderFlows;
console.log(arrData)
for (let index = 0; index < arrData.length; index++) {
const element = arrData[index];
const obj = {
appOrgName: element.appOrgName,
approveContent: element.approveContent,
approveTime: element.approveTime,
approveUserName: element.approveUserName,
operName: element.operName
}
result.value.push(obj)
}
console.log(result)
})
</script>
<style lang="less" scoped> <style lang="less" scoped>
.address_edit { .address_edit {
display: flex; display: flex;
@ -95,7 +129,7 @@
opacity: 1.0; opacity: 1.0;
} }
.timitem::before { .timitem::before {
position: absolute; position: absolute;
z-index: 10; z-index: 10;
left: 0.1rem; left: 0.1rem;
@ -103,10 +137,10 @@
content: ''; content: '';
width: 0.01rem; width: 0.01rem;
height: 92%; height: 92%;
background-color: rgb(155, 155, 155); /*background-color: rgb(155, 155, 155);*/
} }
.timitem:last-child::before { /*.timitem:last-child::before {
height: 0; height: 0;
background-color: rgb(155, 155, 155); background-color: rgb(155, 155, 155);
} }
@ -122,11 +156,11 @@
height: 0.35rem; height: 0.35rem;
border-radius: 0.5rem; border-radius: 0.5rem;
background-color: rgb(155, 155, 155); background-color: rgb(155, 155, 155);
} }*/
.curtime.timitem::after, .curtime.timitem::before { /*.curtime.timitem::after, .curtime.timitem::before {
background-color: #1367fe; background-color: #1367fe;
} }*/
.timtit { .timtit {
display: inline-block; display: inline-block;
@ -152,11 +186,27 @@
line-height: 1.75; line-height: 1.75;
} }
.progress-box::before {
position: absolute;
z-index: 10;
left: -0.17rem;
top: 0.1rem;
content: '';
width: 0.01rem;
height: 100%;
background-color: rgb(155, 155, 155);
}
.progress-box:last-child::before {
height: 0;
background-color: rgb(155, 155, 155);
}
.progress-box::after { .progress-box::after {
position: absolute; position: absolute;
z-index: 10; z-index: 10;
left: -0.37rem; left: -0.37rem;
top: 0.15rem; top: 0.1rem;
content: ''; content: '';
width: 0.25rem; width: 0.25rem;
height: 0.25rem; height: 0.25rem;
@ -165,6 +215,18 @@
background-color: rgb(155 155 155); background-color: rgb(155 155 155);
} }
.progress-box:first-child::after {
left: -0.44rem;
width: 0.35rem;
height: 0.35rem;
background-color: #1367fe;
}
.curtime.tprogressimitem::after, .curtime.progress::before {
background-color: #1367fe;
}
.prolist label { .prolist label {
display: inline-block; display: inline-block;
margin-right: 0.1rem; margin-right: 0.1rem;

4
src/views/enterprise/complaintList.vue

@ -63,8 +63,8 @@
<div class="card_box_span"> <div class="card_box_span">
<p>投诉时间:{{ item.createTime }} <span class="card_box_action"> <p>投诉时间:{{ item.createTime }} <span class="card_box_action">
</span></p> </span></p>
<span class="state-text" v-if="item.status == 0">受理中</span> <span class="state-text" v-if="item.status == 0">处理中</span>
<span class="state-text" v-if="item.status >= 1">已受理</span> <span class="state-text" v-if="item.status >= 1">已处理</span>
<span class="state-text" v-if="item.status >= 2">已办结</span> <span class="state-text" v-if="item.status >= 2">已办结</span>
</div> </div>

5
src/views/enterprise/enterpriseInspectionDetail.vue

@ -210,6 +210,11 @@ onMounted(() =>{
submitData.linkMan = success.data.linkMan; submitData.linkMan = success.data.linkMan;
submitData.linkTel = success.data.linkTel; submitData.linkTel = success.data.linkTel;
submitData.checkTime = formattedTimeYYYYmmdd(success.data.checkTime); submitData.checkTime = formattedTimeYYYYmmdd(success.data.checkTime);
if(success.data.checkTimeOrder == 1){
submitData.checkTime = submitData.checkTime + " 上午 9:00~12:00";
}else{
submitData.checkTime = submitData.checkTime + " 下午 14:00~17:00";
}
submitData.remark = success.data.remark; submitData.remark = success.data.remark;
submitData.isReg = success.data.isReg; submitData.isReg = success.data.isReg;
submitData.status = success.data.status; submitData.status = success.data.status;

11
src/views/enterprise/enterpriseInspectionList.vue

@ -70,12 +70,12 @@
<van-swipe-cell class="swipe_cell"> <van-swipe-cell class="swipe_cell">
<div class="card_box"> <div class="card_box">
<div class="card_box_span"> <div class="card_box_span">
<p>检查时间:{{ formattedTimeYYYYmmdd(item.checkTime) }} <p>执法时间:{{ formattedTimeYYYYmmdd(item.checkTime) }}
<span class="times" v-if="item.checkTimeOrder == 1" > <span v-if="item.checkTimeOrder == 1" >
上午 9:00~12:00 &nbsp;上午 9:00~12:00
</span> </span>
<span class="times" v-if="item.checkTimeOrder == 2"> <span v-if="item.checkTimeOrder == 2">
下午 14:00~17:00 &nbsp; 下午 14:00~17:00
</span> </span>
</p> </p>
</div> </div>
@ -537,7 +537,6 @@
} }
.card-title p { .card-title p {
display: block !important;
color: #000; color: #000;
font-size: 0.40rem; font-size: 0.40rem;
font-weight: bold; font-weight: bold;

Loading…
Cancel
Save