From efcdc8c49b0452d9c7f192ab351da09bf8aafc80 Mon Sep 17 00:00:00 2001 From: liukangdong <898885815@qq.com> Date: 星期一, 27 五月 2024 18:34:58 +0800 Subject: [PATCH] Merge branch 'master' of http://139.186.142.91:10010/r/productDev/dmvisit --- admin/src/components/business/OperaHiddenDangerWindow.vue | 216 +++++++++++++++++++++++++++++++++++++---------------- 1 files changed, 151 insertions(+), 65 deletions(-) diff --git a/admin/src/components/business/OperaHiddenDangerWindow.vue b/admin/src/components/business/OperaHiddenDangerWindow.vue index ae6acc1..6882524 100644 --- a/admin/src/components/business/OperaHiddenDangerWindow.vue +++ b/admin/src/components/business/OperaHiddenDangerWindow.vue @@ -1,9 +1,9 @@ <template> <GlobalWindow - :title="title" - :visible.sync="visible" - @confirm="confirm" - @close="reject" + :title="title" + :visible.sync="visible" + @confirm="confirm" + @close="reject" > <div class="modal_wrap"> <div class="modal_content"> @@ -35,20 +35,72 @@ <div class="label">闅愭偅鎻忚堪</div> <div class="value">{{model.content || ''}}</div> </div> - <div class="item"> + <div class="item" style="width: 100%"> <div class="label">鐜板満鎯呭喌</div> <div class="value" v-if="model.submitFileList ==null || !model.submitFileList.length">鏃�</div> <div class="value" v-if="model.submitFileList !=null && model.submitFileList.length"> - <span v-for="item in model.submitFileList" :key="item.id">{{item.fileurlFull}}</span> + <div v-for="item in model.submitFileList" :key="item.id" style="display: inline;margin-right: 20px"> + <video + v-if="item.fileurlFull && item.fileurlFull.endsWith('.mp4')" + ref="videoRef" + autoplay + controls + preload="auto" + style="width: 80px;height: 80px;object-fit: contain;" + :src="item.fileurlFull" + /> + <el-image + v-else-if="item.fileurlFull" + style="width:80px; height: 80px" + :src="item.fileurlFull" + :preview-src-list="[item.fileurlFull]"> + </el-image> + </div> </div> </div> - <div class="item" v-if="model.status==1"> + <div class="item" v-if="model.status==1" style="width: 100%"> <div class="label">澶勭悊鍓�</div> - <div class="value"></div> + <div class="value" v-if="model.dealBeforeFileList !=null && model.dealBeforeFileList.length"> + <div v-for="item in model.dealBeforeFileList" :key="item.id" style="display: inline;margin-right: 20px"> + <video + v-if="item.fileurlFull && item.fileurlFull.endsWith('.mp4')" + ref="videoRef" + autoplay + controls + preload="auto" + style="width: 80px;height: 80px;object-fit: contain;" + :src="item.fileurlFull" + /> + <el-image + v-else-if="item.fileurlFull" + style="width:80px; height: 80px" + :src="item.fileurlFull" + :preview-src-list="[item.fileurlFull]"> + </el-image> + </div> + </div> </div> - <div class="item" v-if="model.status==1"> + <div class="item" v-if="model.status==1" style="width: 100%"> <div class="label">澶勭悊鍚�</div> - <div class="value"></div> + <div class="value" v-if="model.dealAfterFileList !=null && model.dealAfterFileList.length"> + <div v-for="item in model.dealAfterFileList" :key="item.id" style="display: inline;margin-right: 20px"> + <video + v-if="item.fileurlFull && item.fileurlFull.endsWith('.mp4')" + ref="videoRef" + autoplay + controls + preload="auto" + style="width: 80px;height: 80px;object-fit: contain;" + :src="item.fileurlFull" + /> + <el-image + v-else-if="item.fileurlFull" + style="width:80px; height: 80px" + :src="item.fileurlFull" + :preview-src-list="[item.fileurlFull]"> + </el-image> + </div> + </div> </div> <div class="item" v-if="model.status==1 || model.status==2"> <div class="label">澶勭悊璇存槑</div> @@ -60,40 +112,31 @@ <div class="side"> <div class="side_title">瀹℃壒娴佺▼</div> <div class="list"> - <div class="item"> - <div class="separate"></div> + <div class="item" v-for="(item,index) in logList" :key="item.id"> + <div class="separate" v-if="index < logList.length-1"></div> <div class="info"> - <i class="el-icon-success icon"></i> - <img src="" class="avatar" alt="" /> + <i class="el-icon-success icon" v-if="(model.status ==1) || index < logList.length-1"></i> + <i class="el-icon-question icon1" v-if="(model.status==0) && index == logList.length-1"></i> + <i class="el-icon-error icon2" v-if="(model.status==2) && index == logList.length-1"></i> + <img v-if="item.avatar!=null && item.avatar !=''" :src="item.avatar" class="avatar" alt="" /> + <img v-if="item.avatar ==null ||item.avatar ==''" src="@/assets/avatar/man.png" class="avatar" alt="" /> <div class="content"> <div class="line"> - <div class="name">鍒樻煇鍒樻煇</div> - <div class="time">2020-02-02 12:20</div> - </div> - <div class="line"> - <div class="company">涓浗绉诲姩鏈夐檺鍏徃</div> - </div> - </div> - </div> - </div> - <div class="item"> - <!-- <div v-if="" class="separate"></div> --> - <div class="info"> - <i class="el-icon-success icon"></i> - <img src="" class="avatar" alt="" /> - <div class="content"> - <div class="line"> - <div class="name">鍒樻煇鍒樻煇</div> - <div class="time">2020-02-02 12:20</div> + <div class="name">{{ item.title}}</div> + <div class="time">{{ item.createDate }}</div> </div> <div class="line"> <div class="company"> - 涓浗绉诲姩鏈夐檺鍏徃( <span class="status">宸插悓鎰�</span> ) + {{ item.createUserName }} {{ item.companyName }} + <div style="display: inline" v-if="index == logList.length-1"> + 锛�<span class="status-green" v-if="model.status==1">宸插鐞�</span> + <span class="status-blue" v-if="model.status==0">寰呭鐞�</span> + <span class="status-red" v-if="model.status==2">宸查��鍥�</span>锛� + </div> </div> </div> </div> </div> - <div class="remark">鎻愪氦绾﹀ソ鐨�</div> </div> </div> </div> @@ -107,16 +150,16 @@ </template> <!-- 鍚屾剰/鎷掔粷 --> <el-dialog - append-to-body - :title="apprTitle" - :visible.sync="isShowAppr" - width="480px" + append-to-body + :title="apprTitle" + :visible.sync="isShowAppr" + width="480px" > <el-input - type="textarea" - :placeholder="apprTitle + '璇存槑锛岄潪蹇呭~'" - :rows="4" - v-model="param.explain" + type="textarea" + :placeholder="apprTitle + '璇存槑锛岄潪蹇呭~'" + :rows="4" + v-model="param.explain" /> <span slot="footer" class="dialog-footer"> <el-button @click="isShowAppr = false">鍙栨秷</el-button> @@ -125,30 +168,30 @@ </el-dialog> <!-- 闅愭偅 --> <el-dialog - append-to-body - title="闅愭偅" - :visible.sync="isShowProblem" - width="480px" + append-to-body + title="闅愭偅" + :visible.sync="isShowProblem" + width="480px" > <el-form :model="param" :rules="rules" ref="ruleForm" label-width="100px"> <el-form-item label="閫�鍥炴椂闂�"> <el-date-picker - class="w300" - value-format="yyyy-MM-dd" - type="date" - placeholder="閫夋嫨鏃ユ湡" - v-model="param.date" + class="w300" + value-format="yyyy-MM-dd" + type="date" + placeholder="閫夋嫨鏃ユ湡" + v-model="param.date" /> </el-form-item> <el-form-item label="鏁存敼鍓�"> <div class="df_ac"> <img src="@/assets/avatar/man.png" /> <el-upload - class="avatar-uploader" - action="https://jsonplaceholder.typicode.com/posts/" - :show-file-list="false" - :on-success="handleAvatarSuccess" - :before-upload="beforeAvatarUpload" + class="avatar-uploader" + action="https://jsonplaceholder.typicode.com/posts/" + :show-file-list="false" + :on-success="handleAvatarSuccess" + :before-upload="beforeAvatarUpload" > <img v-if="param.url" :src="param.url" class="avatar" /> <div v-else class="upload_box"> @@ -160,17 +203,17 @@ </el-form-item> <el-form-item label="閫�鍥炶鏄�"> <el-input - type="textarea" - placeholder="璇峰~鍐欒鏄�" - :rows="4" - v-model="param.explain" + type="textarea" + placeholder="璇峰~鍐欒鏄�" + :rows="4" + v-model="param.explain" /> </el-form-item> </el-form> <span slot="footer" class="dialog-footer"> <el-button @click="isShowProblem = false">鍙栨秷</el-button> <el-button type="primary" @click="isShowProblem = false" - >纭畾</el-button + >纭畾</el-button > </span> </el-dialog> @@ -178,14 +221,19 @@ </template> <script> +import BaseOpera from '@/components/base/BaseOpera' import GlobalWindow from '@/components/common/GlobalWindow' +import {findLogList} from "@/api/business/hiddenDanger"; export default { components: { GlobalWindow }, + extends: BaseOpera, data() { return { title: '璁垮棰勭害璇︽儏', visible: false, + dataId:null, model: { }, + logList:[], isShowAppr: false, apprTitle: '鍚屾剰', param: {}, @@ -193,11 +241,35 @@ rules: {} } }, + created () { + this.config({ + api: '/business/hiddenDanger', + 'field.id': 'id' + }) + }, methods: { + dealDo(){}, + backDo(){}, open(title,target){ this.title =title this.visible=true - this.model = target + this.model = {} + this.dataId =target.id + this.getDetail() + this.getLogList() + + }, + getLogList(){ + this.api.findLogList({hiddenDangerId:this.dataId}) + .then(res =>{ + this.logList = res + }) + }, + getDetail(){ + this.api.detail(this.dataId) + .then(res =>{ + this.model = res + }) }, confirm() { console.log('--') @@ -213,6 +285,14 @@ </script> <style lang="scss" scoped> +.side_title{ + font-weight: 600; + font-size: 18px; + color: #111111; + margin-bottom: 20px; + margin-left: 20px; + margin-top: 20px; +} .upload_box { width: 84px; height: 84px; @@ -231,6 +311,7 @@ font-size: 12px; } } + .modal_wrap { display: flex; height: 100%; @@ -248,7 +329,6 @@ margin-bottom: 20px; margin-top: 30px; } - .info { .list { display: flex; @@ -344,20 +424,26 @@ .separate { position: absolute; border-left: 2px dashed #cccccc; - left: 51px; + left: 31px; height: calc(100% - 24px); top: 46px; } .info { display: flex; align-items: center; - margin-left: 40px; + margin-left: 20px; .icon { position: relative; z-index: 11; color: #53b76f; font-size: 24px; } + .icon1 { + position: relative; + z-index: 11; + color: deepskyblue; + font-size: 24px; + } .avatar { width: 40px; height: 40px; -- Gitblit v1.9.3