| @@ -47,10 +47,10 @@ | |||
| </template> | |||
| <script> | |||
| import navFooter from "@/components/common/nav_footer"; | |||
| /*import navFooter from "@/components/common/nav_footer";*/ | |||
| export default { | |||
| name: "App", | |||
| components: { navFooter }, | |||
| /*components: { navFooter },*/ | |||
| data: () => { | |||
| return { | |||
| // direction: "", | |||
| @@ -0,0 +1,122 @@ | |||
| <template> | |||
| <div class="time-graph"> | |||
| <canvas :id="id" :width="120" :height="120"></canvas> | |||
| </div> | |||
| </template> | |||
| <script> | |||
| export default { | |||
| name: "circleProccess", | |||
| props:{ | |||
| ids:{ | |||
| type:Number | |||
| }, | |||
| counts:{ | |||
| type:Number, | |||
| default:0, | |||
| } | |||
| }, | |||
| data() { | |||
| return { | |||
| context:null, | |||
| center_x:null, | |||
| center_y:null, | |||
| rad:null, | |||
| speed:0, | |||
| context:null, | |||
| id:this.ids, | |||
| }; | |||
| }, | |||
| watch: { | |||
| }, | |||
| mounted() { | |||
| let cc = this.counts | |||
| if(this.counts>0&&this.counts<99){ | |||
| cc+=1 | |||
| } | |||
| let time_canvas = document.getElementById(this.ids); | |||
| time_canvas.width = document.documentElement.clientWidth/6; | |||
| time_canvas.height = document.documentElement.clientWidth/6; | |||
| this.drawMain(time_canvas, cc, "#85d824", "#eef7e4"); | |||
| }, | |||
| methods: { | |||
| drawMain(drawing_elem, percent, forecolor, bgcolor){ | |||
| this.context = drawing_elem.getContext("2d"); | |||
| this.center_x = drawing_elem.width / 2; | |||
| this.center_y = drawing_elem.height / 2; | |||
| this.rad = 3.1415926 * 2 / 100; | |||
| this.speed = 0; | |||
| if (this.speed <= percent) { | |||
| this.run(drawing_elem, percent, forecolor, bgcolor,this.speed,percent) | |||
| } | |||
| }, | |||
| run(drawing_elem, percent, forecolor, bgcolor){ | |||
| while(this.speed <= percent){ | |||
| window.requestAnimationFrame(this.run); | |||
| this.context.clearRect(0, 0, drawing_elem.width, drawing_elem.height); | |||
| this.backgroundCircle(bgcolor); | |||
| this.text(this.speed,forecolor); | |||
| this.foregroundCircle(this.speed,forecolor); | |||
| this.speed += 1; | |||
| } | |||
| }, | |||
| backgroundCircle(bgcolor) { | |||
| this.context.save(); | |||
| this.context.translate(0, 0) | |||
| this.context.setLineDash([5, 5]) | |||
| this.context.lineWidth = 5; //设置线宽 | |||
| this.context.textAlign = 'center' | |||
| this.context.textBaseline = 'middle' | |||
| this.context.font = '18px arial' | |||
| this.context.strokeStyle = bgcolor; | |||
| this.context.beginPath(); | |||
| var radius = this.center_x - this.context.lineWidth; | |||
| // context.lineCap = "round"; | |||
| this.context.arc(this.center_x, this.center_y, radius, 0, 3.1415926 * 2, false); | |||
| this.context.stroke(); | |||
| this.context.closePath(); | |||
| this.context.restore(); | |||
| }, | |||
| foregroundCircle(n,forecolor) { | |||
| this.context.save(); | |||
| this.context.strokeStyle = forecolor; | |||
| this.context.lineWidth = 5; | |||
| this.context.setLineDash([5, 5]) | |||
| // context.lineCap = "round"; | |||
| var radius = this.center_x - this.context.lineWidth; | |||
| this.context.beginPath(); | |||
| this.context.arc(this.center_x, this.center_y, radius, -3.1415926 / 2, -3.1415926 / 2 + n * this.rad, false); //用于绘制圆弧context.arc(x坐标,y坐标,半径,起始角度,终止角度,顺时针/逆时针) | |||
| this.context.stroke(); | |||
| this.context.closePath(); | |||
| this.context.restore(); | |||
| }, | |||
| text(n,forecolor) { | |||
| this.context.save(); //save和restore可以保证样式属性只运用于该段canvas元素 | |||
| this.context.fillStyle = forecolor; | |||
| var font_size = document.documentElement.clientWidth/35; | |||
| this.context.font = font_size + "px arial"; | |||
| var text_width = this.context.measureText(n.toFixed(0) + "%").width; | |||
| this.context.fillText(n.toFixed(0) + "%", this.center_x - text_width / 2, this.center_y + font_size / 2.5); | |||
| this.context.restore(); | |||
| } | |||
| } | |||
| } | |||
| </script> | |||
| <style scoped lang="scss"> | |||
| ::v-deep .time-graph { | |||
| padding-top: 20px; | |||
| display: flex; | |||
| display: -webkit-flex; | |||
| justify-content: center; | |||
| align-items: center; | |||
| } | |||
| ::v-deep #time-graph-canvas { | |||
| width: 60px; | |||
| height: 60px; | |||
| } | |||
| </style> | |||
| @@ -69,14 +69,15 @@ service.interceptors.response.use(res => { | |||
| }) | |||
| .then(() => { | |||
| store.dispatch('LogOut').then(() => { | |||
| console.log(window.location.href); | |||
| if(window.location.href.indexOf('lawEnforcement') != -1){ | |||
| location.href = '/lawEnforcement/login'; | |||
| } else if ('/authenticRight/index'.indexOf(to.path) !== -1) { | |||
| location.href = '/authenticRight/login'; | |||
| } else if ('/homestead/index'.indexOf(to.path) !== -1) { | |||
| location.href = '/homestead/login'; | |||
| window.location.href = '/lawEnforcement/login'; | |||
| } else if (window.location.href.indexOf('authenticRight') != -1) { | |||
| window.location.href = '/authenticRight/login'; | |||
| } else if (window.location.href.indexOf('homesteadSurvey')!= -1) { | |||
| window.location.href = '/homesteadLogin'; | |||
| } else { | |||
| location.href = '/index'; | |||
| window.location.href = '/index'; | |||
| } | |||
| }) | |||
| }) | |||
| @@ -3,11 +3,11 @@ | |||
| <div style="width:100%;max-width:500px;margin:0 auto;"> | |||
| <div class="title"> | |||
| <img width="150" height="150" style="display: block;margin-right: 10px;margin: 20px auto;" src="../assets/images/housesteadSurvey/logo.png" alt=""> | |||
| <p style="text-align:center;font-size:40px;">农村宅基地测量</p> | |||
| <p style="text-align:center;font-size:40px;">农村宅基地调查</p> | |||
| </div> | |||
| <van-form> | |||
| <div style="width: 462px; | |||
| height: 110px; | |||
| <div style="width: 90%; | |||
| max-widht:462px; | |||
| border-radius: 45px; | |||
| box-shadow: 2px 10px 10px 0px rgba(125,125,125,0.16);padding: 10px 30px; margin:40px 20px; "> | |||
| <van-field | |||
| @@ -19,8 +19,8 @@ | |||
| :rules="[{ required: true, message:'' }]" | |||
| /> | |||
| </div> | |||
| <div style="width: 462px; | |||
| height: 110px; | |||
| <div style="width: 90%; | |||
| max-widht:462px; | |||
| border-radius: 45px; | |||
| box-shadow: 2px 10px 10px 0px rgba(125,125,125,0.16);padding: 10px 30px; margin:40px 20px; "> | |||
| <van-field | |||
| @@ -33,8 +33,8 @@ | |||
| :rules="[{ required: true, message:'' }]" | |||
| /> | |||
| </div> | |||
| <div style="width: 462px; | |||
| height: 110px; | |||
| <div style="width: 90%; | |||
| max-widht:462px; | |||
| border-radius: 45px; | |||
| box-shadow: 2px 10px 10px 0px rgba(125,125,125,0.16);padding: 10px 30px; margin:40px 20px; " class="codeDiv"> | |||
| <van-field | |||
| @@ -45,7 +45,7 @@ | |||
| placeholder="图形验证码" | |||
| > | |||
| <template #label> | |||
| <img style="width: 100px" :src="codeUrl" @click="getCode" /> | |||
| <img style="width: 90px" :src="codeUrl" @click="getCode" /> | |||
| </template> | |||
| </van-field> | |||
| </div> | |||
| @@ -340,6 +340,6 @@ export default { | |||
| </script> | |||
| <style scoped lang="scss"> | |||
| /deep/ .codeDiv .van-field .van-cell__title{ | |||
| width: 3.2em!important; | |||
| width: 3.0em!important; | |||
| } | |||
| </style> | |||
| @@ -33,7 +33,7 @@ | |||
| @click="active=1" | |||
| /> | |||
| </van-badge> | |||
| <p>全部任务</p> | |||
| <p id="basetext">全部任务</p> | |||
| </van-col> | |||
| <van-col span="8"> | |||
| <van-badge :content="done"> | |||
| @@ -64,56 +64,64 @@ | |||
| </div> | |||
| <div v-if="active==1" style="height:calc( 100vh - 350px);overflow-y:auto;"> | |||
| <van-cell v-for="(item,index) in totalList" :key="index" :title="item.deptName" size="small" @click.native="setCookies(item)" :to="{name:'homesteadList'}"style="border-radius: 16px; | |||
| <van-pull-refresh v-model="isLoadingtask" @refresh="onRefreshtask"> | |||
| <van-cell v-for="(item,index) in totalList" :key="item.id" :title="item.deptName" size="small" @click.native="setCookies(item)" :to="{name:'homesteadList'}"style="border-radius: 16px; | |||
| box-shadow: 0px 3px 5px 0px rgba(0,0,0,0.16); width:calc( 100% - 40px);margin:20px"> | |||
| <template #default> | |||
| <CircleProccess :ids="index" :counts="item.reportZjdzdNumber!=0?(item.confirmZjdzdNumber/item.reportZjdzdNumber)*100:0"></CircleProccess> | |||
| </template> | |||
| <template #label> | |||
| 开始时间:{{item.planBeginTime}} 结束时间:{{item.planEndTime}} | |||
| 开始时间:{{item.planBeginTime}}<br/> 结束时间:{{item.planEndTime}} | |||
| </template> | |||
| <template #icon> | |||
| <van-icon name="clock" color="#22b7f2" style="margin-top:10px;margin-right:10px;"/> | |||
| </template> | |||
| </van-cell> | |||
| </van-pull-refresh> | |||
| </div> | |||
| <div v-if="active==2" style="height:calc( 100vh - 350px);overflow-y:auto;"> | |||
| <van-cell v-for=" (item,index) in doneList" :key="index" :title="item.deptName" size="small" :to="{name:'homesteadList',params:{item:item}}" style="border-radius: 16px; | |||
| <van-pull-refresh v-model="isLoadingtask" @refresh="onRefreshtask"> | |||
| <van-cell v-for=" (item,index) in doneList" :key="item.id" :title="item.deptName" size="small" :to="{name:'homesteadList',params:{item:item}}" style="border-radius: 16px; | |||
| box-shadow: 0px 3px 5px 0px rgba(0,0,0,0.16); width:calc( 100% - 40px);margin:20px"> | |||
| <template #default> | |||
| <CircleProccess :ids="index" :counts="item.reportZjdzdNumber!=0?(item.confirmZjdzdNumber/item.reportZjdzdNumber)*100:0"></CircleProccess> | |||
| </template> | |||
| <template #label> | |||
| 开始时间:{{item.planBeginTime}} | |||
| 开始时间:{{item.planBeginTime}}<br/> 结束时间:{{item.planEndTime}} | |||
| </template> | |||
| <template #icon> | |||
| <van-icon name="clock" color="#22b7f2" style="margin-top:10px;margin-right:10px;"/> | |||
| </template> | |||
| </van-cell> | |||
| </van-pull-refresh> | |||
| </div> | |||
| <div v-if="active==3" style="height:calc( 100vh - 350px);overflow-y:auto;"> | |||
| <van-cell v-for=" (item,index) in todoList" :key="index" :title="item.deptName" size="small" :to="{name:'homesteadList',params:{item:item}}" style="border-radius: 16px; | |||
| <van-pull-refresh v-model="isLoadingtask" @refresh="onRefreshtask"> | |||
| <van-cell v-for=" (item,index) in todoList" :key="item.id" :title="item.deptName" size="small" :to="{name:'homesteadList',params:{item:item}}" style="border-radius: 16px; | |||
| box-shadow: 0px 3px 5px 0px rgba(0,0,0,0.16); width:calc( 100% - 40px);margin:20px"> | |||
| <template #default> | |||
| </template> | |||
| <CircleProccess :ids="index" :counts="item.reportZjdzdNumber!=0?(item.confirmZjdzdNumber/item.reportZjdzdNumber)*100:0"></CircleProccess> | |||
| </template> | |||
| <template #label> | |||
| 开始时间:{{item.planBeginTime}} | |||
| 开始时间:{{item.planBeginTime}}<br/> 结束时间:{{item.planEndTime}} | |||
| </template> | |||
| <template #icon> | |||
| <van-icon name="clock" color="#22b7f2" style="margin-top:10px;margin-right:10px;"/> | |||
| </template> | |||
| </van-cell> | |||
| </van-pull-refresh> | |||
| </div> | |||
| </div> | |||
| </template> | |||
| <script> | |||
| import {addTask, complete, delTask, exportTask, getTask, listTask, publish, updateTask} from "@/api/homesteadSurvey/index"; | |||
| import {getInfo} from "../../api/login"; | |||
| // import circleProccess from "@/components/circleProccess.vue"; | |||
| import CircleProccess from "@/components/circleProccess.vue"; | |||
| export default { | |||
| name: "homesteadIndex", | |||
| components: { | |||
| // circleProccess | |||
| CircleProccess | |||
| }, | |||
| data() { | |||
| return { | |||
| @@ -133,23 +141,15 @@ | |||
| todoList:[], | |||
| // 查询参数 | |||
| queryParams: { | |||
| // 分页 | |||
| pageNum: 1, | |||
| pageSize: 10, | |||
| // 查询排序 | |||
| orderByColumn: "id", | |||
| isAsc: "desc", | |||
| deptId: null, | |||
| deptName: null, | |||
| title: null, | |||
| createUserId: null, | |||
| updateUserId: null, | |||
| taskStatus: null, | |||
| taskPublishStatus:"PUBLISHED", | |||
| }, | |||
| nickName:"", | |||
| text:0, | |||
| isLoadingtask:false, | |||
| countqb:0, | |||
| countyhc:0, | |||
| countwhc:0, | |||
| }; | |||
| }, | |||
| mounted(){ | |||
| @@ -170,6 +170,55 @@ | |||
| this.getList(); | |||
| }, | |||
| methods: { | |||
| onRefreshtask(){ | |||
| this.isLoadingtask = false; | |||
| let _this = this | |||
| if(this.active==1){ | |||
| let params = { | |||
| "taskStatus": "FINISHED", | |||
| "taskPublishStatus":"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 = { | |||
| "taskStatus": "UNFINISHED", | |||
| "taskPublishStatus":"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 = { | |||
| "taskPublishStatus":"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){ | |||
| this.$cookies.set("item",JSON.stringify(item)); | |||
| }, | |||