From 30e858fa504b268b9b436afca0a1259cf6e8c488 Mon Sep 17 00:00:00 2001 From: MrShi <1878285526@qq.com> Date: 星期二, 19 八月 2025 11:01:40 +0800 Subject: [PATCH] 优化 --- admin/src/components/business/OperaWorkorderDetailDcaWindow.vue | 172 +++++++++++++++++++++++++++++++++------------------------ 1 files changed, 100 insertions(+), 72 deletions(-) diff --git a/admin/src/components/business/OperaWorkorderDetailDcaWindow.vue b/admin/src/components/business/OperaWorkorderDetailDcaWindow.vue index da58bc1..5aeee8c 100644 --- a/admin/src/components/business/OperaWorkorderDetailDcaWindow.vue +++ b/admin/src/components/business/OperaWorkorderDetailDcaWindow.vue @@ -8,19 +8,18 @@ <div class="modal_wrap"> <div class="modal_content"> <div class="header"> - <img v-if="info.status == '3'" class="head_bg" - src="@/assets/task/bg_shenhe_fail@2x.png" alt=""> - <img v-else-if="info.status == '4'" class="head_bg" + <!-- <img v-if="info.status == '0'" class="head_bg" + src="@/assets/task/bg_shenhe_fail@2x.png" alt="">--> + <img v-if="info.status == '4' || info.status == '3'||info.status == '5'||info.status == '6'" class="head_bg" src="@/assets/task/bg_shenhe_pass@2x.png" alt=""> <img v-else class="head_bg" src="@/assets/task/bg_shenhe@2x.png" alt=""> <div class="left"> <div class="h1">{{ cateList[type] }}</div> <div class="time">鎻愪氦鏃堕棿锛歿{ info.createDate }}</div> </div> - <div class="right" :class="{ scs: info.status == '3' || info.status == '4' || info.status == '5', msg: info.status == '6' }">{{statusMap[info.status] }}</div> + <div class="right" :class="{ scs: info.status == '3' || info.status == '4' || info.status == '5', msg: info.status == '6' }">{{statusMap[info.status] }}</div> </div> - <div class="info"> - <div class="title">宸ュ崟淇℃伅</div> + <div class="info"> <div class="title">宸ュ崟淇℃伅</div> <div class="list"> <div class="item"> <div class="label">鍛樺伐濮撳悕</div> @@ -31,24 +30,28 @@ <div class="value">{{ info.companyName }} </div> </div> <div class="item"> + <div class="label">瑙傚療涓婚</div> + <div class="value">{{ info.typeName }}</div> + </div> + <div class="item"> <div class="label">涓婃姤鏃堕棿</div> <div class="value">{{ info.submitDate }}</div> </div> <div class="item"> - <div class="label">鍙戠敓鏃堕棿</div> + <div class="label">鍙戠幇鏃堕棿</div> <div class="value">{{ info.happenTime}}</div> </div> <div class="item"> - <div class="label">椋庨櫓绫诲瀷</div> - <div class="value">{{ info.typeName }}</div> - </div> - <div class="item"> - <div class="label">鍙戠敓鍦扮偣</div> + <div class="label">浣嶇疆</div> <div class="value">{{ info.locationName }}</div> </div> <div class="item"> - <div class="label">椋庨櫓鎻忚堪</div> - <div class="value">{{ info.riskInfo }}</div> + <div class="label">閫氱煡浜�</div> + <div class="value">{{ info.memberNames }}</div> + </div> + <div class="item"> + <div class="label">瑙傚療椤圭粺璁�</div> + <div class="value" style="color: #1562e2" >绗﹀悎锛氥�恵{ info.dcaYesNum || 0 }}銆� 涓嶇鍚堬細銆� <span style="color: red" >{{(info.dcaNoNum||0)}}</span> 銆�</div> </div> <div class="item" style="width: 100%"> <div class="label">鍥剧墖</div> @@ -74,87 +77,92 @@ </div> </div> </div> - </div> - <div class="side" > - <div class="side_title">澶勭悊娴佺▼</div> - <div class="list" v-if=" info.logList != null && info.logList.length != 0 - "> - <div class="item" v-for="(item, index) in info.logList" :key="item.id"> - <div class="separate" v-if="index < info.logList.length - 1"></div> - <div class="info"> - <img src="@/assets/icons/ic_dangqian.png" class="iconnew" /> - <div class="content"> - <div class="line"> - <div class="name">{{ item.title }}</div> - </div> - <div class="line"> - <div class="company"> - 鍛樺伐锛�<span> {{ item.userName }} / {{item.companyName}}</span> - <div style="display: block" >鏃堕棿锛�<span>{{item.createDate}}</span></div> - <div class="dealinfo"> - <div style="display: block" v-if="item.param2" >澶勭悊浜猴細<span>{{item.param2}}</span></div> - <div style="display: block" v-if="item.remark" >璇存槑锛�<span>{{item.remark}}</span></div> - <div style="display: block;margin-top:10px" v-if="item.multifileList !=null && item.multifileList.length"> - <div v-for="item in item.multifileList" :key="item.id" style="display: inline;margin-right: 5px"> - <video - v-if="item.fileurlFull && item.fileurlFull.endsWith('.mp4')" - ref="videoRef" - controls - preload="auto" - style="width: 50px;height: 50px;object-fit: contain;" - :src="item.fileurlFull" - /> - <el-image - v-else-if="item.fileurlFull" - style="width:50px; height: 50px;" - :src="item.fileurlFull" - :preview-src-list="[item.fileurlFull]"> - </el-image> - </div> - </div> - </div> - </div> - </div> - </div> - </div> - </div> + <div class="table_info"> + <div class="title">涓嶇鍚堥」宸ュ崟鍒楄〃</div> + <el-table :data="info.dcaChildList" border fit> + <el-table-column prop="index" label="搴忓彿" width="55" fixed="left"> + <template slot-scope="scope">{{ scope.$index+1}}</template> + </el-table-column> + <el-table-column label="宸ュ崟鍙�" prop="code" min-width="120"> + <template slot-scope="{row}"> + <span style="color: #2E68EC;cursor: pointer" @click="$refs.OperaWorkorderDetailDcaInfoWindow.open('DCA涓嶇鍚堥」宸ュ崟璇︽儏', row)" >{{ row.code || '-'}}</span> + </template> + </el-table-column> + <el-table-column label="涓�绾т富棰�" prop="typeName" min-width="60"> </el-table-column> + <el-table-column label="浜岀骇涓婚" prop="categoryName" min-width="60"> </el-table-column> + <el-table-column label="瑙傚療椤�" prop="problemTitle" min-width="100"> </el-table-column> + <el-table-column label="鐘舵��" prop="status" min-width="80"> + <template slot-scope="{row}"> +<!-- <span :class="'statusInfo'+row.status" v-if="row.status ==0">寰呭鐞�</span>--> + <span :class="'statusInfo'+row.status" v-if="row.status ==3 ||row.status ==4||row.status ==5">宸插鐞�</span> + <span :class="'statusInfo'+row.status" v-else>澶勭悊涓�</span> + </template> + </el-table-column> + <el-table-column prop="statusInfo" label="鐘舵�佹弿杩�" min-width="100px"> + <template slot-scope="{row}"> + <span :class="'statusInfo'+row.status" >{{ row.statusName }}</span> + </template> + </el-table-column> + <el-table-column label="涓嶇鍚堝師鍥�" prop="eventInfo" min-width="180" /> + <el-table-column label="鎿嶄綔" prop="status" min-width="80"> + <template slot-scope="{row}"> + <el-button type="text" @click="$refs.OperaWorkorderDetailDcaInfoWindow.open('DCA涓嶇鍚堥」宸ュ崟璇︽儏', row)" icon="el-icon-zoom-out" >鏌ョ湅璇︽儏</el-button> + <!--<el-button type="text" @click="deleteById(row)" icon="el-icon-delete" v-permissions="['business:workorder:delete']">鍒犻櫎</el-button>--> + </template> + </el-table-column> + </el-table> + </div> + <div class="table_info"> + <div class="title">绗﹀悎椤瑰垪琛�</div> + <el-table :data="dataList2" border fit> + <el-table-column prop="index" label="搴忓彿" width="55" fixed="left"> + <template slot-scope="scope">{{ scope.$index+1}}</template> + </el-table-column> + <el-table-column label="涓�绾т富棰�" prop="typeName" min-width="140"> </el-table-column> + <el-table-column label="浜岀骇涓婚" prop="categoryName" min-width="150"> </el-table-column> + <el-table-column label="瑙傚療椤�" prop="problemTitle" min-width="400"> </el-table-column> + </el-table> </div> </div> + </div> <!-- --> <template v-slot:footer> <el-button @click="close">杩斿洖</el-button> </template> + <OperaWorkorderDetailDcaInfoWindow ref="OperaWorkorderDetailDcaInfoWindow" /> </GlobalWindow> </template> <script> import BaseOpera from '@/components/base/BaseOpera' import GlobalWindow from '@/components/common/GlobalWindow' +import OperaWorkorderDetailDcaInfoWindow from '@/components/business/OperaWorkorderDetailDcaInfoWindow' import { getById } from '@/api/business/workorder' export default { name: 'OperaWorkorderDetailDbhWindow', extends: BaseOpera, - components: { GlobalWindow }, + components: { GlobalWindow ,OperaWorkorderDetailDcaInfoWindow}, data () { return { id: '', type: null, title: '宸ュ崟璇︽儏', info: {}, + dataList2: [], statusMap: { - 0: '寰呭垎閰峎TS', - 1: '寰呭垎閰嶄换鍔�', - 2: '寰呭鐞�', - 3: '宸茶В鍐�', - 4: '宸茶В鍐�', - 5: '宸茶В鍐�' + 0: '澶勭悊涓�', + 1: '澶勭悊涓�', + 2: '澶勭悊涓�', + 3: '宸插鐞�', + 4: '宸插鐞�', + 5: '宸插鐞�' }, cateList: { 0: 'SHE浜嬩欢宸ュ崟', - 1: '璺岀粖婊戜簨浠跺伐鍗�', - 2: 'DCA浜嬩欢鎻愪氦璁板綍', - 3: 'DCA浜嬩欢宸ュ崟' + 1: 'DCA浜嬩欢鎻愪氦璁板綍', + 2: 'DCA浜嬩欢宸ュ崟', + 3: '璺岀粖婊戜簨浠跺伐鍗�' } } }, @@ -172,6 +180,7 @@ getDetail () { getById(this.info.id).then(res => { this.info = res + this.getDataListByRemak() if (this.info.logList && this.info.logList.length > 0) { this.info.logList.forEach(item => { if (item.approveList && item.approveList.length == 1 && item.type !== 1) { @@ -184,6 +193,25 @@ }) } }) + }, + getDataListByRemak () { + this.dataList2 =[] + if(this.info.remark){ + var obj = JSON.parse(this.info.remark) + console.log(obj) + if(obj && obj.childMapList){ + obj.childMapList.forEach(item =>{ + if(item && item.problemMapList){ + item.problemMapList.forEach(item1 =>{ + if(item1 && item1.status === 1){ + this.dataList2.push({'typeName':this.info.typeName, 'categoryName':item.childTitle,'problemTitle':item1.title}) + } + }) + } + }) + } + + } }, reject () { }, handleAvatarSuccess () { }, @@ -227,7 +255,7 @@ .modal_wrap { display: flex; - height: 100%; + height: auto; .modal_content { flex: 1; @@ -248,15 +276,14 @@ .list { display: flex; flex-wrap: wrap; - .item { display: flex; - width: 40%; + width: 50%; font-size: 14px; margin-bottom: 20px; &:nth-of-type(2n) { - width: 60%; + width: 50%; } .label { @@ -265,6 +292,7 @@ } .value { + width: calc(100% - 100px); color: #111111; } } -- Gitblit v1.9.3