zhangqun 11 months ago
commit 4c0cb1181a
  1. 95
      pages/investigation/components/investigation-item.vue
  2. 82
      pages/investigation/components/investigation-item2.vue
  3. 19
      pages/investigation/components/problem-tree-item.vue
  4. 74
      pages/investigation/task.vue
  5. 2
      pages/logIn/logIn.vue

@ -1,13 +1,10 @@
<template> <template>
<view> <view>
<view class="investigation-item" <view class="investigation-item" :class="investigationSelect === index ? 'active' : ''"
:class="investigationSelect === index ? 'active' : ''" v-for="(item, index) in investigationList" :key="item.name" @click="handleSelect(item, index)">
v-for="(item, index) in investigationList"
:key="item.name"
@click="handleSelect(item, index)"
>
<text>{{ item.name }}</text> <text>{{ item.name }}</text>
<uni-icons type="checkmarkempty" size="24" :style="{color: '#2663BF', visibility: investigationSelect === index ? 'visible' : 'hidden'}"/> <uni-icons type="checkmarkempty" size="24"
:style="{color: '#2663BF', visibility: investigationSelect === index ? 'visible' : 'hidden'}" />
</view> </view>
<u-popup :show="showInvestigationDetail" @close="showInvestigationDetail = false"> <u-popup :show="showInvestigationDetail" @close="showInvestigationDetail = false">
<view class="custom-pop-head"> <view class="custom-pop-head">
@ -16,57 +13,35 @@
<view class="right" @click="investigationDetailHandle">确认</view> <view class="right" @click="investigationDetailHandle">确认</view>
</view> </view>
<view class="box" style="max-height: 800rpx;overflow-y: auto"> <view class="box" style="max-height: 800rpx;overflow-y: auto">
<view class="investigation-item" <view class="investigation-item" v-for="(item, index) in investigationDetailList" :key="index"
v-for="(item, index) in investigationDetailList" style="width: 96%; padding: 0">
:key="index"
style="width: 96%; padding: 0"
>
<view class="detail-item" v-if="item.type === 'number' || item.type === '1'"> <view class="detail-item" v-if="item.type === 'number' || item.type === '1'">
<uni-forms-item :label="item.name" label-width="300px" style="display: flex;align-items: center"> <uni-forms-item :label="item.name" label-width="300px"
<u-input style="display: flex;align-items: center">
placeholder="请输入" <u-input placeholder="请输入" border="none" v-model="item.standar" inputAlign="right"
border="none" type="number">
v-model="item.standar" <u-text :text="item.unit" slot="suffix" margin="0 3px 0 0" type="tips"></u-text>
inputAlign="right"
type="number"
>
<u-text
:text="item.unit"
slot="suffix"
margin="0 3px 0 0"
type="tips"
></u-text>
</u-input> </u-input>
</uni-forms-item> </uni-forms-item>
</view> </view>
<view class="detail-item" v-else-if="item.type === 'text' || item.type === '2'"> <view class="detail-item" v-else-if="item.type === 'text' || item.type === '2'">
<uni-forms-item :label="item.name" label-width="300px" style="display: flex;align-items: center"> <uni-forms-item :label="item.name" label-width="300px"
<u-input style="display: flex;align-items: center">
placeholder="请输入" <u-input placeholder="请输入" border="none" v-model="item.standar" inputAlign="right" />
border="none"
v-model="item.standar"
inputAlign="right"
/>
</uni-forms-item> </uni-forms-item>
</view> </view>
<view class="detail-item" v-else-if="item.type === 'check' || item.type === '3'"> <view class="detail-item" v-else-if="item.type === 'check' || item.type === '3'">
<uni-forms-item :label="item.name" label-width="300px" style="display: flex;align-items: center"> <uni-forms-item :label="item.name" label-width="300px"
<u-checkbox style="display: flex;align-items: center">
v-model="item.standar" <u-checkbox v-model="item.standar" :customStyle="{justifyContent: 'space-between'}"
:customStyle="{justifyContent: 'space-between'}" :name="'sdfs'" />
:name="'sdfs'"
/>
</uni-forms-item> </uni-forms-item>
</view> </view>
<view class="detail-item" v-else-if="item.type === 'upload' || item.type === '4'"> <view class="detail-item" v-else-if="item.type === 'upload' || item.type === '4'">
<uni-forms-item :label="item.name" label-position="top" label-width="300px" style="display: flex;align-items: center" /> <uni-forms-item :label="item.name" label-position="top" label-width="300px"
<u-upload style="display: flex;align-items: center" />
:fileList="item.fileList" <u-upload :fileList="item.fileList" @afterRead="(e) => afterRead(e, item)"
@afterRead="(e) => afterRead(e, item)" @delete="(e) => deletePic(e, item)" name="1" :maxCount="1"></u-upload>
@delete="(e) => deletePic(e, item)"
name="1"
:maxCount="1"
></u-upload>
</view> </view>
</view> </view>
</view> </view>
@ -107,8 +82,7 @@ export default {
} }
}, },
// //
onShow() { onShow() {},
},
// //
computed: {}, computed: {},
// //
@ -131,6 +105,10 @@ export default {
async afterRead(event, item) { async afterRead(event, item) {
// multiple true , file // multiple true , file
const id = this.uuid() const id = this.uuid()
if (!item.fileList) {
item.fileList = []
}
this.$forceUpdate()
item.fileList.push({ item.fileList.push({
id, id,
...event.file, ...event.file,
@ -175,7 +153,9 @@ export default {
}) })
}, },
getData2(sid) { getData2(sid) {
this.$request.globalRequest('/hiddenDanger/highDanger/getImportDangerInfo', {sid}, 'GET').then(res => { this.$request.globalRequest('/hiddenDanger/highDanger/getImportDangerInfo', {
sid
}, 'GET').then(res => {
if (res.code == 200) { if (res.code == 200) {
console.log(res.result) console.log(res.result)
this.investigationDetailList = res.result.map(item => { this.investigationDetailList = res.result.map(item => {
@ -214,8 +194,7 @@ export default {
this.$emit('select', this.investigationList[this.investigationSelect], this.investigationDetailList) this.$emit('select', this.investigationList[this.investigationSelect], this.investigationDetailList)
} }
}, },
onReady() { onReady() {},
},
// //
onUnload() { onUnload() {
@ -228,8 +207,7 @@ export default {
}, 1500); }, 1500);
}, },
// //
onReachBottom() { onReachBottom() {},
},
} }
</script> </script>
@ -249,28 +227,34 @@ page {
justify-content: space-between; justify-content: space-between;
align-items: center; align-items: center;
overflow: hidden; overflow: hidden;
&.active { &.active {
background: #DFEBF8; background: #DFEBF8;
} }
} }
.detail-item { .detail-item {
width: 100%; width: 100%;
background: #F0F3F7; background: #F0F3F7;
padding: 20rpx 30rpx; padding: 20rpx 30rpx;
border-radius: 8rpx; border-radius: 8rpx;
box-sizing: border-box; box-sizing: border-box;
/deep/ .uni-forms-item__content { /deep/ .uni-forms-item__content {
justify-content: flex-end; justify-content: flex-end;
text-align: right; text-align: right;
display: flex; display: flex;
} }
/deep/ .uni-forms-item { /deep/ .uni-forms-item {
margin-bottom: 0; margin-bottom: 0;
} }
/deep/ .uni-forms-item__label { /deep/ .uni-forms-item__label {
font-size: 16px; font-size: 16px;
} }
} }
.custom-pop-head { .custom-pop-head {
width: 100%; width: 100%;
padding: 20rpx; padding: 20rpx;
@ -280,12 +264,15 @@ page {
justify-content: space-between; justify-content: space-between;
border-bottom: 1px solid #E6E6E6; border-bottom: 1px solid #E6E6E6;
margin-bottom: 20rpx; margin-bottom: 20rpx;
.left { .left {
color: #666666; color: #666666;
} }
.title { .title {
font-size: 16px; font-size: 16px;
} }
.right { .right {
color: #2663BF; color: #2663BF;
} }

@ -7,57 +7,32 @@
<view class="right" @click="investigationDetailHandle">确认</view> <view class="right" @click="investigationDetailHandle">确认</view>
</view> </view>
<view class="box" style="max-height: 800rpx;overflow-y: auto"> <view class="box" style="max-height: 800rpx;overflow-y: auto">
<view class="investigation-item" <view class="investigation-item" v-for="(item, index) in investigationDetailList" :key="index"
v-for="(item, index) in investigationDetailList" style="width: 96%; padding: 0">
:key="index"
style="width: 96%; padding: 0"
>
<view class="detail-item" v-if="item.type === 'number' || item.type === '1'"> <view class="detail-item" v-if="item.type === 'number' || item.type === '1'">
<uni-forms-item :label="item.name" label-width="300px" style="display: flex;align-items: center"> <uni-forms-item :label="item.name" label-width="500rpx" style="display: flex;align-items: center">
<u-input <u-input placeholder="请输入" border="none" v-model="item.standar" inputAlign="right"
placeholder="请输入" type="number">
border="none" <u-text :text="item.unit" slot="suffix" margin="0 3px 0 0" type="tips"></u-text>
v-model="item.standar"
inputAlign="right"
type="number"
>
<u-text
:text="item.unit"
slot="suffix"
margin="0 3px 0 0"
type="tips"
></u-text>
</u-input> </u-input>
</uni-forms-item> </uni-forms-item>
</view> </view>
<view class="detail-item" v-else-if="item.type === 'text' || item.type === '2'"> <view class="detail-item" v-else-if="item.type === 'text' || item.type === '2'">
<uni-forms-item :label="item.name" label-width="300px" style="display: flex;align-items: center"> <uni-forms-item :label="item.name" label-width="500rpx" style="display: flex;align-items: center">
<u-input <u-input placeholder="请输入" border="none" v-model="item.standar" inputAlign="right" />
placeholder="请输入"
border="none"
v-model="item.standar"
inputAlign="right"
/>
</uni-forms-item> </uni-forms-item>
</view> </view>
<view class="detail-item" v-else-if="item.type === 'check' || item.type === '3'"> <view class="detail-item" v-else-if="item.type === 'check' || item.type === '3'">
<uni-forms-item :label="item.name" label-width="300px" style="display: flex;align-items: center"> <uni-forms-item :label="item.name" label-width="500rpx" style="display: flex;align-items: center">
<u-checkbox <u-checkbox v-model="item.standar" :customStyle="{justifyContent: 'space-between'}"
v-model="item.standar" :name="'sdfs'" />
:customStyle="{justifyContent: 'space-between'}"
:name="'sdfs'"
/>
</uni-forms-item> </uni-forms-item>
</view> </view>
<view class="detail-item" v-else-if="item.type === 'upload' || item.type === '4'"> <view class="detail-item" v-else-if="item.type === 'upload' || item.type === '4'">
<uni-forms-item :label="item.name" label-position="top" label-width="300px" style="display: flex;align-items: center" /> <uni-forms-item :label="item.name" label-position="top" label-width="300px"
<u-upload style="display: flex;align-items: center" />
:fileList="item.fileList" <u-upload :fileList="item.fileList" @afterRead="(e) => afterRead(e, item)"
@afterRead="(e) => afterRead(e, item)" @delete="(e) => deletePic(e, item)" name="1" :maxCount="1"></u-upload>
@delete="(e) => deletePic(e, item)"
name="1"
:maxCount="1"
></u-upload>
</view> </view>
</view> </view>
</view> </view>
@ -97,6 +72,9 @@
mounted() { mounted() {
if (this.json.name) { if (this.json.name) {
this.investigationDetailList = this.json.extraConfigs.map(item => { this.investigationDetailList = this.json.extraConfigs.map(item => {
if (!item.fileList) {
item.fileList = []
}
switch (item.type) { switch (item.type) {
// case "1": // case "1":
// item.standar = 0 // item.standar = 0
@ -132,8 +110,7 @@
} }
}, },
// //
onShow() { onShow() {},
},
// //
computed: {}, computed: {},
// //
@ -154,6 +131,7 @@
}, },
// //
async afterRead(event, item) { async afterRead(event, item) {
// multiple true , file // multiple true , file
const id = this.uuid() const id = this.uuid()
item.fileList.push({ item.fileList.push({
@ -193,7 +171,9 @@
}) })
}, },
getData() { getData() {
this.$request.globalRequest('/hiddenDanger/highDanger/getImportDangerInfo', {sid: this.$props.sid}, 'GET').then(res => { this.$request.globalRequest('/hiddenDanger/highDanger/getImportDangerInfo', {
sid: this.$props.sid
}, 'GET').then(res => {
if (res.code == 200) { if (res.code == 200) {
this.investigationDetailList = res.result.map(item => { this.investigationDetailList = res.result.map(item => {
switch (item.type) { switch (item.type) {
@ -234,8 +214,7 @@
this.$emit('select', this.json) this.$emit('select', this.json)
} }
}, },
onReady() { onReady() {},
},
// //
onUnload() { onUnload() {
@ -248,8 +227,7 @@
}, 1500); }, 1500);
}, },
// //
onReachBottom() { onReachBottom() {},
},
} }
</script> </script>
@ -269,28 +247,34 @@
justify-content: space-between; justify-content: space-between;
align-items: center; align-items: center;
overflow: hidden; overflow: hidden;
&.active { &.active {
background: #DFEBF8; background: #DFEBF8;
} }
} }
.detail-item { .detail-item {
width: 100%; width: 100%;
background: #F0F3F7; background: #F0F3F7;
padding: 20rpx 30rpx; padding: 20rpx 30rpx;
border-radius: 8rpx; border-radius: 8rpx;
box-sizing: border-box; box-sizing: border-box;
/deep/ .uni-forms-item__content { /deep/ .uni-forms-item__content {
justify-content: flex-end; justify-content: flex-end;
text-align: right; text-align: right;
display: flex; display: flex;
} }
/deep/ .uni-forms-item { /deep/ .uni-forms-item {
margin-bottom: 0; margin-bottom: 0;
} }
/deep/ .uni-forms-item__label { /deep/ .uni-forms-item__label {
font-size: 16px; font-size: 16px;
} }
} }
.custom-pop-head { .custom-pop-head {
width: 100%; width: 100%;
padding: 20rpx; padding: 20rpx;
@ -300,15 +284,17 @@
justify-content: space-between; justify-content: space-between;
border-bottom: 1px solid #E6E6E6; border-bottom: 1px solid #E6E6E6;
margin-bottom: 20rpx; margin-bottom: 20rpx;
.left { .left {
color: #666666; color: #666666;
} }
.title { .title {
font-size: 16px; font-size: 16px;
} }
.right { .right {
color: #2663BF; color: #2663BF;
} }
} }
</style> </style>

@ -51,6 +51,7 @@ export default {
originList: [], originList: [],
problemTreeSelect: null, problemTreeSelect: null,
problemTreeSelectList: [], problemTreeSelectList: [],
problemTreeSelectAllList: [],
problemTreeSelectConfirmList: [], problemTreeSelectConfirmList: [],
}; };
}, },
@ -74,14 +75,15 @@ export default {
.globalRequest("/hiddenDanger/highDanger/getDangerItems", {}, "GET") .globalRequest("/hiddenDanger/highDanger/getDangerItems", {}, "GET")
.then((res) => { .then((res) => {
if (res.code == 200) { if (res.code == 200) {
this.originList = res.result; this.originList =JSON.parse(JSON.stringify( res.result));
this.problemTreeSelectList = res.result; this.problemTreeSelectList =JSON.parse(JSON.stringify( res.result));
if(this.hiddenDangerList2.length>0) { this.problemTreeSelectAllList=JSON.parse(JSON.stringify( res.result))
this.problemTreeSelectConfirmList = this.hiddenDangerList2 // if(this.hiddenDangerList2.length>0) {
console.log(this.hiddenDangerList2) // // this.problemTreeSelectConfirmList = this.hiddenDangerList2
this.problemTreeSelectList = this.hiddenDangerList2[1].children // console.log(this.hiddenDangerList2)
this.problemTreeSelect = this.hiddenDangerList2[2].id // this.problemTreeSelectList = this.hiddenDangerList2[1].children
} // this.problemTreeSelect = this.hiddenDangerList2[2].id
// }
} }
}); });
}, },
@ -90,6 +92,7 @@ export default {
this.$.open(even); this.$.open(even);
}, },
handleSelectProblem(item, index) { handleSelectProblem(item, index) {
console.log(11111)
this.problemTreeSelectConfirmList[Number(item.nlevel) - 1] = item; this.problemTreeSelectConfirmList[Number(item.nlevel) - 1] = item;
if (item.children && item.children.length > 0) { if (item.children && item.children.length > 0) {
this.problemTreeSelectList = item.children; this.problemTreeSelectList = item.children;

@ -376,7 +376,7 @@
<view class="title">存在隐患</view> <view class="title">存在隐患</view>
<u-row :gutter="0" justify="flex-start" style="flex-wrap: wrap"> <u-row :gutter="0" justify="flex-start" style="flex-wrap: wrap">
<view <view
v-for="item in hiddenDangerList" v-for="(item,index) in hiddenDangerList"
:key="item" :key="item"
style="width: 100%" style="width: 100%"
> >
@ -386,7 +386,7 @@
{{ item.dangerProblem }} {{ item.dangerProblem }}
</view> </view>
<view> <view>
<view class="check" @click="onHiddenDangerList(item)"> <view class="check" @click="onHiddenDangerList(item,index)">
<image <image
style="width: 10px; height: 16px" style="width: 10px; height: 16px"
src="../../static/scimg/right6.png" src="../../static/scimg/right6.png"
@ -438,11 +438,10 @@
label-width="100px" label-width="100px"
style="display: flex; align-items: center" style="display: flex; align-items: center"
/> />
<view v-if="hiddenDangerList2.length > 0"
<view v-if="this.hiddenDangerList2.length > 0" >{{ hiddenDangerList2[0].itemname }}/{{
>{{ this.hiddenDangerList2[0].itemname }}/{{ hiddenDangerList2[1].itemname
this.hiddenDangerList2[1].itemname }}/{{ hiddenDangerList2[2].itemname }}</view
}}/{{ this.hiddenDangerList2[2].itemname }}</view
> >
<!-- <u-input <!-- <u-input
@ -451,8 +450,8 @@
type="textarea" type="textarea"
v-else v-else
/> --> /> -->
<view v-else-if="this.dangerProblem">{{ <view v-else-if="dangerProblem">{{
this.dangerProblem dangerProblem
}}</view> }}</view>
<view v-else>请选择</view> <view v-else>请选择</view>
<!-- --> <!-- -->
@ -475,6 +474,7 @@
label-position="top" label-position="top"
label-width="200px" label-width="200px"
/> />
<u-upload <u-upload
:fileList="fileList" :fileList="fileList"
@afterRead="(e) => afterRead(e, 'fileList')" @afterRead="(e) => afterRead(e, 'fileList')"
@ -694,10 +694,16 @@ export default {
hiddenDangerList2: [], hiddenDangerList2: [],
hiddenDangerList3: [], hiddenDangerList3: [],
dangerProblem: "", dangerProblem: "",
//
addInvestigationInfo:{
type:'',
index:0
}
}; };
}, },
methods: { methods: {
showInvestigationTag(v) { showInvestigationTag(v) {
console.log(v)
this.showInvestigation2 = true; this.showInvestigation2 = true;
this.showInvestigation2Item = v; this.showInvestigation2Item = v;
}, },
@ -726,8 +732,11 @@ export default {
this.showInvestigation2Item = {}; this.showInvestigation2Item = {};
this.showInvestigation2 = false; this.showInvestigation2 = false;
}, },
onHiddenDangerList(v) { onHiddenDangerList(v,index) {
console.log(this.problemTreeSelectConfirmList) this.addInvestigationInfo={
type:'edit',
index:index
}
this.showProblem = true; this.showProblem = true;
this.dangerProblem = v.dangerProblem; this.dangerProblem = v.dangerProblem;
this.describe = { this.describe = {
@ -738,10 +747,22 @@ export default {
hdPic: v.hdPic, hdPic: v.hdPic,
hdInfo: v.hdInfo, hdInfo: v.hdInfo,
}; };
console.log(v)
// this.fileList = [v.hdPic]; let newArr=[]
try{
newArr= v.dangerProblem.split('/')
}catch(e){
newArr=['','','']
}
this.hiddenDangerList2=[{id:v.bigCategory,itemname:newArr[0]},
{id:v.smallCategory,itemname:newArr[1]},
{id:v.hdTerm,itemname:newArr[2]}]
// console.log(this.hiddenDangerList2)
this.fileList = [{url:v.hdPic}];
}, },
add() { add() {
// this.addInvestigationInfo.type='add'
this.$set(this.addInvestigationInfo,'type','add')
this.showProblem = true; this.showProblem = true;
this.hiddenDangerList2 = []; this.hiddenDangerList2 = [];
this.dangerProblem = ''; this.dangerProblem = '';
@ -868,6 +889,7 @@ export default {
JSON.stringify(this.hiddenDangerList3) JSON.stringify(this.hiddenDangerList3)
); );
} }
console.log(this.hiddenDangerList2)
}, },
select(v) { select(v) {
@ -912,7 +934,8 @@ export default {
} }
}, },
investigationHandle2() { investigationHandle2() {
this.hiddenDangerList.push({ if(this.hiddenDangerList2.length>0){
let form={
bigCategory: this.hiddenDangerList2[0].id, bigCategory: this.hiddenDangerList2[0].id,
bigCategoryName: this.hiddenDangerList2[0].itemname, bigCategoryName: this.hiddenDangerList2[0].itemname,
smallCategory: this.hiddenDangerList2[1].id, smallCategory: this.hiddenDangerList2[1].id,
@ -920,9 +943,17 @@ export default {
hdTerm: this.hiddenDangerList2[2].id, hdTerm: this.hiddenDangerList2[2].id,
hdTermName: this.hiddenDangerList2[2].itemname, hdTermName: this.hiddenDangerList2[2].itemname,
hdDesc: this.describe.hdDesc, hdDesc: this.describe.hdDesc,
hdPic: this.fileList.url, hdPic: this.fileList.length>0?this.fileList[0].url:'',
hdInfo: this.describe.hdInfo, hdInfo: this.describe.hdInfo,
}); dangerProblem:this.hiddenDangerList2[0].itemname+'/'+ this.hiddenDangerList2[1].itemname+'/'+ this.hiddenDangerList2[2].itemname
}
if(this.addInvestigationInfo.type=='add'){
this.hiddenDangerList.push(form);
}else{
this.$set(this.hiddenDangerList,this.addInvestigationInfo.index,form)
}
}
this.showProblem = false; this.showProblem = false;
}, },
investigationDetailHandle() { investigationDetailHandle() {
@ -1004,6 +1035,7 @@ export default {
url: resultInfo.result, url: resultInfo.result,
}) })
); );
console.log(this[key])
} else { } else {
this.$.toast("上传失败"); this.$.toast("上传失败");
this[key].splice( this[key].splice(
@ -1019,7 +1051,13 @@ export default {
submit(temporary) { submit(temporary) {
console.log(this.formData); console.log(this.formData);
console.log(this.investigationSelectList); console.log(this.investigationSelectList);
console.log(this.hiddenDangerList); console.log({
...this.formData,
businessId: this.businessId,
extraConfigs: extraConfigs,
describe: this.hiddenDangerList,
temporary,
});
let extraConfigs = []; let extraConfigs = [];
this.investigationSelectList.map((r) => { this.investigationSelectList.map((r) => {
r.extraConfigs.map((s) => { r.extraConfigs.map((s) => {
@ -1310,6 +1348,8 @@ export default {
width: 100%; width: 100%;
padding: 20rpx; padding: 20rpx;
box-sizing: border-box; box-sizing: border-box;
max-height: calc(100vh - 100px);
overflow: auto;
.detail-item { .detail-item {
margin-bottom: 20rpx; margin-bottom: 20rpx;
} }

@ -167,7 +167,7 @@ export default {
this.isDisabled = true this.isDisabled = true
this.$request.globalRequest(url, datas, 'POST').then(res => { this.$request.globalRequest(url, datas, 'POST').then(res => {
if(res.code === 200){ if(res.code === 200){
this.$.toast('成功') this.$.toast('登录成功')
this.$.setData('token',res.result) this.$.setData('token',res.result)
this.$.setData('userInfo', { username: res.result }) this.$.setData('userInfo', { username: res.result })
setTimeout(() => { setTimeout(() => {

Loading…
Cancel
Save