|
- <template>
- <div class="app-container">
- <div style="width: 100%;color:#fff;padding:15px 0;background: linear-gradient(134deg,#7ac943 1%, #22b7f2);">
- <div style="width: 95%;margin: 0 auto;display: flex;align-items: center;">
- <van-image
- width="60"
- height="60"
- round
- src="https://img.yzcdn.cn/vant/leaf.jpg"
- />
- <div style="margin-left: 15px;">
- <p style="font-size: 16px;" v-if="businessLevel=='1'">调查员·采集员</p>
- <p style="font-size: 16px;" v-if="businessLevel=='2'">审核员</p>
- <p style="margin-top: 10px;font-size: 16px;">{{nickName}}</p>
- </div>
- <van-icon name="setting-o" style="margin-left: auto;" @click="gotoLink" size="25"/>
- </div>
- </div>
- <div style="background:#F5F5F5;width: 95%;margin: 20px auto 0;border-radius: 15px;overflow: hidden;">
- <van-grid :column-num="3" :border="false">
- <van-grid-item>
- <van-badge :content="total">
- <img
- width="50"
- height="50"
- :src="require('../../assets/images/housesteadSurvey/task1.png')"
- @click="active=1,getList()"
- />
- </van-badge>
- <p id="basetext" :style="{color:(active==1?'#7AC943':'#000'),fontSize:'14px',marginTop:'5px'}">全部任务</p>
- </van-grid-item>
- <van-grid-item>
- <van-badge :content="done">
- <img
- width="50"
- height="50"
- :src="require('../../assets/images/housesteadSurvey/task2.png')"
- @click="active=2,getList()"
- />
- </van-badge>
- <p :style="{color:(active==2?'#7AC943':'#000'),fontSize:'14px',marginTop:'5px'}">已完成</p>
- </van-grid-item>
- <van-grid-item>
- <van-badge :content="todo">
- <img
- width="50"
- height="50"
- :src="require('../../assets/images/housesteadSurvey/task3.png')"
- @click="active=3,getList()"
- />
- </van-badge>
- <p :style="{color:(active==3?'#7AC943':'#000'),fontSize:'14px',marginTop:'5px'}">待调查</p>
- </van-grid-item>
- </van-grid>
- </div>
- <div style="margin:20px;">
- <p class="title" style="position:relative;padding-left:10px;line-height:20px;font-size: 16px;">任务列表</p>
- </div>
- <div v-if="active==1" style="height:calc( 100vh - 350px);overflow-y:auto;">
- <van-pull-refresh v-model="isLoadingtask" @refresh="onRefreshtask" :immediate-check="false">
- <van-cell v-for="(item,index) in totalList" :key="item.id" size="small" @click.native="setCookies(item)" style="border-radius: 16px;
- box-shadow: 0px 3px 5px 0px rgba(0,0,0,0.16); width:95%;margin:0px auto 20px;height: 110px;">
- <template #title>
- <div>{{item.deptName}}</div>
- </template>
- <template #default>
- <p :style="{'color':chooseColor(item),'background':chooseColor2(item),'display':'inline-block','padding':'4px 2px','line-height':'1','border-radius':'5px'}">
- {{item.confirmZjdzdNumber}}/{{item.reportZjdzdNumber}}
- </p>
- <van-circle
- v-model="item.reportZrzNumber"
- :rate="item.reportNhNumber"
- :stroke-width="100"
- :speed="100"
- size="70%"
- layer-color="#ebedf0"
- :color="chooseColor(item)"
- :text="item.reportZjdzdNumber!=null?(((item.confirmZjdzdNumber/item.reportZjdzdNumber)*100).toFixed())+'%':0+'%'"
- />
- </template>
- <template #label>
- <p style="display: flex;align-items: center;margin-top: 5px;"><van-icon name="clock" color="#22b7f2" style="margin-right:5px;"/>{{item.jhkssj}}~{{item.jhjssj}}</p>
- <p style="display: flex;align-items: center;margin-top: 5px;"><van-icon name="manager" color="#22b7f2" style="margin-right:5px;"/>{{item.rwzxr}}</p>
- </template>
- </van-cell>
- </van-pull-refresh>
- </div>
- <div v-if="active==2" style="height:calc( 100vh - 350px);overflow-y:auto;">
- <van-pull-refresh v-model="isLoadingtask" @refresh="onRefreshtask">
- <van-cell v-for="(item,index) in doneList" :key="item.id" size="small" @click.native="setCookies(item)" style="border-radius: 16px;
- box-shadow: 0px 3px 5px 0px rgba(0,0,0,0.16); width:95%;margin:0px auto 20px;height: 110px;">
- <template #title>
- <div>{{item.deptName}}</div>
- </template>
- <template #default>
- <p :style="{'color':chooseColor(item),'background':chooseColor2(item),'display':'inline-block','padding':'4px 2px','line-height':'1','border-radius':'5px'}">
- {{item.confirmZjdzdNumber}}/{{item.reportZjdzdNumber}}
- </p>
- <van-circle
- v-model="item.reportZrzNumber"
- :rate="item.reportNhNumber"
- :stroke-width="100"
- :speed="100"
- size="70%"
- layer-color="#ebedf0"
- :color="chooseColor(item)"
- :text="item.reportZjdzdNumber!=null?(((item.confirmZjdzdNumber/item.reportZjdzdNumber)*100).toFixed())+'%':0+'%'"
- />
- </template>
- <template #label>
- <p style="display: flex;align-items: center;margin-top: 5px;"><van-icon name="clock" color="#22b7f2" style="margin-right:5px;"/>{{item.jhkssj}}~{{item.jhjssj}}</p>
- <p style="display: flex;align-items: center;margin-top: 5px;"><van-icon name="manager" color="#22b7f2" style="margin-right:5px;"/>{{item.rwzxr}}</p>
- </template>
- </van-cell>
- </van-pull-refresh>
- </div>
- <div v-if="active==3" style="height:calc( 100vh - 350px);overflow-y:auto;">
- <van-pull-refresh v-model="isLoadingtask" @refresh="onRefreshtask">
- <van-cell v-for="(item,index) in todoList" :key="item.id" size="small" @click.native="setCookies(item)" style="border-radius: 16px;
- box-shadow: 0px 3px 5px 0px rgba(0,0,0,0.16); width:95%;margin:0px auto 20px;height: 110px;">
- <template #title>
- <div>{{item.deptName}}</div>
- </template>
- <template #default>
- <p :style="{'color':chooseColor(item),'background':chooseColor2(item),'display':'inline-block','padding':'4px 2px','line-height':'1','border-radius':'5px'}">
- {{item.confirmZjdzdNumber}}/{{item.reportZjdzdNumber}}
- </p>
- <van-circle
- v-model="item.reportZrzNumber"
- :rate="item.reportNhNumber"
- :stroke-width="100"
- :speed="100"
- size="70%"
- layer-color="#ebedf0"
- :color="chooseColor(item)"
- :text="item.reportZjdzdNumber!=null?(((item.confirmZjdzdNumber/item.reportZjdzdNumber)*100).toFixed())+'%':0+'%'"
- />
- </template>
- <template #label>
- <p style="display: flex;align-items: center;margin-top: 5px;"><van-icon name="clock" color="#22b7f2" style="margin-right:5px;"/>{{item.jhkssj}}~{{item.jhjssj}}</p>
- <p style="display: flex;align-items: center;margin-top: 5px;"><van-icon name="manager" color="#22b7f2" style="margin-right:5px;"/>{{item.rwzxr}}</p>
- </template>
- </van-cell>
- </van-pull-refresh>
- </div>
-
- </div>
- </template>
-
- <script>
- import {addTask, complete, delTask, exportTask, getTask, listTask, publish, updateTask, userList} from "@/api/homesteadSurvey/index";
- import {getInfo} from "../../api/login";
- import CircleProccess from "@/components/circleProccess.vue";
- import {updateUserPwd} from "../../api/onlineHome/my";
- import {Dialog} from "vant";
- import {sysConfig} from "../../api/homesteadSurvey";
- import axios from "axios";
- export default {
- name: "homesteadIndex",
- components: {
- CircleProccess
- },
- data() {
- return {
- currentRate1:0,
- currentRate2:0,
- currentRate3:0,
- active: 1,
- show: false,
- loading: false,
- finished: false,
- height:200,
- phone:null,
- activeKey:0,
- currentRate: 0,
- total:0,
- totalList:[],
- done:0,
- doneList:[],
- todo:0,
- todoList:[],
- gradientColor:{
-
- },
- // 查询参数
- queryParams: {
- rwwczt: null,
- rwfbzt:"PUBLISHED",
- taskExecutor:null
- },
- nickName:"",
- text:0,
- isLoadingtask:false,
- countqb:0,
- countyhc:0,
- countwhc:0,
-
- //宅调人员列表
- taskExecutortions:[],
- //当前用户级别
- businessLevel:1,
- // 字典列表json
- dictTypeList:null,
- };
- },
- created(){
- userList().then(response => {
- this.taskExecutortions = response.data
- })
- getInfo().then(response => {
- this.nickName = response.user.nickName
- this.businessLevel = response.user.businessLevel
- this.$cookies.set("businessLevel",this.businessLevel)
- this.queryParams.taskExecutor = response.user.userName
- this.getList();
- });
- axios.get('../static/dictyType.json').then(res => {
- this.dictTypeList = res.data
- })
- },
- mounted(){
-
- // 监听屏幕方向
- let self = this;
- window.addEventListener(
- "onorientationchange" in window ? "orientationchange" : "resize",
- function() {
- if (window.orientation === 90 || window.orientation === -90) {
- // 横屏
- }
- },
- false
- );
- if(this.$cookies.get("url")==null||this.$cookies.get("url")==""){
- this.getBaseUrl()
- }
- },
- methods: {
- getBaseUrl(){
- let params={
- configKey: "system.attachment.url"}
- sysConfig(params).then(response => {
- this.$cookies.set("url",response.rows[0].configValue)
- })
- },
- chooseValue(item){
- let a = ((item.confirmZjdzdNumber/item.reportZjdzdNumber)*100).toFixed()
- return a
- },
- chooseColor(item){
- let a = ((item.confirmZjdzdNumber/item.reportZjdzdNumber)*100).toFixed()
- if(a < 50){
- return '#FA5353'
- }else if(a < 100){
- return '#22B7F2'
- }else{
- return '#85d824'
- }
- return '#FA5353'
- },
- chooseColor2(item){
- let a = ((item.confirmZjdzdNumber/item.reportZjdzdNumber)*100).toFixed()
- if(a < 50){
- return 'rgba(250,83,83,0.22)'
- }else if(a < 100){
- return 'rgba(34,183,242,0.22)'
- }else{
- return 'rgba(122,201,67,0.22)'
- }
- return '#FA5353'
- },
- taskExecutorChange(row){
- if(row.taskExecutor!=null&&row.taskExecutor!=""&&row.taskExecutor.length>1){
- var actions = [];
- row.taskExecutor.map(res => {
- for(let i = 0;i<this.taskExecutortions.length;i++){
- if(res == this.taskExecutortions[i].userName){
- actions.push(this.taskExecutortions[i].nickName)
- }
- }
- })
- return actions.join(',');
- }else{
- var actions = [];
- Object.keys(this.taskExecutortions).some((key) => {
- if (this.taskExecutortions[key].userName == ('' + row.taskExecutor)) {
- actions.push(this.taskExecutortions[key].nickName);
- return true;
- }
- })
- return actions.join(',');
- }
- },
- onRefreshtask(){
- this.isLoadingtask = false;
- let _this = this
- if(this.active==1){
- let params = {
- "rwwczt": "FINISHED",
- "rwfbzt":"PUBLISHED",
- "pageNum": this.countyhc+1,
- "pageSize":10,
- }
- listTask(params).then((response) => {
- if(response.rows.length>0&&this.doneList.length<response.total){
- response.rows.map(res => {
- this.doneList.unshift(res)
- })
- this.countyhc++
- }
- });
- }else if(this.active==2){
- let params = {
- "rwwczt": "UNFINISHED",
- "rwfbzt":"PUBLISHED",
- "pageNum": this.countwhc+1,
- "pageSize":10,
- }
- listTask(params).then((response) => {
- if(response.rows.lenght>0&&this.todoList.length<response.total){
- response.rows.map(res => {
- this.todoList.unshift(res)
- })
- this.countwhc++
- }
- });
- }else{
- let params = {
- "rwfbzt":"PUBLISHED",
- "pageNum": this.countqb+1,
- "pageSize":10,
- }
- listTask(params).then((response) => {
- if(response.rows.length>0&&this.totalList.length<response.total){
- response.rows.map(res => {
- this.totalList.unshift(res)
- })
- this.countqb++
- }
- });
- }
- },
- setCookies(item){
- /* if(this.$cookies.get("upload")==null||this.$cookies.get("upload")==0){
- Dialog.confirm({
- title: '提示',
- message: '当前未选择批量上传,可能会由于网络原因上传图片缓慢,是否继续?',
- })
- .then(() => {
- // on confirm
- this.$router.push({name:'homesteadList'})
- this.$cookies.set("item",JSON.stringify(item));
- })
- .catch(() => {
- // on cancel
- });
- }else{
- this.$router.push({name:'homesteadList'})
- this.$cookies.set("item",JSON.stringify(item));
- }*/
- this.$cookies.set("item","");
- this.$cookies.set("item",JSON.stringify(item));
- this.$router.push({name:'homesteadList'})
- },
- getList() {
- this.totalList = []
- this.doneList = [];
- this.todoList = [];
- listTask(this.queryParams).then(response => {
- this.total = response.total
- this.done = 0;
- this.todo = 0;
- response.rows.map(res => {
- if(res.taskStatus == "FINISHED"){
- this.done+=1
- this.doneList.push(res);
- }else{
- this.todo+=1
- this.todoList.push(res);
- }
- if(res.taskExecutor!=null&&res.taskExecutor!=''){
- res.taskExecutor = res.taskExecutor.split(',')
- }
- })
- this.totalList = response.rows
- });
- },
- gotoLink(){
- this.$router.push('/homesteadSurvey/settle')
- },
- },
- }
- </script>
-
- <style scoped>
- >>> .van-cell__title{
- flex:3
- }
- >>> .sss {
- display: flex;
- }
- >>> .title:before
- {
- content:"";
- width: 6px;
- height: 20PX;
- background: #7ac943;
- border-radius: 3px;
- position:absolute;
- left:0;
- bottom:0;
- }
- </style>
|