Commit 4d5adf1c by liuzhanxin

fix

parent 03e8028f
<template>
<view class="top-container" >
<view class="top-container">
<view class="detailtext"><text class="titletext">整改项详情</text><text class="contenttext">{{description}}</text></view>
<view class="detailtext"><text class="titletext">位置</text><text class="contenttext">{{roomName}}</text></view>
<view class="detailtext"><text class="titletext">实验室</text><text class="contenttext">{{roomName}}</text></view>
......@@ -19,17 +19,17 @@
export default {
data() {
return {
imgUrl:[],
roomName:"",
description:"",
detailData:{}
imgUrl: [],
roomName: "",
description: "",
detailData: {}
}
},
methods: {
onLoad() {
var that = this
uni.$on('rectificationListData',function(data){
console.log("@@@@@@@@@@@@@@@"+JSON.stringify(data))
uni.$on('rectificationListData', function(data) {
console.log("@@@@@@@@@@@@@@@" + JSON.stringify(data))
var detailData = data[0]
that.roomName = JSON.parse(detailData.room).name
that.description = detailData.description;
......@@ -38,8 +38,8 @@
that.$forceUpdate();
})
},
onUnload(){
uni.$off('rectificationListData',function(data){
onUnload() {
uni.$off('rectificationListData', function(data) {
})
},
......@@ -51,11 +51,11 @@
upCallback(page) {
},
onNavigationBarButtonTap(){
onNavigationBarButtonTap() {
uni.navigateTo({
url:"../Security-Check/index?mod=put"
url: "../Security-Check/index?mod=put"
})
uni.$emit("rectificationEdit",[this.detailData])
uni.$emit("rectificationEdit", [this.detailData])
},
}
}
......@@ -70,56 +70,66 @@
margin-top: 10rpx;
margin-bottom: 20rpx;
}
.title {
font-size: 16px;
color: #333333;
}
.containter{
.containter {
display: flex;
width: 100%;
background-color: #F5F5F5;
padding: 20rpx;
}
.statuspic{
width:80rpx;
height:80rpx;
.statuspic {
width: 80rpx;
height: 80rpx;
}
.titletext{
font-size:28rpx;
.titletext {
font-size: 28rpx;
color: #666666;
margin-right: 78rpx;
flex:1
flex: 1
}
.titletextlong{
font-size:28rpx;
.titletextlong {
font-size: 28rpx;
color: #666666;
margin-right: 50rpx;
flex:1
flex: 1
}
.contenttext{
font-size:28rpx;
.contenttext {
font-size: 28rpx;
color: #333333;
flex:3
flex: 3
}
.pic {
width:80rpx;
height:80rpx;
width: 80rpx;
height: 80rpx;
}
.remind {
font-size:32rpx;
font-size: 32rpx;
color: #CDCDCD;
}
.detailtext {
display: flex;
flex-direction: row;
margin-top: 20rpx;
}
.camera-button {
display:flex;
display: flex;
flex-direction: row;
align-items: center;
justify-content: center;
width:200rpx;
width: 200rpx;
height: 200rpx;
padding: 0;
}
......
<template>
<Mescroll style="background-color: #F5F5F5;" ref="mescrollRef" @init="mescrollInit" :down="downOption" :up="upOption" @down="downCallback" @up="upCallback">
<Mescroll style="background-color: #F5F5F5;" ref="mescrollRef" @init="mescrollInit" :down="downOption" :up="upOption"
@down="downCallback" @up="upCallback">
<view class="news-li" v-for="news in dataList" :key="news.id" hover-class="hover" @click="goDetail(news)">
<view style="width: auto;background-color: #FFFFFF;">
<image class="statuspic" :src="news.imgsrc">
<view class="top-container" >
<view class="top-container">
<text class="title">{{news.description}}</text>
<view class="detailtext"><text class="titletext">实验室</text><text class="contenttext">{{JSON.parse(news.check_scope).name}}</text></view>
<view class="detailtext"><text class="titletext">负责人</text><text class="contenttext">{{news.manager?JSON.parse(news.manager).name:""}}</text></view>
......@@ -42,7 +43,7 @@
</view>
</view>
<view class="datetime" hover-class="hover" @click="showStartTimePicker">
<text class="title" style="margin-left: 15upx;" >开始日期</text>
<text class="title" style="margin-left: 15upx;">开始日期</text>
<view class="selcontent-time">
<text class="datacontent">{{startTime!=""?startTime:"请选择开始时间"}}</text>
<image class="tip" src="../../static/common/arrow_right_gray.png">
......@@ -55,24 +56,15 @@
<image class="tip" src="../../static/common/arrow_right_gray.png">
</view>
</view>
<view style="display: flex;justify-content: center;align-items: center;width: 100%;margin-top: 80px;">
<view hover-class="submithover" @click="onSubmitClick" class="submit-button">
<text class="submittext" >提交</text>
<text class="submittext">提交</text>
</view>
</view>
</view>
</view>
</Drawer>
<Picker
:mode="pickerMod"
@confirm="onConfirm"
ref="picker"
themeColor="#f00"
:selectList="itemList"
></Picker>
<Picker :mode="pickerMod" @confirm="onConfirm" ref="picker" themeColor="#f00" :selectList="itemList"></Picker>
</Mescroll>
</template>
......@@ -81,10 +73,10 @@
import MescrollMixin from "@/components/mescroll-uni/mescroll-mixins.js";
import Drawer from '@/components/uni-drawer/uni-drawer.vue'
import Picker from "@/components/w-picker/w-picker.vue";
const sortFunction = (x,y)=>{
if(x.created > y.created){
const sortFunction = (x, y) => {
if (x.created > y.created) {
return -1;
}else {
} else {
return 1;
}
}
......@@ -99,20 +91,40 @@
upOption: {
use: false,
},
showDrawer:false,
drawer:{status:"fckkk"},
itemList:[],
statusData : [{label:"待确定",value:"unconfirmed"}, {label:"待处理",value:"pend"}, {label:"待整改",value:"correct"},{label:"整改中",value:"processed"},{label:"已处理",value:"finish"}, {label:'已取消',value:'cancel'}],
curType:"",
labData:[],
taskData:[],
filterBody:"",
pickerMod:"selector",
curTask:{},
curStatus:{},
curLab:{},
startTime:"",
endTime:"",
showDrawer: false,
drawer: {
status: "fckkk"
},
itemList: [],
statusData: [{
label: "待确定",
value: "unconfirmed"
}, {
label: "待处理",
value: "pend"
}, {
label: "待整改",
value: "correct"
}, {
label: "整改中",
value: "processed"
}, {
label: "已处理",
value: "finish"
}, {
label: '已取消',
value: 'cancel'
}],
curType: "",
labData: [],
taskData: [],
filterBody: "",
pickerMod: "selector",
curTask: {},
curStatus: {},
curLab: {},
startTime: "",
endTime: "",
}
},
......@@ -122,12 +134,11 @@
Mescroll
},
methods: {
closeDrawer(){
},
close(){
closeDrawer() {},
close() {
this.showDrawer = false;
},
onNavigationBarButtonTap(){
onNavigationBarButtonTap() {
this.showDrawer = true;
},
onLoad() {
......@@ -144,23 +155,23 @@
},
/*获取列表*/
loadData(){
loadData() {
var body = {};
var user = {};
user.id = this.GLOBALUTIL.user.userid;
user.name = encodeURI(this.GLOBALUTIL.user.username);
uni.request({
url: this.GLOBALUTIL.url+'/safety/v1/dangers?page_number=1&page_size=200'+this.filterBody,
url: this.GLOBALUTIL.url + '/safety/v1/dangers?page_number=1&page_size=200' + this.filterBody,
method: 'GET',
header: {
'Accept': 'application/json',
'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8',
'user' : JSON.stringify(user)
'user': JSON.stringify(user)
},
body:null,
body: null,
success: (res) => {
var data = res.data.data;
data.map((opt)=>{
data.map((opt) => {
opt.createTime = this.GLOBALUTIL.moment(opt.created).format("YYYY-MM-DD HH:mm:ss")
opt.imgsrc = this.handleStatus(opt)
})
......@@ -185,122 +196,136 @@
case 'cancel':
return "../../static/rectification-item/cancel.png"
default:
return"../../static/rectification-item/daiqueding.png"
return "../../static/rectification-item/daiqueding.png"
}
},
goDetail(data){
goDetail(data) {
uni.navigateTo({
url:"./detail"
url: "./detail"
})
uni.$emit("rectificationListData",[data])
uni.$emit("rectificationListData", [data])
},
showStatusPicker(){
showStatusPicker() {
this.curType = "status"
this.pickerMod = "selector";
this.itemList = this.statusData;
this.$refs.picker.show()
},
showTaskPicker(){
showTaskPicker() {
this.curType = "task"
this.pickerMod = "selector";
this.itemList = this.taskData;
this.$refs.picker.show()
},
showLabPicker(){
showLabPicker() {
this.curType = "lab"
this.pickerMod = "selector";
this.itemList = this.labData;
this.$refs.picker.show()
},
showStartTimePicker(){
showStartTimePicker() {
this.curType = "startTime";
this.pickerMod = "date";
this.$refs.picker.show()
},
showEndTimePicker(){
showEndTimePicker() {
this.curType = "endTime";
this.pickerMod = "date";
this.$refs.picker.show()
},
onConfirm(data){
onConfirm(data) {
console.log(JSON.stringify(data))
if(this.curType == "status"){
this.curStatus = {"name":data.checkArr.label,value:data.checkArr.value}
}else if(this.curType == "task"){
this.curTask = {"name":data.checkArr.label,value:data.checkArr.value}
}else if(this.curType == "lab"){
this.curLab = {"name":data.checkArr.label,value:data.checkArr.value}
}
else if(this.curType == "startTime"){
if (this.curType == "status") {
this.curStatus = {
"name": data.checkArr.label,
value: data.checkArr.value
}
} else if (this.curType == "task") {
this.curTask = {
"name": data.checkArr.label,
value: data.checkArr.value
}
} else if (this.curType == "lab") {
this.curLab = {
"name": data.checkArr.label,
value: data.checkArr.value
}
} else if (this.curType == "startTime") {
this.startTime = data.result
}else{
} else {
this.endTime = data.result
}
//this.curTask = {"name":data.checkArr[0],value:data.checkValue[0]}
},
getTaskList(){
getTaskList() {
var body = {};
var user = {};
user.id = this.GLOBALUTIL.user.userid;
user.name = encodeURI(this.GLOBALUTIL.user.username);
uni.request({
url: this.GLOBALUTIL.url+'/safety/v1/check-tasks?page_size=200&page_number=1',
url: this.GLOBALUTIL.url + '/safety/v1/check-tasks?page_size=200&page_number=1',
method: 'GET',
header: {
'Accept': 'application/json',
'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8',
'user' : JSON.stringify(user)
'user': JSON.stringify(user)
},
body:null,
body: null,
success: (res) => {
var data = res.data.data;
console.log(data.length)
var itemList = data.map((opt)=>{
return {label:opt.name,value:opt.id};
var itemList = data.map((opt) => {
return {
label: opt.name,
value: opt.id
};
})
this.taskData = itemList;
}
})
},
getLabList(){
getLabList() {
var body = {};
var user = {};
user.id = this.GLOBALUTIL.user.userid;
user.name = encodeURI(this.GLOBALUTIL.user.username);
uni.request({
url: this.GLOBALUTIL.url+'/education-manage/v1/experiment-centers?page_number=1&page_size=100&_=1539337073882',
url: this.GLOBALUTIL.url + '/education-manage/v1/experiment-centers?page_number=1&page_size=100&_=1539337073882',
method: 'GET',
header: {
'Accept': 'application/json',
'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8',
'user' : JSON.stringify(user)
'user': JSON.stringify(user)
},
body:null,
body: null,
success: (res) => {
var data = res.data.data;
var itemList = data.map((opt)=>{
return {label:opt.name,value:opt.id};
var itemList = data.map((opt) => {
return {
label: opt.name,
value: opt.id
};
})
this.labData = itemList;
}
})
},
onSubmitClick(){
onSubmitClick() {
this.filterBody = "";
if(this.curTask.value){
this.filterBody = this.filterBody +'&check_task_id='+this.curTask.value
if (this.curTask.value) {
this.filterBody = this.filterBody + '&check_task_id=' + this.curTask.value
}
if(this.curLab.value){
this.filterBody = this.filterBody +'&check_scope='+this.curLab.value
if (this.curLab.value) {
this.filterBody = this.filterBody + '&check_scope=' + this.curLab.value
}
if(this.curStatus.value){
this.filterBody = this.filterBody +'&status='+this.curStatus.value
if (this.curStatus.value) {
this.filterBody = this.filterBody + '&status=' + this.curStatus.value
}
if(this.startTime){
this.filterBody = this.filterBody+'&check_start_date='+this.startTime
if (this.startTime) {
this.filterBody = this.filterBody + '&check_start_date=' + this.startTime
}
if(this.endTime){
this.filterBody = this.filterBody+'&check_end_date='+this.endTime
if (this.endTime) {
this.filterBody = this.filterBody + '&check_end_date=' + this.endTime
}
this.showDrawer = false;
this.loadData();
......@@ -311,15 +336,16 @@
<style>
/*说明*/
.notice{
.notice {
font-size: 30upx;
padding: 40upx 0;
border-bottom: 1upx solid #eee;
text-align: center;
}
/*展示上拉加载的数据列表*/
.news-li{
widht:auto;
.news-li {
widht: auto;
font-size: 32upx;
padding-top: 20upx;
padding-left: 20upx;
......@@ -327,17 +353,20 @@
padding-bottom: 0upx;
background-color: #F5F5F5;
}
.news-li .new-content{
.news-li .new-content {
font-size: 28upx;
margin-top: 10upx;
margin-left: 20upx;
color: #666;
}
.icon {
width:20upx;
height:20upx;
width: 20upx;
height: 20upx;
margin-right: 20upx;
}
.top-container {
display: flex;
flex-direction: column;
......@@ -346,67 +375,82 @@
margin-top: -35upx;
padding-bottom: 30upx;
}
.status {
width:170upx;
height:35upx;
background-color: rgba(242,115,115,0.10);
width: 170upx;
height: 35upx;
background-color: rgba(242, 115, 115, 0.10);
border-radius: 50upx;
display: flex;
justify-content: center;
align-items: center;
margin-left: 35upx;
}
.status-text{
.status-text {
color: #F27373;
font-size: 11px;
}
.hover{
.hover {
opacity: 0.7;
}
.title {
font-size: 16px;
color: #333333;
}
.des {
font-weight:200;
font-size:14px;
color:#676767
font-weight: 200;
font-size: 14px;
color: #676767
}
.detail {
font-size:14px;
font-size: 14px;
}
.type {
font-size:14px;
font-size: 14px;
}
.statuspic{
width:80upx;
height:80upx;
.statuspic {
width: 80upx;
height: 80upx;
}
.titletext{
font-size:28upx;
.titletext {
font-size: 28upx;
color: #666666;
margin-right: 78upx;
}
.titletextlong{
font-size:28upx;
.titletextlong {
font-size: 28upx;
color: #666666;
margin-right: 50upx;
}
.contenttext{
font-size:28upx;
.contenttext {
font-size: 28upx;
color: #333333;
},
}
,
.selcontent {
display: flex;
flex-direction: row;
align-items: center;
margin-top: 20px;
}
.selcontent-time {
display: flex;
flex-direction: row;
align-items: center;
}
.item {
border-bottom: 1upx solid #D0D0D0;
width: auto;
......@@ -415,22 +459,26 @@
margin-right: 40upx;
padding-bottom: 10upx;
}
.datacontent {
width: 100%;
font-size: 16px;
color: #4F4F4F;
}
.hover {
opacity: 0.7;
}
.tip {
width: 30upx;
height:30upx
height: 30upx
}
.submit-button {
display: flex;
width:500upx;
height:60upx;
width: 500upx;
height: 60upx;
align-items: center;
justify-content: center;
background: linear-gradient(-45deg, rgba(87, 225, 181, 1) 0%, rgba(0, 63, 255, 1) 100%);
......@@ -439,26 +487,31 @@
margin-right: 0;
margin-bottom: 40upx;
}
.submittext {
font-size: 14px;
color: #FFFFFF;
font-family:-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif;
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif;
}
.submithover{
.submithover {
opacity: 0.7;
}
.d-container {
width: 600upx;
}
.datetime{
.datetime {
width: auto;
display: flex;
flex-direction: row;
justify-content: space-between;
align-items: center;
margin-top:20px;
margin-top: 20px;
}
.detailtext{
.detailtext {
padding-right: 20px;
}
</style>
<template>
<mescroll-body class="containter" ref="mescrollRef" @init="mescrollInit" :down="downOption" :up="upOption" @down="downCallback" @up="upCallback">
<mescroll-body class="containter" ref="mescrollRef" @init="mescrollInit" :down="downOption" :up="upOption" @down="downCallback"
@up="upCallback">
<view v-if="isShow" class="news-li" v-for="(item,index) in dataList" :key="index">
<view>
<text>{{index}}.{{item.content}}</text>
......@@ -13,7 +14,9 @@
</view>
</view>
</view>
<view ><image @click="checkItem(item)" class="icon" src="../../static/security-check/safeEdit.png"></view>
<view>
<image @click="checkItem(item)" class="icon" src="../../static/security-check/safeEdit.png">
</view>
</view>
</view>
<button hover-class="submithover" @click="showModal" class="submit-button">
......@@ -37,28 +40,28 @@
upOption: {
use: false, // 是否启用上拉加载; 默认true
},
isShow:false,
checkitems:[],
objectData:{},
taskId:"",
checkResult:[],
submitShow:false
isShow: false,
checkitems: [],
objectData: {},
taskId: "",
checkResult: [],
submitShow: false
}
},
methods: {
cancel:function(){
cancel: function() {
this.submitShow = false;
},
showModal:function(){
showModal: function() {
this.submitShow = true;
},
onLoad() {
var that = this;
uni.$on('sendCheckItem',function(data){
uni.$on('sendCheckItem', function(data) {
that.objectData = data[0]
that.taskId = data[2];
var content = data[1].children
content.map((opt)=>{
content.map((opt) => {
opt.status = 0;
// opt.checkitems = [];
})
......@@ -66,8 +69,8 @@
})
this.loadData();
},
onUnload(){
uni.$off('sendCheckItem',function(data){
onUnload() {
uni.$off('sendCheckItem', function(data) {
})
},
......@@ -79,43 +82,44 @@
upCallback(page) {
},
goDetail(){
goDetail() {
uni.navigateTo({
url:"./select-checkobject"
url: "./select-checkobject"
})
},
itemClick(index,status){
itemClick(index, status) {
this.dataList[index].status = status;
var res = {
name:this.checkitems[status].name,
code:this.checkitems[status].code,
id:this.checkitems[status].id
name: this.checkitems[status].name,
code: this.checkitems[status].code,
id: this.checkitems[status].id
}
this.checkResult[index].result_type = JSON.stringify(res);
this.$forceUpdate();
console.log(JSON.stringify(this.checkResult))
},
checkItem(item){
checkItem(item) {
uni.navigateTo({
url:"./index"
url: "./index"
})
uni.$emit("safeReportData",[this.objectData,item,this.taskId]);
uni.$emit("safeReportData", [this.objectData, item, this.taskId]);
},
loadData(){
loadData() {
var user = {};
user.id = this.GLOBALUTIL.user.userid;
user.name = encodeURI(this.GLOBALUTIL.user.username);
uni.request({
url: this.GLOBALUTIL.url+'/base-data/v1/dict-items?sort_property=ID&sort_direction=ASC&dict_code=JCJG&page_number=1&page_size=10',
url: this.GLOBALUTIL.url +
'/base-data/v1/dict-items?sort_property=ID&sort_direction=ASC&dict_code=JCJG&page_number=1&page_size=10',
method: 'GET',
header: {
'Accept': 'application/json',
'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8',
'user' : JSON.stringify(user)
'user': JSON.stringify(user)
},
body:null,
body: null,
success: (res) => {
this.dataList.map((opt)=>{
this.dataList.map((opt) => {
opt.checkitems = res.data.data;
})
this.checkitems = res.data.data;
......@@ -124,18 +128,18 @@
// console.log(JSON.stringify(this.dataList))
// console.log(JSON.stringify(this.checkitems))
this.checkResult = [];
this.dataList.map((opt)=>{
this.dataList.map((opt) => {
var res = {
name:this.checkitems[0].name,
id:this.checkitems[0].id,
code:this.checkitems[0].code
name: this.checkitems[0].name,
id: this.checkitems[0].id,
code: this.checkitems[0].code
}
var item = {
"result_type":JSON.stringify(res),
"check_item_id":opt.id,
"check_list_id":opt.check_list_id,
"check_task_id":this.taskId,
"lab_id":this.objectData.id
"result_type": JSON.stringify(res),
"check_item_id": opt.id,
"check_list_id": opt.check_list_id,
"check_task_id": this.taskId,
"lab_id": this.objectData.id
}
this.checkResult.push(item)
})
......@@ -143,36 +147,36 @@
})
},
onSubmitClick(){
onSubmitClick() {
this.submitShow = false;
var user = {};
user.id = this.GLOBALUTIL.user.userid;
user.name = encodeURI(this.GLOBALUTIL.user.username);
var body = this.checkResult
uni.request({
url: this.GLOBALUTIL.url+'/safety/v1/check-result',
url: this.GLOBALUTIL.url + '/safety/v1/check-result',
method: 'POST',
data:JSON.stringify(body),
data: JSON.stringify(body),
header: {
'Accept': 'application/json',
'Content-Type': 'application/json',
'user' : JSON.stringify(user)
'user': JSON.stringify(user)
},
success: (res) => {
console.log(JSON.stringify(res))
if(res.statusCode == 200){
if (res.statusCode == 200) {
uni.$emit("refreshTaskList")
this.$refs.popup.open({
type:'success',
content:'提交成功!',
timeout:1000,
isClick:false
type: 'success',
content: '提交成功!',
timeout: 1000,
isClick: false
});
setTimeout(()=>{
setTimeout(() => {
uni.navigateBack({
delta:2
delta: 2
})
},1000)
}, 1000)
}
}
})
......@@ -183,14 +187,15 @@
<style>
/*说明*/
.notice{
.notice {
font-size: 30upx;
padding: 40upx 0;
border-bottom: 1upx solid #eee;
text-align: center;
}
/*展示上拉加载的数据列表*/
.news-li{
.news-li {
display: flex;
flex-direction: column;
font-size: 32upx;
......@@ -198,48 +203,58 @@
border-bottom: 1upx solid #eee;
width: 100%;
}
.news-li .new-content{
.news-li .new-content {
font-size: 28upx;
margin-top: 10upx;
margin-left: 20upx;
color: #666;
}
.icon {
width:30rpx;
height:30rpx;
width: 30rpx;
height: 30rpx;
}
.top-container {
display: flex;
flex-direction: row;
align-items: center;
}
.hover{
.hover {
opacity: 0.7;
}
.item-container{
.item-container {
display: flex;
flex-direction: row;
margin-right: 30rpx;
}
.selected {
width:40rpx;
height:40rpx;
width: 40rpx;
height: 40rpx;
background-color: #00CE47;
},
}
,
.unselected {
width:40rpx;
height:40rpx;
width: 40rpx;
height: 40rpx;
background-color: #FFFFFF;
border: 1rpx solid #00CE47 ;
border: 1rpx solid #00CE47;
}
.containter{
.containter {
display: flex;
width: 100%;
}
.submit-button {
display: flex;
width:600rpx;
height:60rpx;
width: 600rpx;
height: 60rpx;
align-items: center;
justify-content: center;
background: linear-gradient(-45deg, rgba(87, 225, 181, 1) 0%, rgba(0, 63, 255, 1) 100%);
......@@ -249,12 +264,14 @@
bottom: 60rpx;
margin-left: -300rpx;
}
.submittext {
font-size: 14px;
color: #FFFFFF;
font-family:-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif;
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif;
}
.submithover{
.submithover {
opacity: 0.7;
}
</style>
<template>
<mescroll-body class="containter" ref="mescrollRef" @init="mescrollInit" :down="downOption" :up="upOption" @down="downCallback" @up="upCallback">
<mescroll-body class="containter" ref="mescrollRef" @init="mescrollInit" :down="downOption" :up="upOption" @down="downCallback"
@up="upCallback">
<view class="news-li" v-for="news in dataList" :key="news.id" hover-class="hover" @click="goDetail(news)">
<view class="top-container" >
<view class="top-container">
<view style="width: 500rpx;"><text class="title">{{news.name}}</text></view>
<view :class="news.color=='finish' ? 'status-finish' : 'status' ">
<text :class="news.color=='finish' ? 'status-finish-text' : 'status-text' ">{{news.taskstatus}}</text>
</view>
</view>
<view style="width: 700rpx;" ><text class="des">{{news.check_point}}</text></view>
<view><image class="icon" src="../../static/security-check/safeTime.png"><text class="detail">{{JSON.parse(news.schedule).startdate}}~{{JSON.parse(news.schedule).enddate}}</text></view>
<view style="width: 700rpx;"><text class="des">{{news.check_point}}</text></view>
<view>
<image class="icon" src="../../static/security-check/safeTime.png"><text class="detail">{{JSON.parse(news.schedule).startdate}}~{{JSON.parse(news.schedule).enddate}}</text>
</view>
<view style="display: flex;flex-direction: row;align-items: center;">
<view style="width: 20rpx;margin-right:20rpx;"><image class="icon" src="../../static/security-check/safeSys.png"></view>
<view style="width: 20rpx;margin-right:20rpx;">
<image class="icon" src="../../static/security-check/safeSys.png">
</view>
<view style="display:flex;flex-direction: row; -webkit-flex-wrap: wrap;flex-wrap: wrap">
<view style="display: flex;margin-right:30px" v-for="(data,index) in JSON.parse(news.check_scope)" :key="index" >
<view style="display: flex;margin-right:30px" v-for="(data,index) in JSON.parse(news.check_scope)" :key="index">
<text class="detail">{{data.name}}</text>
</view>
</view>
</view>
<view><image class="icon" src="../../static/security-check/safePerson.png"><text class="detail">{{news.taskexecutor}}</text></view>
<view>
<image class="icon" src="../../static/security-check/safePerson.png"><text class="detail">{{news.taskexecutor}}</text>
</view>
<view><text class="type">{{news.taskTypeTitle}}</text></view>
</view>
</mescroll-body>
......@@ -41,14 +48,13 @@
methods: {
onLoad() {
var that = this;
uni.$on('refreshTaskList',function(data){
uni.$on('refreshTaskList', function(data) {
that.loadData();
})
this.loadData();
},
onUnload(){
uni.$off('refreshTaskList',function(data){
})
onUnload() {
uni.$off('refreshTaskList', function(data) {})
},
/*下拉刷新的回调 */
downCallback() {
......@@ -59,66 +65,69 @@
},
/*获取列表*/
loadData(){
loadData() {
var body = {};
var user = {};
user.id = this.GLOBALUTIL.user.userid;
user.name = encodeURI(this.GLOBALUTIL.user.username);
uni.request({
url: this.GLOBALUTIL.url+'/safety/v1/check-tasks?page_size=200&page_number=1',
url: this.GLOBALUTIL.url + '/safety/v1/check-tasks?page_size=200&page_number=1',
method: 'GET',
header: {
'Accept': 'application/json',
'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8',
'user' : JSON.stringify(user)
'user': JSON.stringify(user)
},
body:null,
body: null,
success: (res) => {
console.log(JSON.stringify(res))
var data = res.data.data;
data.map((opt)=>{
data.map((opt) => {
opt.taskstatus = (this.handleStatus(opt)).text;
opt.color = (this.handleStatus(opt)).color;
var taskexecutor = JSON.parse(opt.excutor);
var taskexecutortext = "";
taskexecutor.map((opt)=>{
taskexecutortext = opt.name +" ";
taskexecutor.map((opt) => {
taskexecutortext = opt.name + " ";
})
opt.taskexecutor = taskexecutortext;
opt.taskTypeTitle = opt.auto_task?"上级下发":"自建任务"
opt.taskTypeTitle = opt.auto_task ? "上级下发" : "自建任务"
})
this.dataList = data;
}
})
},
handleStatus(data){
handleStatus(data) {
var text = "";
var color = ""
if(data.execute_state){
if (data.execute_state) {
var check_scope = JSON.parse(data.check_scope);
text = "已完成" + check_scope.length +"/" + check_scope.length;
text = "已完成" + check_scope.length + "/" + check_scope.length;
color = "finish"
}else{
} else {
var check_scope = JSON.parse(data.check_scope);
var checked = 0;
check_scope.map((opt)=>{
if(opt.execute_state){
check_scope.map((opt) => {
if (opt.execute_state) {
checked++
}
})
if(checked == check_scope.length){
text = "已完成 " + check_scope.length +"/" + check_scope.length;
if (checked == check_scope.length) {
text = "已完成 " + check_scope.length + "/" + check_scope.length;
color = "finish"
}else{
text = '未完成 '+checked+'/'+check_scope.length;
} else {
text = '未完成 ' + checked + '/' + check_scope.length;
color = "unfinish"
}
}
return {text:text,color:color}
return {
text: text,
color: color
}
},
goDetail(data){
goDetail(data) {
uni.navigateTo({
url:"./select-checkobject?taskId="+data.id
url: "./select-checkobject?taskId=" + data.id
})
}
}
......@@ -127,14 +136,15 @@
<style>
/*说明*/
.notice{
.notice {
font-size: 30upx;
padding: 40upx 0;
border-bottom: 1upx solid #eee;
text-align: center;
}
/*展示上拉加载的数据列表*/
.news-li{
.news-li {
font-size: 32upx;
padding: 32upx;
border-bottom: 1upx solid #eee;
......@@ -142,69 +152,82 @@
display: flex;
flex-direction: column;
}
.news-li .new-content{
.news-li .new-content {
font-size: 28upx;
margin-top: 10upx;
margin-left: 20upx;
color: #666;
}
.icon {
width:20rpx;
height:20rpx;
width: 20rpx;
height: 20rpx;
margin-right: 20rpx;
}
.top-container {
display: flex;
flex-direction: row;
align-items: center;
}
.status {
width:170rpx;
height:35rpx;
background-color: rgba(242,115,115,0.10);
width: 170rpx;
height: 35rpx;
background-color: rgba(242, 115, 115, 0.10);
border-radius: 50rpx;
display: flex;
justify-content: center;
align-items: center;
margin-left: 35rpx;
}
.status-finish {
width:170rpx;
height:35rpx;
background-color: rgba(47,190,178,0.10);
width: 170rpx;
height: 35rpx;
background-color: rgba(47, 190, 178, 0.10);
border-radius: 50rpx;
display: flex;
justify-content: center;
align-items: center;
margin-left: 35rpx;
}
.status-text{
.status-text {
color: #F27373;
font-size: 11px;
}
.status-finish-text{
.status-finish-text {
color: #2FBEB2;
font-size: 11px;
}
.hover{
.hover {
opacity: 0.7;
}
.title {
font-size: 17px;
font-weight: 300;
}
.des {
font-weight:200;
font-size:14px;
color:#676767
font-weight: 200;
font-size: 14px;
color: #676767
}
.detail {
font-size:14px;
font-size: 14px;
}
.type {
font-size:14px;
font-size: 14px;
}
.containter{
.containter {
display: flex;
width: 100%;
}
......
......@@ -13,33 +13,27 @@
<button hover-class="submithover" @click="onSubmitClick" class="submit-button">
<text class="submittext">开始检查</text>
</button>
<Picker
mode="selector"
@confirm="onConfirm"
ref="picker"
themeColor="#f00"
:selectList="itemList"
></Picker>
<Picker mode="selector" @confirm="onConfirm" ref="picker" themeColor="#f00" :selectList="itemList"></Picker>
</view>
</template>
<script>
import Picker from "@/components/w-picker/w-picker.vue";
import Picker from "@/components/w-picker/w-picker.vue";
export default {
data() {
return {
showActionSheet: false,
itemList: [],
taskId:"",
selObject:"",
selObjectText:"",
selectItem:"",
selectItemText:"",
objectarr:[],
itemarr:[],
curType:"object",
objectData:[],
itemData:[]
taskId: "",
selObject: "",
selObjectText: "",
selectItem: "",
selectItemText: "",
objectarr: [],
itemarr: [],
curType: "object",
objectData: [],
itemData: []
}
},
onLoad(option) {
......@@ -53,103 +47,109 @@ import Picker from "@/components/w-picker/w-picker.vue";
closeActionSheet: function() {
this.showActionSheet = false
},
onConfirm(data){
if(this.curType == "object"){
onConfirm(data) {
if (this.curType == "object") {
this.selObject = data.checkArr.value;
this.selObjectText = data.checkArr.label;
this.itemarr = [];
this.selectItem = "";
this.selectItemText = "";
this.loadItemData();
}else{
} else {
this.selectItem = data.checkArr.value;
this.selectItemText = data.checkArr.label;
}
},
onSubmitClick(){
onSubmitClick() {
var objectData = this.findObjectData();
var itemData = this.findItemData();
uni.navigateTo({
url:"security-checkitem"
url: "security-checkitem"
})
uni.$emit("sendCheckItem",[objectData,itemData,this.taskId]);
uni.$emit("sendCheckItem", [objectData, itemData, this.taskId]);
},
showObjectPicker(){
showObjectPicker() {
this.itemList = this.objectarr;
this.curType = "object"
this.$refs.picker.show()
},
showTypePicker(){
if(this.selObject == ""){
showTypePicker() {
if (this.selObject == "") {
return
}
this.itemList = this.itemarr;
this.curType = "item";
this.$refs.picker.show()
},
loadTaskObject(){
loadTaskObject() {
var user = {};
user.id = this.GLOBALUTIL.user.userid;
user.name = encodeURI(this.GLOBALUTIL.user.username);
uni.request({
url: this.GLOBALUTIL.url+'/safety/v1/check-task-scope/'+this.taskId,
url: this.GLOBALUTIL.url + '/safety/v1/check-task-scope/' + this.taskId,
method: 'GET',
header: {
'Accept': 'application/json',
'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8',
'user' : JSON.stringify(user)
'user': JSON.stringify(user)
},
body:null,
body: null,
success: (res) => {
var data = res.data;
this.objectData = data;
var itemList = data.map((opt)=>{
var status = opt.execute_state?"(已完成)":""
return {label:opt.name+status,value:opt.id};
var itemList = data.map((opt) => {
var status = opt.execute_state ? "(已完成)" : ""
return {
label: opt.name + status,
value: opt.id
};
})
this.objectarr = itemList;
this.itemList = itemList;
}
})
},
loadItemData(){
loadItemData() {
var user = {};
user.id = this.GLOBALUTIL.user.userid;
user.name = encodeURI(this.GLOBALUTIL.user.username);
uni.request({
url: this.GLOBALUTIL.url+'/safety/v1/check-task-lists/'+this.taskId+"?check_site_id="+this.selObject,
url: this.GLOBALUTIL.url + '/safety/v1/check-task-lists/' + this.taskId + "?check_site_id=" + this.selObject,
method: 'GET',
header: {
'Accept': 'application/json',
'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8',
'user' : JSON.stringify(user)
'user': JSON.stringify(user)
},
body:null,
body: null,
success: (res) => {
var data = res.data;
this.itemData = data;
var itemList = data.map((opt)=>{
var status = opt.execute_state?"(已完成)":""
return {label:opt.content+status,value:opt.id};
var itemList = data.map((opt) => {
var status = opt.execute_state ? "(已完成)" : ""
return {
label: opt.content + status,
value: opt.id
};
})
this.itemarr = itemList;
}
})
},
findObjectData(){
findObjectData() {
var obj = {};
this.objectData.map((opt)=>{
if(opt.id == this.selObject){
this.objectData.map((opt) => {
if (opt.id == this.selObject) {
obj = opt;
}
})
return obj;
},
findItemData(){
findItemData() {
var obj = {};
this.itemData.map((opt)=>{
if(opt.id == this.selectItem){
this.itemData.map((opt) => {
if (opt.id == this.selectItem) {
obj = opt;
}
})
......@@ -189,21 +189,25 @@ import Picker from "@/components/w-picker/w-picker.vue";
color: #8f8f94;
width: 100%;
}
.loginbtn {
width:180rpx;
height:200rpx;
width: 180rpx;
height: 200rpx;
}
.login-hover {
width:200rpx;
height:200rpx;
background-color:#00CE47;
width: 200rpx;
height: 200rpx;
background-color: #00CE47;
}
.testview {
width:209rpx;
height:200rpx;
background-color:linear-gradient(red, yellow, blue);
width: 209rpx;
height: 200rpx;
background-color: linear-gradient(red, yellow, blue);
}
.location-container{
.location-container {
display: flex;
flex-direction: row;
align-items: center;
......@@ -213,49 +217,58 @@ import Picker from "@/components/w-picker/w-picker.vue";
border-bottom: 1rpx solid #898989;
}
.arrow-right{
width:40rpx;
height:40rpx;
.arrow-right {
width: 40rpx;
height: 40rpx;
}
.camera-button {
display:flex;
display: flex;
flex-direction: row;
align-items: center;
justify-content: center;
width:200rpx;
width: 200rpx;
height: 200rpx;
}
.camera {
width:50rpx;
height:50rpx;
width: 50rpx;
height: 50rpx;
}
.submit-button {
display: flex;
width:600rpx;
height:60rpx;
width: 600rpx;
height: 60rpx;
align-items: center;
justify-content: center;
background: linear-gradient(-45deg, rgba(87, 225, 181, 1) 0%, rgba(0, 63, 255, 1) 100%);
border-radius: 15rpx;
margin-top: 80rpx;
}
.submittext {
font-size: 14px;
color: #FFFFFF;
font-family:-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif;
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif;
}
.submithover{
.submithover {
opacity: 0.7;
}
.detail {
width:400rpx;
height:100rpx;
width: 400rpx;
height: 100rpx;
border: 1rpx solid #000000;
}
.status_bar {
height: var(--status-bar-height);
width: 100%;
}
.value {
font-size: 30rpx;
color: #000000;
......
<template>
<view style="width: 100%;height: 100%;padding: 10px;">
<scroll-view scroll-y="true" class="scroll-Y" show-scrollbar="false" >
<scroll-view scroll-y="true" class="scroll-Y" show-scrollbar="false">
<view style="display: flex;flex-direction: row;border-bottom: 1rpx solid #4BBC9A;align-items: center;">
<image class="tip" src="../../static/security-submit/tip.png">
<text class="toptitle">整改项提交</text>
......
......@@ -50,6 +50,7 @@
}
},
methods:{
clickSubmit(){
uni.navigateTo({
url:"../Security-Submit/index"
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment