From a26af4a8afc3c1b59a33c0642cd07778a89e5813 Mon Sep 17 00:00:00 2001 From: wjt <1797368093@qq.com> Date: 星期六, 22 六月 2024 21:04:50 +0800 Subject: [PATCH] 投书处理天机 --- src/views/infomanger/enforcement/component/details.vue | 252 +++++++++++++++++++++++++++++++++++++++---------- 1 files changed, 198 insertions(+), 54 deletions(-) diff --git a/src/views/infomanger/enforcement/component/details.vue b/src/views/infomanger/enforcement/component/details.vue index d4778c2..599b03d 100644 --- a/src/views/infomanger/enforcement/component/details.vue +++ b/src/views/infomanger/enforcement/component/details.vue @@ -1,75 +1,115 @@ <template> - <el-dialog title="鎵ф硶璇︽儏" width="1000px" v-model="dialogVisible" @close="closeDialog"> - <div> + <el-dialog title="鎵ф硶璇︽儏" width="900px" v-model="dialogVisible" @close="closeDialog"> + <div v-loading="loading"> <div class="title">鎵ф硶淇℃伅</div> - <div> + <div class="content"> <el-row> <el-col :span="12"> - <div class="label">鎵ф硶绫诲瀷</div> <div class="value">鍙告硶妫�鏌�</div> + <div class="label">鎵ф硶绫诲瀷</div> + <div class="value">鍙告硶妫�鏌�</div> </el-col> <el-col :span="12"> - <div class="label">鎵ф硶閮ㄩ棬</div> <div class="value">鍙告硶妫�鏌�</div> + <div class="label">鎵ф硶閮ㄩ棬</div> + <div class="value">{{ details.applyDeptName }}</div> </el-col> <el-col :span="12"> - <div class="label">浼佷笟</div> <div class="value">鍙告硶妫�鏌�</div> + <div class="label">浼佷笟</div> + <div class="value">{{ details.companyName }}</div> </el-col> <el-col :span="12"> - <div class="label">鎵ф硶浜哄憳</div> <div class="value">鍙告硶妫�鏌�</div> + <div class="label">鎵ф硶浜哄憳</div> + <div class="value">{{ details.executeUser || details.applyUser }}</div> </el-col> <el-col :span="12"> - <div class="label">闅忚浜哄憳</div> <div class="value">鍙告硶妫�鏌�</div> + <div class="label">闅忚浜哄憳</div> + <div class="value"> + <div v-for="(item, index) in details.peers" :key="index"> + {{ item.peerUser }} ({{ item.peerDeptName }}) + </div> + </div> </el-col> <el-col :span="12"> - <div class="label">鐢宠鏃堕棿</div> <div class="value">鍙告硶妫�鏌�</div> + <div class="label">鐢宠鏃堕棿</div> + <div class="value">{{ details.applyTime || "" }}</div> </el-col> <el-col :span="12"> - <div class="label">鎵ф硶鏃堕棿</div> <div class="value">鍙告硶妫�鏌�</div> + <div class="label">鎵ф硶鏃堕棿</div> + <div class="value">{{ details.executeTime || details.planTime }}</div> </el-col> <el-col :span="12"> - <div class="label">鐘舵��</div> <div class="value">鍙告硶妫�鏌�</div> + <div class="label">鐘舵��</div> + <div class="value">{{ status.orderStatusMap[details.orderStatus] }}</div> </el-col> <el-col :span="24"> - <div class="label">鎵ф硶鍐呭</div> <div class="value">1.鐏伨闅愭偅鏁存敼鎯呭喌浠ュ強闃茶寖鎺柦鐨勮惤瀹炴儏鍐点�� - -2.瀹夊叏鐤忔暎閫氶亾銆佺枏鏁f寚绀烘爣蹇椼�佸簲鎬ョ収鏄庡拰瀹夊叏鍑哄彛鎯呭喌銆� - -3.娑堥槻杞﹂�氶亾銆佹秷闃叉按婧愭儏鍐点��</div> + <div class="label">鎵ф硶鍐呭</div> + <div class="value">{{ details.enforceContent || "--" }}</div> </el-col> </el-row> </div> - <div class="title">鎵ф硶璁板綍</div> - <div> - <el-row> - <el-col :span="12"> - <div class="label">鎵ф硶涓婚</div> <div class="value">鍙告硶妫�鏌�</div> - </el-col> - <el-col :span="12"> - <div class="label">鏄惁閫氱煡浼佷笟</div> <div class="value">鍙告硶妫�鏌�</div> - </el-col> - <el-col :span="24"> - <div class="label">鎵ф硶杩囩▼</div> <div class="value">鍙告硶妫�鏌�</div> - </el-col> - <el-col :span="12"> - <div class="label">鎵ф硶缁撴灉</div> <div class="value">鍙告硶妫�鏌�</div> - </el-col> - </el-row> + <div v-if="details.orderStatus == 4"> + <div class="title">鎵ф硶璁板綍</div> + <div class="content"> + <el-row> + <el-col :span="12"> + <div class="label">鎵ф硶涓婚</div> + <div class="value">{{ details.enforceReason || '' }}</div> + </el-col> + <el-col :span="12"> + <div class="label">鏄惁閫氱煡浼佷笟</div> + <div class="value">{{ status.isNoticeCompany[details.isNoticeCompany] }}</div> + </el-col> + <el-col :span="24"> + <div class="label">鎵ф硶杩囩▼</div> + <div class="value"> + <div> + <img :src="baseUrl + item" alt="" class="image" v-for="(item, index) in details.regionImgs" + :key="index" /> + </div> + <div> + {{ details.regionReason }} + </div> + </div> + </el-col> + <el-col :span="12"> + <div class="label">鎵ф硶缁撴灉</div> + <div class="value"> + {{ status.regionStatus[details.regionStatus] }} + </div> + </el-col> + </el-row> + </div> </div> - <div class="title">鎵ф硶璇勪环</div> - <div> - <el-row> - <el-col :span="12"> - <div class="label">鎵ф硶涓撲笟鎬�</div> <div class="value">鍙告硶妫�鏌�</div> - </el-col> - <el-col :span="12"> - <div class="label">鎵ф硶鍚堢悊鎬�</div> <div class="value">鍙告硶妫�鏌�</div> - </el-col> - <el-col :span="24"> - <div class="label">鎵ф硶璁ょ湡绋嬪害</div> <div class="value">鍙告硶妫�鏌�</div> - </el-col> - <el-col :span="12"> - <div class="label">鎵ф硶缁撴灉婊℃剰搴�</div> <div class="value">鍙告硶妫�鏌�</div> - </el-col> - </el-row> + <div v-if="details.orderStatus == 4"> + <div class="title">鎵ф硶璇勪环</div> + <div class=" end-content" v-if="details.evaluateVo"> + <!-- <el-row> --> + <div v-for="(item,index) in details.evaluateVo.questionList" :key="index"> + <div class="label" >{{item.questionName}}</div> + <div class="value" v-if="item.questionType == 2"><el-rate v-model="item.questionScore" disabled></el-rate></div> + <div class="value" v-if="item.questionType == 1" style="margin: 10px;"> + <!-- <el-raido-group v-model="item.remark" > + <el-radio v-for="(ele,inde) in item.answerList" :key="inde" :value="ele.answerId"> + {{ ele.answerName }} {{ele.answerId}} {{item.remark}} + </el-radio> + </el-raido-group> --> + {{ item.answerList.find((ele) => ele.answerId == item.remark).answerName }} + </div> + + </div> + <!-- <el-col :span="12"> + <div class="label">鎵ф硶鍚堢悊鎬�</div> + <div class="value">鍙告硶妫�鏌�</div> + </el-col> + <el-col :span="24"> + <div class="label">鎵ф硶璁ょ湡绋嬪害</div> + <div class="value">鍙告硶妫�鏌�</div> + </el-col> + <el-col :span="12"> + <div class="label">鎵ф硶缁撴灉婊℃剰搴�</div> + <div class="value">鍙告硶妫�鏌�</div> + </el-col> --> + <!-- </el-row> --> + </div> </div> </div> <template #footer> @@ -79,11 +119,115 @@ </template> <script setup lang="ts"> - const dialogVisible = ref(false) - function openDialog() { - dialogVisible.value = true +import { getOrder } from '@/api/system/company/company' +const dialogVisible = ref(false) +const details:any = ref({ + evaluateVo: { + questionList: [] } - function closeDialog() { - dialogVisible.value = false +}) +const loading = ref(false) +const status = { + orderStatusMap: { + '-1': '鎷掔粷', + 0: '寰呮彁浜�', + 1: '宸叉彁浜�', + 2: '寰呮墽琛�', + 3: '寰呬笂鎶�', + 4: '宸茬粨鏉�', + }, + regionStatus: { + 0: '姝e父', + 1: '鍋滀笟鏁撮】', + }, + isNoticeCompany: { + 0: '鍚�', + 1: '鏄�', } -</script> \ No newline at end of file +} +const baseUrl = import.meta.env.VITE_APP_BASE_API +function getDetails(orderId) { + getOrder({ orderId }).then(val => { + if (val.data.regionImgs) { + val.data.regionImgs = val.data.regionImgs.split(',') + } + if(val.data.evaluateVo && val.data.evaluateVo.questionList) { + val.data.evaluateVo.questionList.map(item => { + item.remark = Number(item.remark) + }) + } + details.value = val.data + console.log(details.value) + loading.value = false + }).catch(err => { + loading.value = false + }) +} +function openDialog(item: any) { + // console.log() + loading.value = true + getDetails(item.orderId) + dialogVisible.value = true +} + + +function closeDialog() { + dialogVisible.value = false +} +defineExpose({ openDialog, closeDialog }) +</script> + +<style lang="scss" scoped> +.title { + font-size: 16px; + background-color: #f6f6f6; + padding: 10px; + margin-bottom: 14px; +} + +.el-col { + display: flex; + justify-content: flex-start; + align-items: flex-start; + margin-bottom: 15px +} + +.content { + margin-bottom: 14px; + + .label { + font-size: 14px; + color: #999; + width: 110px; + text-align: justify; + text-align-last: justify; + margin-right: 30px; + } + + .value { + font-size: 14px; + color: #333; + width: calc(100% - 120px); + } +} +.end-content{ + margin-bottom: 14px; + .label { + font-size: 14px; + color: #999; + margin-right: 30px; + } + + .value { + font-size: 14px; + color: #333; + } +} +.image { + width: 80px; + height: 80px; + display: inline-block; + margin-right: 20px; + margin-bottom: 20px +} +</style> \ No newline at end of file -- Gitblit v1.9.1