update
This commit is contained in:
parent
451116e601
commit
dce88d549e
@ -222,7 +222,6 @@ export default {
|
|||||||
userInfo = JSON.parse(userInfo);
|
userInfo = JSON.parse(userInfo);
|
||||||
if (userInfo) {
|
if (userInfo) {
|
||||||
this.useInfo = JSON.parse(JSON.stringify(userInfo));
|
this.useInfo = JSON.parse(JSON.stringify(userInfo));
|
||||||
console.log("this.useInfo", this.useInfo);
|
|
||||||
}
|
}
|
||||||
// 拿到服务区的数据
|
// 拿到服务区的数据
|
||||||
this.handleGetServerpartList();
|
this.handleGetServerpartList();
|
||||||
@ -230,7 +229,6 @@ export default {
|
|||||||
methods: {
|
methods: {
|
||||||
// 跳转详情进行操作
|
// 跳转详情进行操作
|
||||||
handleGoDetail(obj) {
|
handleGoDetail(obj) {
|
||||||
console.log("obj", obj);
|
|
||||||
// 判断是否是异常的
|
// 判断是否是异常的
|
||||||
if (obj.situation === 1) {
|
if (obj.situation === 1) {
|
||||||
this.$util.toNextRoute(
|
this.$util.toNextRoute(
|
||||||
|
|||||||
@ -7,29 +7,123 @@
|
|||||||
: '100%',
|
: '100%',
|
||||||
}" :scroll-y="true">
|
}" :scroll-y="true">
|
||||||
<view class="topContent">
|
<view class="topContent">
|
||||||
<view class="placeBox">
|
<view class="placeBox"
|
||||||
<image class="itemIcon" src="/static/images/mbwa/fixed.svg" />
|
:style="{ backgroundImage: `url(${extendObj.situation === 0 ? 'https://eshangtech.com/minTestImg/normalBg.png' : 'https://eshangtech.com/minTestImg/errorBg.png'})` }">
|
||||||
<view class="placeName">{{ detailObj.placeName || "-" }}</view>
|
<view class="placeBoxTop">
|
||||||
<view class="statusBox" :style="{
|
<view class="placeLeft">
|
||||||
color:
|
<image class="itemIcon" src="/static/images/mbwa/fixed.svg" />
|
||||||
|
<view class="placeName">{{ detailObj.placeName || "-" }}</view>
|
||||||
|
</view>
|
||||||
|
<view class="statusBox" :style="{
|
||||||
|
color:
|
||||||
|
extendObj.situation === 0
|
||||||
|
? '#139942'
|
||||||
|
: extendObj.situation === 1
|
||||||
|
? '#F75031'
|
||||||
|
: '',
|
||||||
|
background:
|
||||||
|
extendObj.situation === 0
|
||||||
|
? '#EBF7EF'
|
||||||
|
: extendObj.situation === 1
|
||||||
|
? '#FEF0ED'
|
||||||
|
: '',
|
||||||
|
}">{{
|
||||||
extendObj.situation === 0
|
extendObj.situation === 0
|
||||||
? '#139942'
|
? "正常情况"
|
||||||
: extendObj.situation === 1
|
: extendObj.situation === 1
|
||||||
? '#F75031'
|
? "急需处理"
|
||||||
: '',
|
: "-"
|
||||||
background:
|
}}</view>
|
||||||
extendObj.situation === 0
|
|
||||||
? '#EBF7EF'
|
</view>
|
||||||
: extendObj.situation === 1
|
|
||||||
? '#FEF0ED'
|
|
||||||
: '',
|
<view class="placeBoxBottom">
|
||||||
}">{{
|
<view class="topBox">巡检进度</view>
|
||||||
extendObj.situation === 0
|
|
||||||
? "正常情况"
|
<view class="progressContent">
|
||||||
: extendObj.situation === 1
|
<view class="progressItem">
|
||||||
? "急需处理"
|
<view class="itemLeft">
|
||||||
: "-"
|
<image class="img" :src="user.Membership_Headimage" />
|
||||||
}}</view>
|
<image class="successIcon" src="/static/images/mbwa/successSmallIcon.svg" />
|
||||||
|
</view>
|
||||||
|
<view class="itemRight">
|
||||||
|
<view class="itemTop">
|
||||||
|
<text class="name">{{ detailObj.userName || "-" }}</text>
|
||||||
|
<text class="time">{{
|
||||||
|
detailObj.createdAt
|
||||||
|
? $moment(detailObj.createdAt).format(
|
||||||
|
"YYYY-MM-DD HH:mm:ss"
|
||||||
|
)
|
||||||
|
: "-"
|
||||||
|
}}</text>
|
||||||
|
</view>
|
||||||
|
<view class="itemBottom">
|
||||||
|
<view class="itemBottonLeft">{{ extendObj.uploadResult }}</view>
|
||||||
|
<view class="itemBottonRight">提交</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
|
||||||
|
<view class="progressItem" style="margin-top: 40rpx" v-if="extendObj.errorStatus >= 1"
|
||||||
|
@click="handleShowPopup(1)">
|
||||||
|
<view class="itemLeft">
|
||||||
|
<image class="img" :src="user.Membership_Headimage" />
|
||||||
|
<image class="successIcon" src="/static/images/mbwa/successSmallIcon.svg" />
|
||||||
|
</view>
|
||||||
|
<view class="itemRight">
|
||||||
|
<view class="itemTop">
|
||||||
|
<text class="name">{{
|
||||||
|
extendObj.personMemberShipName || "-"
|
||||||
|
}}</text>
|
||||||
|
<text class="time">{{
|
||||||
|
extendObj.suggestTime
|
||||||
|
? $moment(extendObj.suggestTime).format(
|
||||||
|
"YYYY-MM-DD HH:mm:ss"
|
||||||
|
)
|
||||||
|
: "-"
|
||||||
|
}}</text>
|
||||||
|
</view>
|
||||||
|
<view class="itemBottom">
|
||||||
|
<view class="itemBottonLeft">{{ extendObj.suggestion }}</view>
|
||||||
|
<view style="display: flex;">
|
||||||
|
<view class="itemBottonRight" style="margin-right: 20rpx;" @click="handleOpenChangePopup"
|
||||||
|
v-if="canChangePerson">更换指派人</view>
|
||||||
|
<view class="itemBottonRight" v-if="extendObj.suggestTime">指派</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<!-- <view class="itemBottom">{{ extendObj.suggestion }}</view> -->
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
|
||||||
|
<view class="progressItem" style="margin-top: 40rpx" v-if="extendObj.errorStatus === 2"
|
||||||
|
@click="handleShowPopup(2)">
|
||||||
|
<view class="itemLeft">
|
||||||
|
<image class="img" :src="user.Membership_Headimage" />
|
||||||
|
<image class="successIcon" src="/static/images/mbwa/successSmallIcon.svg" />
|
||||||
|
</view>
|
||||||
|
<view class="itemRight">
|
||||||
|
<view class="itemTop">
|
||||||
|
<text class="name">{{
|
||||||
|
extendObj.personMemberShipName || "-"
|
||||||
|
}}</text>
|
||||||
|
<text class="time">{{
|
||||||
|
extendObj.feedbackTime
|
||||||
|
? $moment(extendObj.feedbackTime).format(
|
||||||
|
"YYYY-MM-DD HH:mm:ss"
|
||||||
|
)
|
||||||
|
: "-"
|
||||||
|
}}</text>
|
||||||
|
</view>
|
||||||
|
<view class="itemBottom">
|
||||||
|
<view class="itemBottonLeft">{{ extendObj.feedbackContent }}</view>
|
||||||
|
<view class="itemBottonRight" v-if="extendObj.feedbackTime">反馈</view>
|
||||||
|
</view>
|
||||||
|
<!-- <view class="itemBottom">{{ extendObj.feedbackContent }}</view> -->
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
|
||||||
<!-- <view class="userBox">
|
<!-- <view class="userBox">
|
||||||
<view class="userTop">
|
<view class="userTop">
|
||||||
@ -47,6 +141,47 @@
|
|||||||
</view> -->
|
</view> -->
|
||||||
</view>
|
</view>
|
||||||
|
|
||||||
|
<!-- 指派人 -->
|
||||||
|
<view class="assignedPerson" v-if="extendObj.situation === 1 && isManager">
|
||||||
|
<view class="contentTop">
|
||||||
|
整改意见<span class="required">*</span>
|
||||||
|
</view>
|
||||||
|
<div class="inputBox">
|
||||||
|
<textarea auto-height v-model="suggestion" placeholder="请输入整改意见"
|
||||||
|
:disabled="extendObj.errorStatus !== 0"></textarea>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<view class="contentTop" style="margin-top: 40rpx;">
|
||||||
|
指派异常处理人<span class="required">*</span>
|
||||||
|
</view>
|
||||||
|
|
||||||
|
<view class="radioSelectPersonBox">
|
||||||
|
<radio-group class="radioGroup" @change="handleNewChangePerson">
|
||||||
|
<label class="choiceItem" v-for="(item, index) in selectPersonList" :key="index"
|
||||||
|
:style="{ marginTop: index > 2 ? '16rpx' : '' }">
|
||||||
|
<view>
|
||||||
|
<radio :value="index" color="#409eff" style="transform: scale(0.8)" />
|
||||||
|
</view>
|
||||||
|
<view>{{ item.MEMBERSHIP_NAME }}</view>
|
||||||
|
</label>
|
||||||
|
</radio-group>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
|
||||||
|
<!-- 反馈的 -->
|
||||||
|
<view class="assignedPerson" v-if="extendObj.errorStatus >= 1 && isFeedback">
|
||||||
|
<view class="contentTop">
|
||||||
|
反馈内容<span class="required">*</span>
|
||||||
|
</view>
|
||||||
|
|
||||||
|
<div class="inputBox">
|
||||||
|
<textarea auto-height v-model="feedbackContent" placeholder="请输入反馈内容"
|
||||||
|
:disabled="extendObj.errorStatus === 2"></textarea>
|
||||||
|
</div>
|
||||||
|
</view>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<view class="inspectionContent">
|
<view class="inspectionContent">
|
||||||
<view class="contentTop">
|
<view class="contentTop">
|
||||||
巡检内容<span class="required">*</span>
|
巡检内容<span class="required">*</span>
|
||||||
@ -105,24 +240,51 @@
|
|||||||
<!-- 单选题 -->
|
<!-- 单选题 -->
|
||||||
<view v-if="requestionRadioList && requestionRadioList.length > 0">
|
<view v-if="requestionRadioList && requestionRadioList.length > 0">
|
||||||
<view class="questionItem" v-for="(item, index) in requestionRadioList" :key="index">
|
<view class="questionItem" v-for="(item, index) in requestionRadioList" :key="index">
|
||||||
<view class="quetionTitle">{{ item.question.title
|
<template>
|
||||||
}}<text class="required" v-if="item.isRequired">*</text></view>
|
<view class="quetionTitle">{{ item.question.title
|
||||||
|
}}<text class="required" v-if="item.isRequired">*</text></view>
|
||||||
|
|
||||||
<view class="checkedBottom" v-if="item.isChecked && item.isChecked.length > 0">
|
<view class="checkedBottom" v-if="item.isChecked && item.isChecked.length > 0">
|
||||||
<view class="bottomItem" style="margin-bottom: 0" v-for="(subItem, subIndex) in item.isChecked"
|
<view class="bottomItem" style="margin-bottom: 0" v-for="(subItem, subIndex) in item.isChecked"
|
||||||
:key="subIndex">
|
:key="subIndex">
|
||||||
<view>{{ subItem || "" }}</view>
|
<view>{{ subItem || "" }}</view>
|
||||||
<!-- <image
|
<!-- <image
|
||||||
@click="handDeleteChecked(item, subItem)"
|
@click="handDeleteChecked(item, subItem)"
|
||||||
class="closeIcon"
|
class="closeIcon"
|
||||||
src="/static/images/mbwa/closeIcon.svg"
|
src="/static/images/mbwa/closeIcon.svg"
|
||||||
/> -->
|
/> -->
|
||||||
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
|
||||||
|
|
||||||
<view class="imgItem" v-for="(subItem, subIndex) in item.imageResponse" :key="subIndex">
|
<view class="beforeRectification" v-if="extendObj.errorStatus >= 1">整改前</view>
|
||||||
<image :src="subItem" @click="showImg2(subIndex, item.imageResponse)" mode="aspectFill" />
|
<view style="display: flex;flex-wrap: wrap;">
|
||||||
</view>
|
<view class="imgItem" v-for="(subItem, subIndex) in item.imageResponse" :key="subIndex">
|
||||||
|
<image :src="subItem" @click="showImg2(subIndex, item.imageResponse)" mode="aspectFill" />
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="afterRectification" v-if="extendObj.errorStatus >= 1">整改后</view>
|
||||||
|
|
||||||
|
<view class="uploadImgBox" v-if="extendObj.errorStatus >= 1">
|
||||||
|
<div v-if="extendObj.errorStatus === 1" class="submitImgBox"
|
||||||
|
@click="submitImg($event, item, 'feedback')">
|
||||||
|
<image class="addIcon" src="/static/images/mbwa/addImageIcon.svg" />
|
||||||
|
</div>
|
||||||
|
<view style="display: flex;flex-wrap: wrap;">
|
||||||
|
<div class="imgItem" v-for="(subItem, subIndex) in item.feedbackImg" :key="subIndex">
|
||||||
|
<image :src="subItem" @tap="showImg2(subIndex, item.feedbackImg)" mode="aspectFill" />
|
||||||
|
<view v-if="extendObj.errorStatus === 1" class="closeBox" @click.stop="
|
||||||
|
deleteImgFuncResponse(item.feedbackImg, subIndex)
|
||||||
|
">
|
||||||
|
<image class="closeIcon" src="/static/images/mbwa/closeIcon.svg" />
|
||||||
|
</view>
|
||||||
|
</div>
|
||||||
|
</view>
|
||||||
|
|
||||||
|
|
||||||
|
</view>
|
||||||
|
|
||||||
|
|
||||||
|
</template>
|
||||||
|
|
||||||
<!-- <radio-group
|
<!-- <radio-group
|
||||||
class="radioGroup"
|
class="radioGroup"
|
||||||
@ -187,7 +349,7 @@
|
|||||||
</view>
|
</view>
|
||||||
|
|
||||||
<!-- 只有异常的时候才会出现的巡检进度 -->
|
<!-- 只有异常的时候才会出现的巡检进度 -->
|
||||||
<view class="progressBox">
|
<view class="progressBox" v-if="false">
|
||||||
<view class="progress">
|
<view class="progress">
|
||||||
<view class="topBox">巡检进度</view>
|
<view class="topBox">巡检进度</view>
|
||||||
|
|
||||||
@ -281,7 +443,7 @@
|
|||||||
</view>
|
</view>
|
||||||
|
|
||||||
<!-- 正常指派人 和 反馈的弹出框 -->
|
<!-- 正常指派人 和 反馈的弹出框 -->
|
||||||
<uniPopup ref="checkPopup" type="bottom" :show="isShowPopup" @hidePopup="handleClosePopup">
|
<uniPopup v-if="false" ref="checkPopup" type="bottom" :show="isShowPopup" @hidePopup="handleClosePopup">
|
||||||
<view class="popupBox">
|
<view class="popupBox">
|
||||||
<view class="contentTop">
|
<view class="contentTop">
|
||||||
<view class="left"></view>
|
<view class="left"></view>
|
||||||
@ -851,7 +1013,8 @@ export default {
|
|||||||
},
|
},
|
||||||
// 指派
|
// 指派
|
||||||
handleAssign() {
|
handleAssign() {
|
||||||
this.isShowPopup = true;
|
// this.isShowPopup = true;
|
||||||
|
this.handleGetUpdate()
|
||||||
},
|
},
|
||||||
// 关闭
|
// 关闭
|
||||||
handleClosePopup() {
|
handleClosePopup() {
|
||||||
@ -862,6 +1025,18 @@ export default {
|
|||||||
deleteImgFunc(item, index) {
|
deleteImgFunc(item, index) {
|
||||||
this.feedbackImgList.splice(index, 1);
|
this.feedbackImgList.splice(index, 1);
|
||||||
},
|
},
|
||||||
|
// 新的 在碗面的选择异常处理人
|
||||||
|
handleNewChangePerson(e) {
|
||||||
|
console.log('eeeee', e);
|
||||||
|
let index = Number(e.detail.value);
|
||||||
|
this.selectPersonIndex = index;
|
||||||
|
console.log('this.selectPersonIndexthis.selectPersonIndex', this.selectPersonIndex);
|
||||||
|
|
||||||
|
let list = JSON.parse(JSON.stringify(this.selectPersonList));
|
||||||
|
let personObj = list[this.selectPersonIndex]
|
||||||
|
|
||||||
|
this.selectPersonObj = personObj;
|
||||||
|
},
|
||||||
// 修改选择的异常处理人
|
// 修改选择的异常处理人
|
||||||
handleChangePerson(e) {
|
handleChangePerson(e) {
|
||||||
let index = Number(e.detail.value);
|
let index = Number(e.detail.value);
|
||||||
@ -1011,6 +1186,18 @@ export default {
|
|||||||
// 判断是不是反馈人
|
// 判断是不是反馈人
|
||||||
this.isFeedback = true;
|
this.isFeedback = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (extend.errorStatus === 2) {
|
||||||
|
// 赋值上反馈的图片
|
||||||
|
if (requestionRadioList && requestionRadioList.length > 0) {
|
||||||
|
requestionRadioList.forEach((item) => {
|
||||||
|
if (extend.newFeedbackImgList[item.id]) {
|
||||||
|
item.feedbackImg = extend.newFeedbackImgList[item.id]
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
this.requestionRadioList = requestionRadioList;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -1099,7 +1286,7 @@ export default {
|
|||||||
|
|
||||||
let req = {};
|
let req = {};
|
||||||
if (this.extendObj.errorStatus === 0) {
|
if (this.extendObj.errorStatus === 0) {
|
||||||
if (!this.selectPersonObj) {
|
if (!this.selectPersonObj.MEMBERSHIP_ID) {
|
||||||
uni.showToast({
|
uni.showToast({
|
||||||
title: "请选择处理人!",
|
title: "请选择处理人!",
|
||||||
icon: "none",
|
icon: "none",
|
||||||
@ -1127,6 +1314,11 @@ export default {
|
|||||||
personMemberShipName: this.user.Membership_Name,
|
personMemberShipName: this.user.Membership_Name,
|
||||||
personId: this.user.UserId,
|
personId: this.user.UserId,
|
||||||
personName: this.user.UserName,
|
personName: this.user.UserName,
|
||||||
|
suggestMemberShipId: this.detailObj.suggestMemberShipId || personObj.MEMBERSHIP_ID,
|
||||||
|
suggestMemberShipName: this.detailObj.suggestMemberShipName || personObj.MEMBERSHIP_NAME,
|
||||||
|
suggestPersonId: this.detailObj.suggestPersonId || personObj.STAFF_ID,
|
||||||
|
suggestPersonName: this.detailObj.suggestPersonName || personObj.STAFF_NAME,
|
||||||
|
|
||||||
// suggestPerson: {
|
// suggestPerson: {
|
||||||
// STAFF_NAME: this.user.UserName,
|
// STAFF_NAME: this.user.UserName,
|
||||||
// STAFF_ID: this.user.UserId,
|
// STAFF_ID: this.user.UserId,
|
||||||
@ -1144,6 +1336,10 @@ export default {
|
|||||||
// 这个是新的 要带上key 回显的时候好匹配
|
// 这个是新的 要带上key 回显的时候好匹配
|
||||||
let newResImgList = {};
|
let newResImgList = {};
|
||||||
let list = this.detailObj.questionResponses;
|
let list = this.detailObj.questionResponses;
|
||||||
|
|
||||||
|
console.log('listlistlistlistlistlist', list);
|
||||||
|
|
||||||
|
|
||||||
if (list && list.length > 0) {
|
if (list && list.length > 0) {
|
||||||
list.forEach((item) => {
|
list.forEach((item) => {
|
||||||
if (!(item.score > 0)) {
|
if (!(item.score > 0)) {
|
||||||
@ -1218,9 +1414,9 @@ export default {
|
|||||||
// // id: this.detailObj.id,
|
// // id: this.detailObj.id,
|
||||||
// // extend: JSON.stringify(req)
|
// // extend: JSON.stringify(req)
|
||||||
// }
|
// }
|
||||||
// )
|
// )
|
||||||
console.log('req', req);
|
console.log('req', req);
|
||||||
|
// return
|
||||||
const data = await this.$request.$webJavaPOST(
|
const data = await this.$request.$webJavaPOST(
|
||||||
`questionnaire-responses/extend/update`,
|
`questionnaire-responses/extend/update`,
|
||||||
{
|
{
|
||||||
@ -1306,6 +1502,16 @@ export default {
|
|||||||
`https://es.eshangtech.com/${data.data.path}`,
|
`https://es.eshangtech.com/${data.data.path}`,
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// if (obj.feedbackImg && obj.feedbackImg.length > 0) {
|
||||||
|
// obj.feedbackImg.push(
|
||||||
|
// `https://es.eshangtech.com/${data.data.path}`
|
||||||
|
// );
|
||||||
|
// } else {
|
||||||
|
// obj.feedbackImg = [
|
||||||
|
// `https://es.eshangtech.com/${data.data.path}`,
|
||||||
|
// ];
|
||||||
|
// }
|
||||||
_this.$forceUpdate();
|
_this.$forceUpdate();
|
||||||
console.log("objobjobjobj21321", obj);
|
console.log("objobjobjobj21321", obj);
|
||||||
} else {
|
} else {
|
||||||
@ -1357,6 +1563,15 @@ export default {
|
|||||||
`https://es.eshangtech.com/${data.data.path}`,
|
`https://es.eshangtech.com/${data.data.path}`,
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
// if (obj.feedbackImg && obj.feedbackImg.length > 0) {
|
||||||
|
// obj.feedbackImg.push(
|
||||||
|
// `https://es.eshangtech.com/${data.data.path}`
|
||||||
|
// );
|
||||||
|
// } else {
|
||||||
|
// obj.feedbackImg = [
|
||||||
|
// `https://es.eshangtech.com/${data.data.path}`,
|
||||||
|
// ];
|
||||||
|
// }
|
||||||
console.log("objobjobjobj21321", obj);
|
console.log("objobjobjobj21321", obj);
|
||||||
} else {
|
} else {
|
||||||
_this.feedbackImgList.push(
|
_this.feedbackImgList.push(
|
||||||
@ -1408,41 +1623,166 @@ export default {
|
|||||||
padding: 24rpx;
|
padding: 24rpx;
|
||||||
border-radius: 16rpx;
|
border-radius: 16rpx;
|
||||||
background: #fff;
|
background: #fff;
|
||||||
background-image: url("https://eshangtech.com/minTestImg/placeBg.png");
|
background-image: url("https://eshangtech.com/minTestImg/errorBg.png");
|
||||||
background-size: 100% 100%;
|
background-size: 100% 100%;
|
||||||
background-position: 2rpx 2rpx;
|
// background-position: 2rpx 2rpx;
|
||||||
background-repeat: no-repeat;
|
background-repeat: no-repeat;
|
||||||
display: flex;
|
|
||||||
align-items: center;
|
|
||||||
|
|
||||||
.itemIcon {
|
.placeBoxTop {
|
||||||
width: 36rpx;
|
width: 100%;
|
||||||
height: 36rpx;
|
display: flex;
|
||||||
margin-right: 4rpx;
|
align-items: center;
|
||||||
|
justify-content: space-between;
|
||||||
|
|
||||||
|
.placeLeft {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
|
||||||
|
.itemIcon {
|
||||||
|
width: 24rpx;
|
||||||
|
height: 24rpx;
|
||||||
|
margin-right: 10rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.placeName {
|
||||||
|
font-family: "PingFangSC";
|
||||||
|
font-weight: 400;
|
||||||
|
font-size: 30rpx;
|
||||||
|
color: #010b18;
|
||||||
|
line-height: 40rpx;
|
||||||
|
text-align: left;
|
||||||
|
font-style: normal;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.statusBox {
|
||||||
|
margin-left: 12rpx;
|
||||||
|
font-family: "PingFangSC";
|
||||||
|
font-weight: 400;
|
||||||
|
font-size: 24rpx;
|
||||||
|
color: #139942;
|
||||||
|
line-height: 36rpx;
|
||||||
|
text-align: left;
|
||||||
|
font-style: normal;
|
||||||
|
padding: 2rpx 8rpx;
|
||||||
|
border-radius: 4rpx;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.placeName {
|
.placeBoxBottom {
|
||||||
font-family: "PingFangSC";
|
width: 100%;
|
||||||
font-weight: 400;
|
border-radius: 16rpx;
|
||||||
font-size: 30rpx;
|
box-sizing: border-box;
|
||||||
color: #010b18;
|
// padding: 24rpx;
|
||||||
line-height: 40rpx;
|
margin-top: 20rpx;
|
||||||
text-align: left;
|
|
||||||
font-style: normal;
|
.topBox {
|
||||||
|
font-family: "PingFangSC";
|
||||||
|
font-weight: 400;
|
||||||
|
font-size: 28rpx;
|
||||||
|
color: #676d74;
|
||||||
|
line-height: 40rpx;
|
||||||
|
text-align: left;
|
||||||
|
font-style: normal;
|
||||||
|
}
|
||||||
|
|
||||||
|
.progressContent {
|
||||||
|
width: 100%;
|
||||||
|
margin-top: 24rpx;
|
||||||
|
|
||||||
|
.progressItem {
|
||||||
|
width: 100%;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
|
||||||
|
.itemLeft {
|
||||||
|
width: 80rpx;
|
||||||
|
height: 80rpx;
|
||||||
|
margin-right: 16rpx;
|
||||||
|
position: relative;
|
||||||
|
|
||||||
|
.img {
|
||||||
|
width: 80rpx;
|
||||||
|
height: 80rpx;
|
||||||
|
border-radius: 50%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.successIcon {
|
||||||
|
width: 32rpx;
|
||||||
|
height: 32rpx;
|
||||||
|
position: absolute;
|
||||||
|
right: 0;
|
||||||
|
bottom: 4rpx;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.itemRight {
|
||||||
|
width: 100%;
|
||||||
|
|
||||||
|
.itemTop {
|
||||||
|
width: 100%;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: space-between;
|
||||||
|
|
||||||
|
.name {
|
||||||
|
font-family: "PingFangSC";
|
||||||
|
font-weight: 500;
|
||||||
|
font-size: 26rpx;
|
||||||
|
color: #010b18;
|
||||||
|
line-height: 40rpx;
|
||||||
|
text-align: left;
|
||||||
|
font-style: normal;
|
||||||
|
}
|
||||||
|
|
||||||
|
.time {
|
||||||
|
font-family: "PingFangSC";
|
||||||
|
font-weight: 400;
|
||||||
|
font-size: 24rpx;
|
||||||
|
color: #676d74;
|
||||||
|
line-height: 32rpx;
|
||||||
|
text-align: left;
|
||||||
|
font-style: normal;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.itemBottom {
|
||||||
|
width: 100%;
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
align-items: center;
|
||||||
|
margin-top: 8rpx;
|
||||||
|
|
||||||
|
.itemBottonLeft {
|
||||||
|
font-family: "PingFangSC";
|
||||||
|
font-weight: 400;
|
||||||
|
font-size: 24rpx;
|
||||||
|
color: #676d74;
|
||||||
|
line-height: 32rpx;
|
||||||
|
text-align: left;
|
||||||
|
font-style: normal;
|
||||||
|
margin-top: 4rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.itemBottonRight {
|
||||||
|
font-family: "PingFangSC";
|
||||||
|
font-weight: 500;
|
||||||
|
font-size: 22rpx;
|
||||||
|
color: #425EA4;
|
||||||
|
text-align: center;
|
||||||
|
font-style: normal;
|
||||||
|
text-transform: none;
|
||||||
|
padding: 0 14rpx;
|
||||||
|
background-color: #D9E4FF;
|
||||||
|
border-radius: 8rpx;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.statusBox {
|
|
||||||
margin-left: 12rpx;
|
|
||||||
font-family: "PingFangSC";
|
|
||||||
font-weight: 400;
|
|
||||||
font-size: 24rpx;
|
|
||||||
color: #139942;
|
|
||||||
line-height: 36rpx;
|
|
||||||
text-align: left;
|
|
||||||
font-style: normal;
|
|
||||||
padding: 2rpx 8rpx;
|
|
||||||
border-radius: 4rpx;
|
|
||||||
}
|
|
||||||
|
|
||||||
.userBox {
|
.userBox {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
@ -1498,6 +1838,57 @@ export default {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.assignedPerson {
|
||||||
|
width: 100%;
|
||||||
|
margin-top: 24rpx;
|
||||||
|
background: #fff;
|
||||||
|
border-radius: 16rpx;
|
||||||
|
box-sizing: border-box;
|
||||||
|
padding: 24rpx;
|
||||||
|
|
||||||
|
.contentTop {
|
||||||
|
font-family: "PingFangSC";
|
||||||
|
font-weight: 400;
|
||||||
|
font-size: 28rpx;
|
||||||
|
color: #676d74;
|
||||||
|
line-height: 40rpx;
|
||||||
|
text-align: left;
|
||||||
|
font-style: normal;
|
||||||
|
|
||||||
|
.required {
|
||||||
|
font-family: "PingFangSC";
|
||||||
|
font-weight: 400;
|
||||||
|
font-size: 24rpx;
|
||||||
|
color: #ff0000;
|
||||||
|
line-height: 40rpx;
|
||||||
|
text-align: left;
|
||||||
|
font-style: normal;
|
||||||
|
margin-left: 4rpx;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.inputBox {
|
||||||
|
width: 100%;
|
||||||
|
margin-top: 8rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.radioSelectPersonBox {
|
||||||
|
.radioGroup {
|
||||||
|
width: 100%;
|
||||||
|
display: flex;
|
||||||
|
flex-wrap: wrap;
|
||||||
|
margin-top: 30rpx;
|
||||||
|
|
||||||
|
.choiceItem {
|
||||||
|
width: 33%;
|
||||||
|
display: flex;
|
||||||
|
align-items: flex-start;
|
||||||
|
padding-right: 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
.inspectionContent {
|
.inspectionContent {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
margin-top: 24rpx;
|
margin-top: 24rpx;
|
||||||
@ -1672,6 +2063,21 @@ export default {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.beforeRectification {
|
||||||
|
font-family: "PingFangSC";
|
||||||
|
font-weight: 500;
|
||||||
|
font-size: 24rpx;
|
||||||
|
line-height: 30rpx;
|
||||||
|
color: #FF0004;
|
||||||
|
text-align: center;
|
||||||
|
font-style: normal;
|
||||||
|
padding: 2rpx 4rpx;
|
||||||
|
background-color: #FFD9D9;
|
||||||
|
border-radius: 8rpx;
|
||||||
|
display: inline-block;
|
||||||
|
margin-bottom: 10rpx;
|
||||||
|
}
|
||||||
|
|
||||||
.imgItem {
|
.imgItem {
|
||||||
width: 148rpx;
|
width: 148rpx;
|
||||||
height: 148rpx;
|
height: 148rpx;
|
||||||
@ -1703,6 +2109,79 @@ export default {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.afterRectification {
|
||||||
|
font-family: "PingFangSC";
|
||||||
|
font-weight: 500;
|
||||||
|
font-size: 24rpx;
|
||||||
|
line-height: 30rpx;
|
||||||
|
color: #00AC4F;
|
||||||
|
text-align: center;
|
||||||
|
font-style: normal;
|
||||||
|
padding: 2rpx 4rpx;
|
||||||
|
background-color: #D9FFEB;
|
||||||
|
border-radius: 8rpx;
|
||||||
|
display: inline-block;
|
||||||
|
margin-bottom: 10rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.uploadImgBox {
|
||||||
|
width: 100%;
|
||||||
|
margin-top: 16rpx;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
flex-wrap: wrap;
|
||||||
|
|
||||||
|
.submitImgBox {
|
||||||
|
width: 148rpx;
|
||||||
|
height: 148rpx;
|
||||||
|
background: #f7f7f8;
|
||||||
|
border-radius: 8rpx;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
margin-right: 16rpx;
|
||||||
|
|
||||||
|
.addIcon {
|
||||||
|
width: 48rpx;
|
||||||
|
height: 48rpx;
|
||||||
|
color: #b4b5ba;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.imgItem {
|
||||||
|
width: 148rpx;
|
||||||
|
height: 148rpx;
|
||||||
|
margin-right: 16rpx;
|
||||||
|
position: relative;
|
||||||
|
border-radius: 8rpx;
|
||||||
|
overflow: hidden;
|
||||||
|
|
||||||
|
image {
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.closeBox {
|
||||||
|
width: 32rpx;
|
||||||
|
height: 32rpx;
|
||||||
|
border-radius: 0rpx 8rpx 0rpx 8rpx;
|
||||||
|
background: rgba(6, 10, 25, 0.5);
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
position: absolute;
|
||||||
|
top: 0;
|
||||||
|
right: 0;
|
||||||
|
|
||||||
|
.closeIcon {
|
||||||
|
width: 24rpx;
|
||||||
|
height: 24rpx;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.requestionCheckedItem {
|
.requestionCheckedItem {
|
||||||
|
|||||||
@ -21,32 +21,17 @@
|
|||||||
<view class="contentTop">
|
<view class="contentTop">
|
||||||
巡检内容<span class="required">*</span>
|
巡检内容<span class="required">*</span>
|
||||||
</view>
|
</view>
|
||||||
<textarea
|
<textarea v-model="uploadResult" class="contentBox" placeholder="请输入巡查内容,并上传现场照片"
|
||||||
v-model="uploadResult"
|
placeholderStyle="font-size: 24rpx;color: #CDCED1" :auto-height="true"></textarea>
|
||||||
class="contentBox"
|
|
||||||
placeholder="请输入巡查内容,并上传现场照片"
|
|
||||||
placeholderStyle="font-size: 24rpx;color: #CDCED1"
|
|
||||||
:auto-height="true"
|
|
||||||
></textarea>
|
|
||||||
<view class="uploadImgBox">
|
<view class="uploadImgBox">
|
||||||
<div class="submitImgBox" @click="submitImg">
|
<div class="submitImgBox" @click="submitImg">
|
||||||
<image
|
<image class="addIcon" src="/static/images/mbwa/addImageIcon.svg" />
|
||||||
class="addIcon"
|
|
||||||
src="/static/images/mbwa/addImageIcon.svg"
|
|
||||||
/>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="imgItem" v-for="(item, index) in imgsList" :key="index">
|
<div class="imgItem" v-for="(item, index) in imgsList" :key="index">
|
||||||
<image
|
<image :src="item" @tap="showImg2(index, imgsList)" mode="aspectFill" />
|
||||||
:src="item"
|
|
||||||
@tap="showImg2(index, imgsList)"
|
|
||||||
mode="aspectFill"
|
|
||||||
/>
|
|
||||||
<view class="closeBox" @click.stop="deleteImgFunc(item, index)">
|
<view class="closeBox" @click.stop="deleteImgFunc(item, index)">
|
||||||
<image
|
<image class="closeIcon" src="/static/images/mbwa/closeIcon.svg" />
|
||||||
class="closeIcon"
|
|
||||||
src="/static/images/mbwa/closeIcon.svg"
|
|
||||||
/>
|
|
||||||
</view>
|
</view>
|
||||||
</div>
|
</div>
|
||||||
</view>
|
</view>
|
||||||
@ -59,135 +44,83 @@
|
|||||||
|
|
||||||
<!-- 单选题 -->
|
<!-- 单选题 -->
|
||||||
<view v-if="requestionRadioList && requestionRadioList.length > 0">
|
<view v-if="requestionRadioList && requestionRadioList.length > 0">
|
||||||
<view
|
<view class="questionItem" v-for="(item, index) in requestionRadioList" :key="index">
|
||||||
class="questionItem"
|
<view class="quetionTitle">
|
||||||
v-for="(item, index) in requestionRadioList"
|
<!-- @click="handleShowCheckPopup(item, 'radio')" -->
|
||||||
:key="index"
|
|
||||||
>
|
|
||||||
<view
|
|
||||||
class="quetionTitle"
|
|
||||||
@click="handleShowCheckPopup(item, 'radio')"
|
|
||||||
>
|
|
||||||
<view class="quetionLeft">
|
<view class="quetionLeft">
|
||||||
{{ item.question.title
|
{{ item.question.title
|
||||||
}}<text class="required" v-if="item.isRequired">*</text>
|
}}<text class="required" v-if="item.isRequired">*</text>
|
||||||
</view>
|
</view>
|
||||||
|
|
||||||
<view class="quetionRight">
|
<!-- <view class="quetionRight">
|
||||||
<text
|
<text class="placeSelect" v-if="
|
||||||
class="placeSelect"
|
!(item.choiceResponse && item.choiceResponse.length > 0)
|
||||||
v-if="
|
">请选择</text>
|
||||||
!(item.choiceResponse && item.choiceResponse.length > 0)
|
<image class="rightArrow" src="/static/images/mbwa/rightArrow.svg" />
|
||||||
"
|
</view> -->
|
||||||
>请选择</text
|
</view>
|
||||||
>
|
<!-- v-if="!(item.choiceResponse && item.choiceResponse.length > 0)" -->
|
||||||
<image
|
<view class="choiceResList">
|
||||||
class="rightArrow"
|
<radio-group @change="handleOutRadioChange($event, item)">
|
||||||
src="/static/images/mbwa/rightArrow.svg"
|
<label class="choiceItem" v-for="(subItem, subIndex) in item.question.options" :key="subItem.text"
|
||||||
/>
|
:style="{ marginBottom: subIndex + 1 === item.question.options.length ? '0' : '' }">
|
||||||
</view>
|
<view>
|
||||||
|
<radio :value="subItem.text" color="#409eff" style="transform: scale(0.8)" />
|
||||||
|
<!-- :checked="subIndex === current" -->
|
||||||
|
</view>
|
||||||
|
<view>{{ subItem.text }}</view>
|
||||||
|
</label>
|
||||||
|
</radio-group>
|
||||||
</view>
|
</view>
|
||||||
|
|
||||||
<view
|
<!--
|
||||||
class="checkedBottom"
|
<view class="checkedBottom" v-if="item.choiceResponse && item.choiceResponse.length > 0">
|
||||||
v-if="item.choiceResponse && item.choiceResponse.length > 0"
|
<view class="bottomItem" v-for="(subItem, subIndex) in item.choiceResponse" :key="subIndex">
|
||||||
>
|
|
||||||
<view
|
|
||||||
class="bottomItem"
|
|
||||||
v-for="(subItem, subIndex) in item.choiceResponse"
|
|
||||||
:key="subIndex"
|
|
||||||
>
|
|
||||||
{{ subItem || "" }}
|
{{ subItem || "" }}
|
||||||
<image
|
<image @click="handDeleteChecked(item, subItem, 'radio')" class="closeIcon"
|
||||||
@click="handDeleteChecked(item, subItem, 'radio')"
|
src="/static/images/mbwa/closeIcon.svg" />
|
||||||
class="closeIcon"
|
|
||||||
src="/static/images/mbwa/closeIcon.svg"
|
|
||||||
/>
|
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view> -->
|
||||||
|
|
||||||
<view class="uploadImgBox" v-if="item.showAddImg">
|
<view class="uploadImgBox" v-if="item.showAddImg">
|
||||||
<div
|
<div class="submitImgBox" @click="submitImg($event, item, 'response')">
|
||||||
class="submitImgBox"
|
<image class="addIcon" src="/static/images/mbwa/addImageIcon.svg" />
|
||||||
@click="submitImg($event, item, 'response')"
|
|
||||||
>
|
|
||||||
<image
|
|
||||||
class="addIcon"
|
|
||||||
src="/static/images/mbwa/addImageIcon.svg"
|
|
||||||
/>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div
|
<div class="imgItem" v-for="(subItem, subIndex) in item.imageResponse" :key="subIndex">
|
||||||
class="imgItem"
|
<image :src="subItem" @tap="showImg2(subIndex, item.imageResponse)" mode="aspectFill" />
|
||||||
v-for="(subItem, subIndex) in item.imageResponse"
|
<view class="closeBox" @click.stop="
|
||||||
:key="subIndex"
|
deleteImgFuncResponse(item.imageResponse, subIndex)
|
||||||
>
|
">
|
||||||
<image
|
<image class="closeIcon" src="/static/images/mbwa/closeIcon.svg" />
|
||||||
:src="subItem"
|
|
||||||
@tap="showImg2(subIndex, item.imageResponse)"
|
|
||||||
mode="aspectFill"
|
|
||||||
/>
|
|
||||||
<view
|
|
||||||
class="closeBox"
|
|
||||||
@click.stop="
|
|
||||||
deleteImgFuncResponse(item.imageResponse, subIndex)
|
|
||||||
"
|
|
||||||
>
|
|
||||||
<image
|
|
||||||
class="closeIcon"
|
|
||||||
src="/static/images/mbwa/closeIcon.svg"
|
|
||||||
/>
|
|
||||||
</view>
|
</view>
|
||||||
</div>
|
</div>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
|
|
||||||
<view v-if="requestionCheckedList && requestionCheckedList.length > 0">
|
<!-- 多选题 暂时没有不进行显示 -->
|
||||||
<view
|
<!-- <view v-if="requestionCheckedList && requestionCheckedList.length > 0">
|
||||||
class="requestionCheckedItem"
|
<view class="requestionCheckedItem" v-for="(item, index) in requestionCheckedList" :key="index">
|
||||||
v-for="(item, index) in requestionCheckedList"
|
<view class="checkedTop" @click="handleShowCheckPopup(item, 'checked')">
|
||||||
:key="index"
|
|
||||||
>
|
|
||||||
<view
|
|
||||||
class="checkedTop"
|
|
||||||
@click="handleShowCheckPopup(item, 'checked')"
|
|
||||||
>
|
|
||||||
<view class="topLeft">
|
<view class="topLeft">
|
||||||
{{ item.question.title || ""
|
{{ item.question.title || ""
|
||||||
}}<text class="required" v-if="item.isRequired">*</text>
|
}}<text class="required" v-if="item.isRequired">*</text>
|
||||||
</view>
|
</view>
|
||||||
<view class="topRight">
|
<view class="topRight">
|
||||||
<text
|
<text class="placeSelect" v-if="!(item.isChecked && item.isChecked.length > 0)">请选择</text>
|
||||||
class="placeSelect"
|
<image class="rightArrow" src="/static/images/mbwa/rightArrow.svg" />
|
||||||
v-if="!(item.isChecked && item.isChecked.length > 0)"
|
|
||||||
>请选择</text
|
|
||||||
>
|
|
||||||
<image
|
|
||||||
class="rightArrow"
|
|
||||||
src="/static/images/mbwa/rightArrow.svg"
|
|
||||||
/>
|
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<view
|
<view class="checkedBottom" v-if="item.isChecked && item.isChecked.length > 0">
|
||||||
class="checkedBottom"
|
<view class="bottomItem" v-for="(subItem, subIndex) in item.isChecked" :key="subIndex">
|
||||||
v-if="item.isChecked && item.isChecked.length > 0"
|
|
||||||
>
|
|
||||||
<view
|
|
||||||
class="bottomItem"
|
|
||||||
v-for="(subItem, subIndex) in item.isChecked"
|
|
||||||
:key="subIndex"
|
|
||||||
>
|
|
||||||
{{ subItem.text || "" }}
|
{{ subItem.text || "" }}
|
||||||
<image
|
<image @click="handDeleteChecked(item, subItem, 'checked')" class="closeIcon"
|
||||||
@click="handDeleteChecked(item, subItem, 'checked')"
|
src="/static/images/mbwa/closeIcon.svg" />
|
||||||
class="closeIcon"
|
|
||||||
src="/static/images/mbwa/closeIcon.svg"
|
|
||||||
/>
|
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view> -->
|
||||||
|
|
||||||
<!-- <checkbox-group @change="handleChangeCheck">
|
<!-- <checkbox-group @change="handleChangeCheck">
|
||||||
<label
|
<label
|
||||||
class="checkItem"
|
class="checkItem"
|
||||||
v-for="(subItem, subIndex) in item.question.options"
|
v-for="(subItem, subIndex) in item.question.options"
|
||||||
@ -199,15 +132,15 @@
|
|||||||
<view>{{ subItem.text }}</view>
|
<view>{{ subItem.text }}</view>
|
||||||
</label>
|
</label>
|
||||||
</checkbox-group> -->
|
</checkbox-group> -->
|
||||||
</view>
|
<!-- </view>
|
||||||
</view>
|
</view> -->
|
||||||
|
|
||||||
|
|
||||||
</view>
|
</view>
|
||||||
|
|
||||||
<view class="otherBox">
|
<view class="otherBox">
|
||||||
<view class="questionItem">
|
<view class="questionItem">
|
||||||
<view class="quetionTitle"
|
<view class="quetionTitle">情况类型<text class="required">*</text></view>
|
||||||
>情况类型<text class="required">*</text></view
|
|
||||||
>
|
|
||||||
|
|
||||||
<radio-group class="radioGroup" @change="handleChangeSituationType">
|
<radio-group class="radioGroup" @change="handleChangeSituationType">
|
||||||
<label class="radioItem">
|
<label class="radioItem">
|
||||||
@ -225,6 +158,8 @@
|
|||||||
</radio-group>
|
</radio-group>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
|
|
||||||
|
|
||||||
</scroll-view>
|
</scroll-view>
|
||||||
|
|
||||||
<view class="bottomBtnBox">
|
<view class="bottomBtnBox">
|
||||||
@ -244,11 +179,7 @@
|
|||||||
|
|
||||||
<div class="addressBox">
|
<div class="addressBox">
|
||||||
<div class="contentBox">
|
<div class="contentBox">
|
||||||
<image
|
<image src="/static/images/publicity/dingwei.png" mode="aspectFit" class="addressIcon"></image>
|
||||||
src="/static/images/publicity/dingwei.png"
|
|
||||||
mode="aspectFit"
|
|
||||||
class="addressIcon"
|
|
||||||
></image>
|
|
||||||
<div>
|
<div>
|
||||||
<p class="xuncha address">{{ detailObj.title || "-" }}</p>
|
<p class="xuncha address">{{ detailObj.title || "-" }}</p>
|
||||||
<div>
|
<div>
|
||||||
@ -261,51 +192,33 @@
|
|||||||
<div class="formBox">
|
<div class="formBox">
|
||||||
<ul>
|
<ul>
|
||||||
<li>
|
<li>
|
||||||
<span
|
<span :class="inputfocus
|
||||||
:class="
|
? 'circle circleActive circle-first '
|
||||||
inputfocus
|
: 'circle circle-first'
|
||||||
? 'circle circleActive circle-first '
|
"></span>
|
||||||
: 'circle circle-first'
|
|
||||||
"
|
|
||||||
></span>
|
|
||||||
<div class="examineContent">
|
<div class="examineContent">
|
||||||
<div class="titleBox">
|
<div class="titleBox">
|
||||||
<i :class="inputfocus ? 'img-zds activezds' : 'img-zds'"></i>
|
<i :class="inputfocus ? 'img-zds activezds' : 'img-zds'"></i>
|
||||||
<div
|
<div :class="inputfocus ? 'titleTextActive' : 'titleText'" style="display: flex">
|
||||||
:class="inputfocus ? 'titleTextActive' : 'titleText'"
|
|
||||||
style="display: flex"
|
|
||||||
>
|
|
||||||
<i style="color: red; margin-right: 5px">*</i>巡查内容
|
<i style="color: red; margin-right: 5px">*</i>巡查内容
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="inputBox">
|
<div class="inputBox">
|
||||||
<textarea
|
<textarea auto-height v-model="uploadResult" placeholder="请输入巡查内容" focus="true"
|
||||||
auto-height
|
@focus="inputfocus = true" @blur="inputfocus = false"></textarea>
|
||||||
v-model="uploadResult"
|
|
||||||
placeholder="请输入巡查内容"
|
|
||||||
focus="true"
|
|
||||||
@focus="inputfocus = true"
|
|
||||||
@blur="inputfocus = false"
|
|
||||||
></textarea>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="tagList" v-for="(tags, i) in tagList" :key="i">
|
<div class="tagList" v-for="(tags, i) in tagList" :key="i">
|
||||||
<div class="tagName">
|
<div class="tagName">
|
||||||
<span
|
<span style="display: inline-block; max-width: calc(100% - 10rpx)">
|
||||||
style="display: inline-block; max-width: calc(100% - 10rpx)"
|
|
||||||
>
|
|
||||||
{{ tags.question.title || "" }}
|
{{ tags.question.title || "" }}
|
||||||
</span>
|
</span>
|
||||||
<span v-if="tags.isRequired" style="color: red">*</span>
|
<span v-if="tags.isRequired" style="color: red">*</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="tagsBox">
|
<div class="tagsBox">
|
||||||
<div
|
<div v-for="(tag, s) in tags.question.options" :key="s" @tap="selectTag(tag, tags.question)"
|
||||||
v-for="(tag, s) in tags.question.options"
|
:class="tag.ischecked ? 'tagUnit active ' : 'tagUnit'">
|
||||||
:key="s"
|
|
||||||
@tap="selectTag(tag, tags.question)"
|
|
||||||
:class="tag.ischecked ? 'tagUnit active ' : 'tagUnit'"
|
|
||||||
>
|
|
||||||
{{ tag.text }}
|
{{ tag.text }}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -317,32 +230,15 @@
|
|||||||
<span :class="imgfocus ? 'circleActive' : 'circle'"></span>
|
<span :class="imgfocus ? 'circleActive' : 'circle'"></span>
|
||||||
<div class="examineContent">
|
<div class="examineContent">
|
||||||
<div class="titleBox">
|
<div class="titleBox">
|
||||||
<i
|
<i :class="imgfocus ? 'img-upload activeupload' : 'img-upload'"></i>
|
||||||
:class="imgfocus ? 'img-upload activeupload' : 'img-upload'"
|
<div style="display: flex" :class="imgfocus ? 'titleTextActive' : 'titleText'">
|
||||||
></i>
|
|
||||||
<div
|
|
||||||
style="display: flex"
|
|
||||||
:class="imgfocus ? 'titleTextActive' : 'titleText'"
|
|
||||||
>
|
|
||||||
<i style="color: red; margin-right: 5px">*</i>请上传现场图片
|
<i style="color: red; margin-right: 5px">*</i>请上传现场图片
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="uploadBox">
|
<div class="uploadBox">
|
||||||
<div
|
<div class="uploadList" v-for="(item, index) in imgsList" :key="index">
|
||||||
class="uploadList"
|
<span class="upload-file-remove" @click.stop="deleteImgFunc(item, index)">×</span>
|
||||||
v-for="(item, index) in imgsList"
|
<image :src="item" @tap="showImg2(index, imgsList)" mode="aspectFill" />
|
||||||
:key="index"
|
|
||||||
>
|
|
||||||
<span
|
|
||||||
class="upload-file-remove"
|
|
||||||
@click.stop="deleteImgFunc(item, index)"
|
|
||||||
>×</span
|
|
||||||
>
|
|
||||||
<image
|
|
||||||
:src="item"
|
|
||||||
@tap="showImg2(index, imgsList)"
|
|
||||||
mode="aspectFill"
|
|
||||||
/>
|
|
||||||
</div>
|
</div>
|
||||||
<div class="uploadAdd" @click="submitImg">
|
<div class="uploadAdd" @click="submitImg">
|
||||||
<div class="upload-file-add-container">
|
<div class="upload-file-add-container">
|
||||||
@ -354,33 +250,17 @@
|
|||||||
</li>
|
</li>
|
||||||
|
|
||||||
<li>
|
<li>
|
||||||
<span
|
<span :class="radiofocus
|
||||||
:class="
|
? 'circle circleActive circle-last'
|
||||||
radiofocus
|
: 'circle circle-last'
|
||||||
? 'circle circleActive circle-last'
|
">
|
||||||
: 'circle circle-last'
|
|
||||||
"
|
|
||||||
>
|
|
||||||
</span>
|
</span>
|
||||||
<div class="examineContent">
|
<div class="examineContent">
|
||||||
<radio-group
|
<radio-group @change="radioChange" style="display: flex" @click="radioFocus" @blur="radiofocus = false">
|
||||||
@change="radioChange"
|
<label class="uni-list-cell" v-for="(item, index) in options" :key="item.value">
|
||||||
style="display: flex"
|
|
||||||
@click="radioFocus"
|
|
||||||
@blur="radiofocus = false"
|
|
||||||
>
|
|
||||||
<label
|
|
||||||
class="uni-list-cell"
|
|
||||||
v-for="(item, index) in options"
|
|
||||||
:key="item.value"
|
|
||||||
>
|
|
||||||
<view>
|
<view>
|
||||||
<radio
|
<radio :value="item.value" color="#409eff" :checked="index === current"
|
||||||
:value="item.value"
|
style="transform: scale(0.8)" />
|
||||||
color="#409eff"
|
|
||||||
:checked="index === current"
|
|
||||||
style="transform: scale(0.8)"
|
|
||||||
/>
|
|
||||||
</view>
|
</view>
|
||||||
<view>{{ item.name }}</view>
|
<view>{{ item.name }}</view>
|
||||||
</label>
|
</label>
|
||||||
@ -393,53 +273,29 @@
|
|||||||
</div>
|
</div>
|
||||||
</view>
|
</view>
|
||||||
|
|
||||||
<uniPopup
|
<uniPopup ref="checkPopup" type="bottom" :show="isShowPopup" @hidePopup="handleClosePopup">
|
||||||
ref="checkPopup"
|
|
||||||
type="bottom"
|
|
||||||
:show="isShowPopup"
|
|
||||||
@hidePopup="handleClosePopup"
|
|
||||||
>
|
|
||||||
<view class="popupBox">
|
<view class="popupBox">
|
||||||
<scroll-view class="checkPopupContent" :scroll-y="true">
|
<scroll-view class="checkPopupContent" :scroll-y="true">
|
||||||
<view v-if="questionType === 'checked'">
|
<view v-if="questionType === 'checked'">
|
||||||
<view class="anwersList" v-if="popupShowObj">
|
<view class="anwersList" v-if="popupShowObj">
|
||||||
<view
|
<view class="anwersItem" v-for="(item, index) in popupShowObj.question.options" :key="index"
|
||||||
class="anwersItem"
|
@click="handleCheckAnwers(popupShowObj, item)">
|
||||||
v-for="(item, index) in popupShowObj.question.options"
|
<view :class="item.checked ? 'anwers selectAnwersItem' : 'anwers'">
|
||||||
:key="index"
|
{{ item.text || "" }}</view>
|
||||||
@click="handleCheckAnwers(popupShowObj, item)"
|
|
||||||
>
|
|
||||||
<view
|
|
||||||
:class="item.checked ? 'anwers selectAnwersItem' : 'anwers'"
|
|
||||||
>
|
|
||||||
{{ item.text || "" }}</view
|
|
||||||
>
|
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
|
|
||||||
<view v-if="questionType === 'radio'">
|
<view v-if="questionType === 'radio'">
|
||||||
<radio-group
|
<radio-group class="radioGroup" v-if="
|
||||||
class="radioGroup"
|
popupShowObj.question &&
|
||||||
v-if="
|
popupShowObj.question.options &&
|
||||||
popupShowObj.question &&
|
popupShowObj.question.options.length > 0
|
||||||
popupShowObj.question.options &&
|
" @change="radioChange($event, popupShowObj)">
|
||||||
popupShowObj.question.options.length > 0
|
<label class="radioItem" v-for="(subItem, subIndex) in popupShowObj.question.options" :key="subIndex">
|
||||||
"
|
|
||||||
@change="radioChange($event, popupShowObj)"
|
|
||||||
>
|
|
||||||
<label
|
|
||||||
class="radioItem"
|
|
||||||
v-for="(subItem, subIndex) in popupShowObj.question.options"
|
|
||||||
:key="subIndex"
|
|
||||||
>
|
|
||||||
<view>
|
<view>
|
||||||
<radio
|
<radio color="#3B72FF" iconColor="#3B72FF" :value="subItem.text"
|
||||||
color="#3B72FF"
|
:checked="popupShowObj.choiceResponse[0] === subItem.text" />
|
||||||
iconColor="#3B72FF"
|
|
||||||
:value="subItem.text"
|
|
||||||
:checked="popupShowObj.choiceResponse[0] === subItem.text"
|
|
||||||
/>
|
|
||||||
</view>
|
</view>
|
||||||
<view style="font-size: 24rpx; text-align: left">{{
|
<view style="font-size: 24rpx; text-align: left">{{
|
||||||
subItem.text
|
subItem.text
|
||||||
@ -511,6 +367,49 @@ export default {
|
|||||||
this.handleGetModalData(query.id);
|
this.handleGetModalData(query.id);
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
// 新的 在外面选择答案的内容
|
||||||
|
handleOutRadioChange(e, obj) {
|
||||||
|
console.log('eeee', e);
|
||||||
|
console.log('objobjobjobjobj', obj);
|
||||||
|
|
||||||
|
let requestionList = obj.question.options
|
||||||
|
let score = 0
|
||||||
|
requestionList.forEach(item => {
|
||||||
|
if (item.text === e.detail.value) {
|
||||||
|
score = item.mark
|
||||||
|
if (item.mark !== 1) {
|
||||||
|
obj.showAddImg = true;
|
||||||
|
} else {
|
||||||
|
obj.showAddImg = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
obj.choiceResponse = [e.detail.value]
|
||||||
|
obj.score = score
|
||||||
|
// obj.question = {
|
||||||
|
// ...obj.question,
|
||||||
|
// choiceResponse: [e.detail.value],
|
||||||
|
// score: score
|
||||||
|
// }
|
||||||
|
|
||||||
|
console.log("requestionRadioList", this.requestionRadioList);
|
||||||
|
if (this.requestionRadioList && this.requestionRadioList.length > 0) {
|
||||||
|
// 判断有没有选择了 0分的 因为 单选 只要选了就不能改
|
||||||
|
// 且 不选之前 mark的值为undefined 选了 就是0 或 1
|
||||||
|
let haveError = false;
|
||||||
|
this.requestionRadioList.forEach((item) => {
|
||||||
|
if (item.score === 0) {
|
||||||
|
haveError = true;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
if (haveError) {
|
||||||
|
this.current = 1;
|
||||||
|
} else {
|
||||||
|
this.current = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
this.$forceUpdate()
|
||||||
|
},
|
||||||
// 删除图片
|
// 删除图片
|
||||||
deleteImgFunc(item, index) {
|
deleteImgFunc(item, index) {
|
||||||
this.imgsList.splice(index, 1);
|
this.imgsList.splice(index, 1);
|
||||||
@ -565,13 +464,21 @@ export default {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (item.showAddImg) {
|
||||||
|
if (item.imageResponse && item.imageResponse.length > 0) {
|
||||||
|
} else {
|
||||||
|
AllOK = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (item.choiceResponse && item.choiceResponse.length > 0) {
|
if (item.choiceResponse && item.choiceResponse.length > 0) {
|
||||||
questionResponsesList.push({
|
questionResponsesList.push({
|
||||||
questionId: item.questionId,
|
questionId: item.questionId,
|
||||||
textResponse: "",
|
textResponse: "",
|
||||||
choiceResponse: item.choiceResponse,
|
choiceResponse: item.choiceResponse,
|
||||||
imageResponse: item.imageResponse,
|
imageResponse: item.imageResponse,
|
||||||
score: item.choiceResponse[0].mark || (item.mark ? item.mark : 0),
|
// score: item.choiceResponse[0].mark || (item.mark ? item.mark : 0),
|
||||||
|
score: item.score,
|
||||||
});
|
});
|
||||||
let mark =
|
let mark =
|
||||||
item.choiceResponse[0].mark || (item.mark ? item.mark : 0);
|
item.choiceResponse[0].mark || (item.mark ? item.mark : 0);
|
||||||
@ -647,6 +554,7 @@ export default {
|
|||||||
};
|
};
|
||||||
|
|
||||||
console.log("req", req);
|
console.log("req", req);
|
||||||
|
// return
|
||||||
// 原node接口
|
// 原node接口
|
||||||
// const data = await this.$request.$webNodePOST(
|
// const data = await this.$request.$webNodePOST(
|
||||||
// `questionnaire-responses`,
|
// `questionnaire-responses`,
|
||||||
@ -1108,7 +1016,7 @@ export default {
|
|||||||
// },
|
// },
|
||||||
// });
|
// });
|
||||||
},
|
},
|
||||||
fail: function (err) {},
|
fail: function (err) { },
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
// 显示多选的弹出框
|
// 显示多选的弹出框
|
||||||
@ -1227,30 +1135,30 @@ export default {
|
|||||||
background: #fff;
|
background: #fff;
|
||||||
background-image: url("https://eshangtech.com/minTestImg/placeBg.png");
|
background-image: url("https://eshangtech.com/minTestImg/placeBg.png");
|
||||||
background-size: 100% 100%;
|
background-size: 100% 100%;
|
||||||
background-position: 2rpx 2rpx;
|
// background-position: 2rpx 2rpx;
|
||||||
background-repeat: no-repeat;
|
background-repeat: no-repeat;
|
||||||
|
|
||||||
.placeName {
|
.placeName {
|
||||||
font-family: "PingFangSC";
|
font-family: "PingFang SC";
|
||||||
font-weight: 400;
|
font-weight: 500;
|
||||||
font-size: 26rpx;
|
font-size: 26rpx;
|
||||||
color: #010b18;
|
line-height: 36rpx;
|
||||||
line-height: 40rpx;
|
color: #000000;
|
||||||
text-align: left;
|
text-align: left;
|
||||||
font-style: normal;
|
font-style: normal;
|
||||||
}
|
}
|
||||||
|
|
||||||
.userBox {
|
.userBox {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
margin-top: 12rpx;
|
margin-top: 16rpx;
|
||||||
|
|
||||||
.userTop {
|
.userTop {
|
||||||
.userName {
|
.userName {
|
||||||
font-family: "PingFangSC";
|
font-family: "PingFang SC";
|
||||||
font-weight: 400;
|
font-weight: 500;
|
||||||
font-size: 26rpx;
|
font-size: 26rpx;
|
||||||
color: #010b18;
|
line-height: 36rpx;
|
||||||
line-height: 40rpx;
|
color: #000000;
|
||||||
text-align: left;
|
text-align: left;
|
||||||
font-style: normal;
|
font-style: normal;
|
||||||
margin-right: 12rpx;
|
margin-right: 12rpx;
|
||||||
@ -1259,13 +1167,13 @@ export default {
|
|||||||
.labelBox {
|
.labelBox {
|
||||||
font-family: "PingFangSC";
|
font-family: "PingFangSC";
|
||||||
font-weight: 400;
|
font-weight: 400;
|
||||||
font-size: 24rpx;
|
font-size: 22rpx;
|
||||||
color: #676d74;
|
color: #5D77B5;
|
||||||
line-height: 32rpx;
|
line-height: 32rpx;
|
||||||
text-align: left;
|
text-align: left;
|
||||||
font-style: normal;
|
font-style: normal;
|
||||||
padding: 2rpx 8rpx;
|
padding: 2rpx 8rpx;
|
||||||
background: #f0f2f7;
|
background: #D4E0FC;
|
||||||
border-radius: 4rpx;
|
border-radius: 4rpx;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1276,9 +1184,9 @@ export default {
|
|||||||
margin-top: 8rpx;
|
margin-top: 8rpx;
|
||||||
|
|
||||||
.timeIcon {
|
.timeIcon {
|
||||||
width: 32rpx;
|
width: 30rpx;
|
||||||
height: 32rpx;
|
height: 30rpx;
|
||||||
margin-right: 4rpx;
|
margin-right: 6rpx;
|
||||||
}
|
}
|
||||||
|
|
||||||
.nowTime {
|
.nowTime {
|
||||||
@ -1405,6 +1313,7 @@ export default {
|
|||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
justify-content: space-between;
|
justify-content: space-between;
|
||||||
|
margin-bottom: 30rpx;
|
||||||
|
|
||||||
.quetionLeft {
|
.quetionLeft {
|
||||||
font-family: "PingFangSC";
|
font-family: "PingFangSC";
|
||||||
@ -1547,6 +1456,17 @@ export default {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.choiceResList {
|
||||||
|
width: 100%;
|
||||||
|
|
||||||
|
.choiceItem {
|
||||||
|
display: flex;
|
||||||
|
align-items: flex-start;
|
||||||
|
margin-bottom: 20rpx;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.requestionCheckedItem {
|
.requestionCheckedItem {
|
||||||
|
|||||||
@ -1,12 +1,10 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<svg width="12" height="12" viewBox="0 0 12 12" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||||
<svg width="20px" height="20px" viewBox="0 0 20 20" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
<g id="坐标" clip-path="url(#clip0_8_534)">
|
||||||
<title>编组_8@2x</title>
|
<path id="Vector" d="M5.99997 0C3.12564 0 0.795532 2.33011 0.795532 5.20444C0.795532 8.61328 5.99997 12 5.99997 12C5.99997 12 11.2044 8.58984 11.2044 5.20444C11.2044 2.33011 8.8743 0 5.99997 0ZM5.99997 6.9767C4.80263 6.9767 3.832 6.00607 3.832 4.80873C3.832 3.61139 4.80263 2.64076 5.99997 2.64076C7.19731 2.64076 8.16794 3.61139 8.16794 4.80873C8.16794 6.00607 7.19731 6.9767 5.99997 6.9767Z" fill="#4C4C4C"/>
|
||||||
<g id="页面-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
|
</g>
|
||||||
<g id="切图" transform="translate(-50.000000, -25.000000)">
|
<defs>
|
||||||
<g id="编组-8" transform="translate(50.000000, 25.000000)">
|
<clipPath id="clip0_8_534">
|
||||||
<rect id="矩形" x="0" y="0" width="20" height="20"></rect>
|
<rect width="12" height="12" fill="white"/>
|
||||||
<path d="M10,2 C13.8659932,2 17,5.13400675 17,9 C17,11.5773288 14.6666667,14.5773288 10,18 C5.33333333,14.5773288 3,11.5773288 3,9 C3,5.13400675 6.13400675,2 10,2 Z M10,7 C8.8954305,7 8,7.8954305 8,9 C8,10.1045695 8.8954305,11 10,11 C11.1045695,11 12,10.1045695 12,9 C12,7.8954305 11.1045695,7 10,7 Z" id="形状结合" fill="#3B72FF"></path>
|
</clipPath>
|
||||||
</g>
|
</defs>
|
||||||
</g>
|
</svg>
|
||||||
</g>
|
|
||||||
</svg>
|
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 925 B After Width: | Height: | Size: 694 B |
Loading…
x
Reference in New Issue
Block a user