123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605 |
- <template>
- <view class="share">
- <view :class="{'share-box': shareState}" @click="handleHiddenShare"></view>
- <view class="share-item" :class="{'share-show': shareState}">
- <view class="share-to">
- <text style="font-size: 16px;color: #000;">{{title}}</text>
- </view>
- <scroll-view scroll-y="true" class="scroll-Y">
- <view class="uni-list-cell" hover-class="uni-list-cell-hover" v-for="(value, key) in historyList"
- :key="key">
- <view class="uni-media-list">
- <view class="uni-media-list-body">
-
- <view class="uni-media-list-text-top">
- <view class="tit-text">负责人:</view>
- <view class="normal-text">{{value.constructUser}}</view>
- </view>
- <view class="uni-media-list-text-top">
- <view class="tit-text">负责人联系电话:</view>
- <view class="normal-text">{{value.constructPhone}}</view>
- </view>
- <view class="uni-media-list-text-top" v-if="!isEmpty(value.constructTime)">
- <view class="tit-text">施工时间:</view>
- <view class="normal-text">{{value.constructTime}}</view>
- </view>
- <view class="uni-media-list-text-top">
- <view class="uni-common-mt" style="width: 100%;">
- <text class="uni-title uni-common-pl" style=" font-size: 13px;color:
- #000;margin-top: 5px;">施工内容:</text>
- <view style="width: 100%;padding-right: 20rpx;box-sizing: border-box;">
- <textarea class="textarea" maxlength="255" :disabled="true"
- placeholder-style="padding: 10rpx;"
- style="width: 100%;height: 100%;border: 1rpx solid #cccccc; border-radius: 15rpx;padding: 10rpx;line-height:normal;"
- auto-height>{{value.remark}}</textarea>
- </view>
- </view>
- </view>
- <view class="uni-media-list-text-top-no" v-if="type==='pe'">
- <!-- 开孔照片 -->
- <view class="uni-common-mt" style="width: 100%;margin-top: 5px;">
- <text class="uni-title uni-common-pl"
- style=" font-size: 13px;color: #000;margin-top: 5px; margin-left: 8px;">开孔照片:</text>
- </view>
- <view style="display: flex; flex-wrap: wrap;margin-top: 10px;">
- <view v-for="(item,index) in value.peHolesOpening" :key="index"
- style="position: relative;">
- <view
- v-if="item.substring(item.length - 3) == 'png' || item.substring(item.length - 3) == 'jpg' || item.substring(item.length - 3) == 'jpeg'">
- <image :src="item" mode=""
- style="width: 100rpx; height: 100rpx; margin: 0 12rpx;"
- @click="showPhoto(index,value.peHolesOpening)">
- </image>
- </view>
- <view v-else>
- <video :src="item"
- style="width: 100rpx; height: 100rpx; margin: 0 12rpx;"></video>
- </view>
- </view>
- </view>
- <!-- 封堵照片 -->
- <view class="uni-common-mt" style="width: 100%;margin-top: 5px;#000;margin-top:
- 5px; margin-left: 8px;">封堵照片:</text>
- </view>
- <view style="display: flex; flex-wrap: wrap;margin-top: 10px;">
- <view v-for="(item,index) in value.pePlugging" :key="index"
- style="position: relative;">
- <view
- v-if="item.substring(item.length - 3) == 'png' || item.substring(item.length - 3) == 'jpg' || item.substring(item.length - 3) == 'jpeg'">
- <image :src="item" mode=""
- style="width: 100rpx; height: 100rpx; margin: 0 12rpx;"
- @click="showPhoto(index,value.pePlugging)">
- </image>
- </view>
- <view v-else>
- <video :src="item"
- style="width: 100rpx; height: 100rpx; margin: 0 12rpx;"></video>
- </view>
- </view>
- </view>
- <!-- 作业完成照片 -->
- <view class="uni-common-mt" style="width: 100%;margin-top: 5px;">
- <text class="uni-title uni-common-pl"
- style=" font-size: 13px;color: #000;margin-top: 5px; margin-left: 8px;">作业完成照片:</text>
- </view>
- <view style="display: flex; flex-wrap: wrap;margin-top: 10px;">
- <view v-for="(item,index) in value.peHomeworkDone" :key="index"
- style="position: relative;">
- <view
- v-if="item.substring(item.length - 3) == 'png' || item.substring(item.length - 3) == 'jpg' || item.substring(item.length - 3) == 'jpeg'">
- <image :src="item" mode=""
- style="width: 100rpx; height: 100rpx; margin: 0 12rpx;"
- @click="showPhoto(index,value.peHomeworkDone)">
- </image>
- </view>
- <view v-else>
- <video :src="item"
- style="width: 100rpx; height: 100rpx; margin: 0 12rpx;"></video>
- </view>
- </view>
- </view>
- <!-- 鞍型焊接照片 -->
- <view class="uni-common-mt" style="width: 100%;margin-top: 5px;">
- <text class="uni-title uni-common-pl" style=" font-size: 13px;color:
- #000;margin-top: 5px; margin-left: 8px;">鞍型焊接照片:</text>
- </view>
- <view style="display: flex; flex-wrap: wrap;margin-top: 10px;">
- <view v-for="(item,index) in value.peSaddleWelding" :key="index"
- style="position: relative;">
- <view
- v-if="item.substring(item.length - 3) == 'png' || item.substring(item.length - 3) == 'jpg' || item.substring(item.length - 3) == 'jpeg'">
- <image :src="item" mode=""
- style="width: 100rpx; height: 100rpx; margin: 0 12rpx;"
- @click="showPhoto(index,value.peSaddleWelding)">
- </image>
- </view>
- <view v-else>
- <video :src="item"
- style="width: 100rpx; height: 100rpx; margin: 0 12rpx;"></video>
- </view>
- </view>
- </view>
- <!-- 气密实验照片 -->
- <view class="uni-common-mt" style="width: 100%;margin-top: 5px;">
- <text class="uni-title uni-common-pl" style=" font-size: 13px;color:
- #000;margin-top: 5px; margin-left: 8px;">气密实验照片:</text>
- </view>
- <view style="display: flex; flex-wrap: wrap;margin-top: 10px;">
- <view v-for="(item,index) in value.peAirtightTest" :key="index"
- style="position: relative;">
- <view
- v-if="item.substring(item.length - 3) == 'png' || item.substring(item.length - 3) == 'jpg' || item.substring(item.length - 3) == 'jpeg'">
- <image :src="item" mode=""
- style="width: 100rpx; height: 100rpx; margin: 0 12rpx;"
- @click="showPhoto(index,value.peAirtightTest)">
- </image>
- </view>
- <view v-else>
- <video :src="item"
- style="width: 100rpx; height: 100rpx; margin: 0 12rpx;"></video>
- </view>
- </view>
- </view>
- <!-- 碰口作业照片 -->
- <view class="uni-common-mt" style="width: 100%;margin-top: 5px;">
- <text class="uni-title uni-common-pl"
- style=" font-size: 13px;color: #000;margin-top: 5px; margin-left: 8px;">碰口作业照片:</text>
- </view>
- <view style="display: flex; flex-wrap: wrap;margin-top: 10px;">
- <view v-for="(item,index) in value.peCollisionOperating" :key="index"
- style="position: relative;">
- <view
- v-if="item.substring(item.length - 3) == 'png' || item.substring(item.length - 3) == 'jpg' || item.substring(item.length - 3) == 'jpeg'">
- <image :src="item" mode=""
- style="width: 100rpx; height: 100rpx; margin: 0 12rpx;"
- @click="showPhoto(index,value.peCollisionOperating)">
- </image>
- </view>
- <view v-else>
- <video :src="item"
- style="width: 100rpx; height: 100rpx; margin: 0 12rpx;"></video>
- </view>
- </view>
- </view>
- <!-- 恢复通气捡漏照片 -->
- <view class="uni-common-mt" style="width: 100%;margin-top: 5px;">
- <text class="uni-title uni-common-pl"
- style=" font-size: 13px;color: #000;margin-top: 5px; margin-left: 8px;">恢复通气捡漏照片:</text>
- </view>
- <view style="display: flex; flex-wrap: wrap;margin-top: 10px;">
- <view v-for="(item,index) in value.peAirrecovering" :key="index"
- style="position: relative;">
- <view
- v-if="item.substring(item.length - 3) == 'png' || item.substring(item.length - 3) == 'jpg' || item.substring(item.length - 3) == 'jpeg'">
- <image :src="item" mode=""
- style="width: 100rpx; height: 100rpx; margin: 0 12rpx;"
- @click="showPhoto(index,value.peAirrecovering)">
- </image>
- </view>
- <view v-else>
- <video :src="item"
- style="width: 100rpx; height: 100rpx; margin: 0 12rpx;"></video>
- </view>
- </view>
- </view>
- </view>
- <view class="uni-media-list-text-top-no" v-else>
- <!-- 开孔照片 -->
- <view class="uni-common-mt" style="width: 100%;margin-top: 5px;">
- <text class="uni-title uni-common-pl"
- style=" font-size: 13px;color: #000;margin-top: 5px; margin-left: 8px;">开孔照片:</text>
- </view>
- <view style="display: flex; flex-wrap: wrap;margin-top: 10px;">
- <view v-for="(item,index) in value.ironHolesOpening" :key="index"
- style="position: relative;">
- <view
- v-if="item.substring(item.length - 3) == 'png' || item.substring(item.length - 3) == 'jpg' || item.substring(item.length - 3) == 'jpeg'">
- <image :src="item" mode=""
- style="width: 100rpx; height: 100rpx; margin: 0 12rpx;"
- @click="showPhoto(index,value.ironHolesOpening)">
- </image>
- </view>
- <view v-else>
- <video :src="item"
- style="width: 100rpx; height: 100rpx; margin: 0 12rpx;"></video>
- </view>
- </view>
- </view>
- <!-- 封堵照片 -->
- <view class="uni-common-mt" style="width: 100%;margin-top: 5px;#000;margin-top:
- 5px; margin-left: 8px;">封堵照片:</text>
- </view>
- <view style="display: flex; flex-wrap: wrap;margin-top: 10px;">
- <view v-for="(item,index) in value.ironCleaning" :key="index"
- style="position: relative;">
- <view
- v-if="item.substring(item.length - 3) == 'png' || item.substring(item.length - 3) == 'jpg' || item.substring(item.length - 3) == 'jpeg'">
- <image :src="item" mode=""
- style="width: 100rpx; height: 100rpx; margin: 0 12rpx;"
- @click="showPhoto(index,value.ironCleaning)">
- </image>
- </view>
- <view v-else>
- <video :src="item"
- style="width: 100rpx; height: 100rpx; margin: 0 12rpx;"></video>
- </view>
- </view>
- </view>
- <!-- 作业完成照片 -->
- <view class="uni-common-mt" style="width: 100%;margin-top: 5px;">
- <text class="uni-title uni-common-pl"
- style=" font-size: 13px;color: #000;margin-top: 5px; margin-left: 8px;">作业完成照片:</text>
- </view>
- <view style="display: flex; flex-wrap: wrap;margin-top: 10px;">
- <view v-for="(item,index) in value.ironHomeworkDone" :key="index"
- style="position: relative;">
- <view
- v-if="item.substring(item.length - 3) == 'png' || item.substring(item.length - 3) == 'jpg' || item.substring(item.length - 3) == 'jpeg'">
- <image :src="item" mode=""
- style="width: 100rpx; height: 100rpx; margin: 0 12rpx;"
- @click="showPhoto(index,value.ironHomeworkDone)">
- </image>
- </view>
- <view v-else>
- <video :src="item"
- style="width: 100rpx; height: 100rpx; margin: 0 12rpx;"></video>
- </view>
- </view>
- </view>
- <!-- 管道壁厚照片 -->
- <view class="uni-common-mt" style="width: 100%;margin-top: 5px;">
- <text class="uni-title uni-common-pl"
- style=" font-size: 13px;color: #000;margin-top: 5px; margin-left: 8px;">管道壁厚照片:</text>
- </view>
- <view style="display: flex; flex-wrap: wrap;margin-top: 10px;">
- <view v-for="(item,index) in value.ironPipelineThickness" :key="index"
- style="position: relative;">
- <view
- v-if="item.substring(item.length - 3) == 'png' || item.substring(item.length - 3) == 'jpg' || item.substring(item.length - 3) == 'jpeg'">
- <image :src="item" mode=""
- style="width: 100rpx; height: 100rpx; margin: 0 12rpx;"
- @click="showPhoto(index,value.ironPipelineThickness)">
- </image>
- </view>
- <view v-else>
- <video :src="item"
- style="width: 100rpx; height: 100rpx; margin: 0 12rpx;"></video>
- </view>
- </view>
- </view>
- <!-- 焊接四通照片 -->
- <view class="uni-common-mt" style="width: 100%;margin-top: 5px;">
- <text class="uni-title uni-common-pl"
- style=" font-size: 13px;color: #000;margin-top: 5px; margin-left: 8px;">焊接四通照片:</text>
- </view>
- <view style="display: flex; flex-wrap: wrap;margin-top: 10px;">
- <view v-for="(item,index) in value.iron4Welding" :key="index"
- style="position: relative;">
- <view
- v-if="item.substring(item.length - 3) == 'png' || item.substring(item.length - 3) == 'jpg' || item.substring(item.length - 3) == 'jpeg'">
- <image :src="item" mode=""
- style="width: 100rpx; height: 100rpx; margin: 0 12rpx;"
- @click="showPhoto(index,value.iron4Welding)">
- </image>
- </view>
- <view v-else>
- <video :src="item"
- style="width: 100rpx; height: 100rpx; margin: 0 12rpx;"></video>
- </view>
- </view>
- </view>
- <!-- 焊接旁通照片 -->
- <view class="uni-common-mt" style="width: 100%;margin-top: 5px;">
- <text class="uni-title uni-common-pl"
- style=" font-size: 13px;color: #000;margin-top: 5px; margin-left: 8px;">焊接旁通照片:</text>
- </view>
- <view style="display: flex; flex-wrap: wrap;margin-top: 10px;">
- <view v-for="(item,index) in value.ironBypassWelding" :key="index"
- style="position: relative;">
- <view
- v-if="item.substring(item.length - 3) == 'png' || item.substring(item.length - 3) == 'jpg' || item.substring(item.length - 3) == 'jpeg'">
- <image :src="item" mode=""
- style="width: 100rpx; height: 100rpx; margin: 0 12rpx;"
- @click="showPhoto(index,value.ironBypassWelding)">
- </image>
- </view>
- <view v-else>
- <video :src="item"
- style="width: 100rpx; height: 100rpx; margin: 0 12rpx;"></video>
- </view>
- </view>
- </view>
- <!-- 氮气吹扫照片 -->
- <view class="uni-common-mt" style="width: 100%;margin-top: 5px;">
- <text class="uni-title uni-common-pl"
- style=" font-size: 13px;color: #000;margin-top: 5px; margin-left: 8px;">氮气吹扫照片:</text>
- </view>
- <view style="display: flex; flex-wrap: wrap;margin-top: 10px;">
- <view v-for="(item,index) in value.ironNitrogenPurging" :key="index"
- style="position: relative;">
- <view
- v-if="item.substring(item.length - 3) == 'png' || item.substring(item.length - 3) == 'jpg' || item.substring(item.length - 3) == 'jpeg'">
- <image :src="item" mode=""
- style="width: 100rpx; height: 100rpx; margin: 0 12rpx;"
- @click="showPhoto(index,value.ironNitrogenPurging)">
- </image>
- </view>
- <view v-else>
- <video :src="item"
- style="width: 100rpx; height: 100rpx; margin: 0 12rpx;"></video>
- </view>
- </view>
- </view>
- <!-- 管道置换照片 -->
- <view class="uni-common-mt" style="width: 100%;margin-top: 5px;">
- <text class="uni-title uni-common-pl"
- style=" font-size: 13px;color: #000;margin-top: 5px; margin-left: 8px;">管道置换照片:</text>
- </view>
- <view style="display: flex; flex-wrap: wrap;margin-top: 10px;">
- <view v-for="(item,index) in value.ironPipelineReplacing" :key="index"
- style="position: relative;">
- <view
- v-if="item.substring(item.length - 3) == 'png' || item.substring(item.length - 3) == 'jpg' || item.substring(item.length - 3) == 'jpeg'">
- <image :src="item" mode=""
- style="width: 100rpx; height: 100rpx; margin: 0 12rpx;"
- @click="showPhoto(index,value.ironPipelineReplacing)">
- </image>
- </view>
- <view v-else>
- <video :src="item"
- style="width: 100rpx; height: 100rpx; margin: 0 12rpx;"></video>
- </view>
- </view>
- </view>
- <!-- 下堵照片 -->
- <view class="uni-common-mt" style="width: 100%;margin-top: 5px;">
- <text class="uni-title uni-common-pl"
- style=" font-size: 13px;color: #000;margin-top: 5px; margin-left: 8px;">下堵照片:</text>
- </view>
- <view style="display: flex; flex-wrap: wrap;margin-top: 10px;">
- <view v-for="(item,index) in value.ironLowerEndCap" :key="index"
- style="position: relative;">
- <view
- v-if="item.substring(item.length - 3) == 'png' || item.substring(item.length - 3) == 'jpg' || item.substring(item.length - 3) == 'jpeg'">
- <image :src="item" mode=""
- style="width: 100rpx; height: 100rpx; margin: 0 12rpx;"
- @click="showPhoto(index,value.ironLowerEndCap)">
- </image>
- </view>
- <view v-else>
- <video :src="item"
- style="width: 100rpx; height: 100rpx; margin: 0 12rpx;"></video>
- </view>
- </view>
- </view>
- <!-- 四通防腐照片 -->
- <view class="uni-common-mt" style="width: 100%;margin-top: 5px;">
- <text class="uni-title uni-common-pl"
- style=" font-size: 13px;color: #000;margin-top: 5px; margin-left: 8px;">四通防腐照片:</text>
- </view>
- <view style="display: flex; flex-wrap: wrap;margin-top: 10px;">
- <view v-for="(item,index) in value.iron4Aczoiling" :key="index"
- style="position: relative;">
- <view
- v-if="item.substring(item.length - 3) == 'png' || item.substring(item.length - 3) == 'jpg' || item.substring(item.length - 3) == 'jpeg'">
- <image :src="item" mode=""
- style="width: 100rpx; height: 100rpx; margin: 0 12rpx;"
- @click="showPhoto(index,value.iron4Aczoiling)">
- </image>
- </view>
- <view v-else>
- <video :src="item"
- style="width: 100rpx; height: 100rpx; margin: 0 12rpx;"></video>
- </view>
- </view>
- </view>
- <!-- end -->
- </view>
- </view>
- </view>
- </view>
- </scroll-view>
- </view>
- </view>
- </template>
- <script>
- export default {
- props: {
- data: {
- type: Object,
- default: {}
- },
- titleLabel: {
- type: String
- },
- titleType: {
- type: String
- }
- },
- created() {
- this.getParamsData();
- },
- watch: {
- data(data) {
- this.getParamsData();
- }
- },
- data() {
- return {
- historyList: [], //历史数据
- historyPhotoList: [], //历史图片数据
- shareState: false,
- title: '',
- type: '',
- };
- },
- methods: {
- isEmpty(str) {
- return (!str || 0 === str.length);
- },
- showPhoto(index, list) {
- let newArr = [];
- list.forEach((item, index) => {
- if (item.substring(item.length - 3) == 'png' || item.substring(item.length - 3) == 'jpg' ||
- item.substring(item.length - 4) == 'jpeg') {
- newArr.push(item)
- }
- });
- uni.previewImage({
- current: index,
- urls: newArr,
- })
- },
- getParamsData() {
- var selectData = this.data;
- this.title = this.titleLabel;
- this.type = this.titleType;
- this.historyList = selectData.zEngineeringNodeBo.zEngineeringInfoBoList;
- },
- // 显示分享
- handleShowShare() {
- this.shareState = true;
- },
- // 隐藏分享
- handleHiddenShare() {
- this.shareState = false;
- }
- }
- }
- </script>
- <style lang="scss">
- .uni-media-list-body {
- border: 1px solid #eee;
- border-radius: 40rpx;
- margin: 10rpx 30rpx 20rpx;
- padding: 10rpx 0 40rpx;
- box-shadow: 0 0 5px #eee;
- }
- .share {
- width: 100%;
- height: 100%;
- }
- .tit-text {
- color: #4f535a;
- margin-right: 20rpx;
- }
- .cz-style {
- background: #e8f4f9;
- margin: 20rpx;
- padding: 10rpx;
- border-radius: 20rpx;
- border: 1px solid #d4e3f0;
- }
- .uni-media-list-text-top {
- font-size: 14px;
- color: #696969;
- padding: 20rpx 20rpx;
- border-bottom: 1px solid #eee;
- display: flex;
- align-items: center;
- }
- .uni-media-list-text-top-no {
- font-size: 14px;
- color: #696969;
- padding: 20rpx 20rpx;
- border-bottom: 1px solid #eee;
- align-items: center;
- }
- .share-box {
- width: 100%;
- height: 100%;
- position: fixed;
- top: 0rpx;
- left: 0rpx;
- bottom: 0rpx;
- right: 0rpx;
- background-color: rgba(0, 0, 0, 0.4);
- transition: .3s;
- z-index: 999;
- }
- // 进入分享动画
- .share-show {
- transition: all 0.3s ease;
- transform: translateY(0%) !important;
- border-radius: 20px 20px 0px 0px;
- }
- .scroll-Y {
- height: 58vh;
- }
- // 离开分享动画
- .share-item {
- position: fixed;
- left: 0;
- bottom: 0;
- width: 100%;
- height: 70%;
- background-color: #FFFFFF;
- transition: all 0.3s ease;
- transform: translateY(100%);
- z-index: 1999;
- .share-to {
- width: 100%;
- height: 30px;
- display: flex;
- justify-content: center;
- margin: 30rpx 0;
- align-items: center;
- }
- .content {
- width: 100%;
- height: auto;
- display: flex;
- flex-wrap: wrap;
- .block {
- width: 100%;
- display: flex;
- flex-direction: column;
- justify-content: center;
- align-items: left;
- height: auto;
- image {
- width: 80rpx;
- height: 80rpx;
- }
- text {
- margin-top: 16rpx;
- font-size: 28rpx;
- color: #606266;
- }
- }
- }
- .cancel {
- width: 100%;
- height: 3rem;
- display: flex;
- justify-content: center;
- align-items: center;
- border-top: 1rpx solid #E4E7ED;
- }
- }
- </style>
|