From c3c67ee9e88c579e8ac784821ab41f58d0372ebb Mon Sep 17 00:00:00 2001 From: jiangping <jp@doumee.com> Date: 星期二, 11 六月 2024 15:46:34 +0800 Subject: [PATCH] 最新版本 --- admin/src/components/business/OperaCarUseBookWindow.vue | 195 +++++++++++++++++++++++++++--------------------- 1 files changed, 108 insertions(+), 87 deletions(-) diff --git a/admin/src/components/business/OperaCarUseBookWindow.vue b/admin/src/components/business/OperaCarUseBookWindow.vue index 6e1c896..b92af71 100644 --- a/admin/src/components/business/OperaCarUseBookWindow.vue +++ b/admin/src/components/business/OperaCarUseBookWindow.vue @@ -3,7 +3,6 @@ :title="title" :visible.sync="visible" @confirm="confirm" - @close="reject" > <div class="modal_wrap"> <div class="modal_content"> @@ -13,7 +12,7 @@ <div class="time">鎻愪氦鏃堕棿锛歿{model.createDate}}</div> </div> <span class="right" v-if="model.status === 0">鐢宠涓�</span> - <span class="right" v-if="model.status === 1">寰呭鎵�</span> + <span class="right" v-if="model.status === 1">瀹℃壒涓�</span> <span class="right" style="background:#53b76f " v-if="model.status === 2">瀹℃壒閫氳繃</span> <span class="right" style="background:#dc362e " v-if="model.status === 3">瀹℃壒涓嶉�氳繃</span> <span class="right" style="background:#dc362e " v-if="model.status === 4">宸插彇娑�</span> @@ -21,7 +20,7 @@ <div class="info"> <div class="title">鍏姟杞︾敵璇蜂俊鎭�</div> <div class="list"> - <div class="item"> + <div class="item" style="width: 100%"> <div class="label">鐢宠浜�</div> <div class="value">{{model.memberName || ''}} {{model.memberPhone || ''}} ({{model.companyName || ''}})</div> </div> @@ -57,40 +56,52 @@ </div> <div class="item"> <div class="label">鐢ㄨ溅鏃舵</div> - <div class="value">{{model.startTime || ''}}-{{model.endTime || ''}}</div> + <div class="value">濮�:{{model.startTime || ''}}<br>姝�:{{model.endTime || ''}}</div> </div> </div> </div> </div> <div class="side"> <div class="side_title">瀹℃壒娴佺▼</div> - <div class="list"> - <div class="item" v-for="(item,index) in logList" :key="item.id"> - <div class="separate" v-if="index < logList.length-1"></div> + <div class="list" v-if="model.approveDateVO !=null && model.approveDateVO.approveList !=null"> + <div class="item" v-for="(item,index) in model.approveDateVO.approveList" :key="item.id"> + <div class="separate" v-if=" (index < model.approveDateVO.approveList.length-1)"></div> <div class="info"> - <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="" /> + <img src="@/assets/icons/ic_tongguo.png" class="iconnew" v-if="( item.status ==2)"/> + <img src="@/assets/icons/ic_dangqian.png" class="iconnew" v-if="( item.status==1)"/> + <img src="@/assets/icons/ic_jujue.png" class="iconnew" v-if="( item.status==3)"/> + <img src="@/assets/icons/ic_grey.png" class="iconnew" v-if=" (item.status==null || item.status==0 )"/> + <div style="display: inline" v-if="item.approveType !=1"> + <img v-if="item.faceImg!=null && item.faceImg !=''" :src="item.faceImg" class="avatar" alt="" /> + <img v-if="item.faceImg ==null ||item.faceImg ==''" src="@/assets/avatar/man.png" class="avatar" alt="" /> + </div> + <div style="display: inline" v-if="item.approveType == 1"> + <img v-if="item.type !=1" src="@/assets/icons/ic_duoren.png" class="avatar" alt="" /> + <img v-if="item.type == 1" src="@/assets/icons/ic_chaosong.png" class="avatar" alt="" /> + </div> <div class="content"> <div class="line"> <div class="name">{{ item.title}}</div> - <div class="time">{{ item.createDate }}</div> + <div class="time">{{ item.checkDate }}</div> </div> <div class="line"> <div class="company"> - {{ item.createUserName }} {{ item.companyName }} - <div style="display: inline"> - 锛�<span class="status-green">{{stausInfo}}</span> + {{ item.memberName }} + <div style="display: inline" v-if="item.statusInfo!=null && item.statusInfo!=''"> + 锛�<span class="status-green">{{item.statusInfo ||''}}</span>锛� </div> </div> </div> - <div class="line"> - <div class="remark"> - {{ item.checkInfo ||'' }} - </div> - </div> + </div> + </div> + <div v-if="item.approveType != 1 && item.checkInfo !=null && item.checkInfo !=''" class="remark"> + {{ item.checkInfo || '' }} + </div> + <div v-if="item.approveType == 1 " class="childList"> + <div class="m_content company" v-for="item1 in item.approveList" :key="item1.id"> + <img v-if="item1.faceImg!=null && item1.faceImg !=''" :src="item1.faceImg" class="avatar" alt="" /> + <img v-if="item1.faceImg ==null ||item1.faceImg ==''" src="@/assets/avatar/man.png" class="avatar" alt="" /> + <span > {{item1.memberName}}</span> </div> </div> </div> @@ -105,9 +116,10 @@ </template> <el-dialog append-to-body - title="杞氦" + title="鍚屾剰鐢宠" + style="text-align: center" class="dialogCl" - :visible.sync="isShowTransfer" + :visible.sync="isShowProblem" width="480px" > <el-form :model="dealForm" ref="dealForm" > @@ -132,12 +144,13 @@ </el-form> <span slot="footer" class="dialog-footer"> <el-button @click="isShowProblem = false">鍙栨秷</el-button> - <el-button type="primary" :loading="transfering" @click="dealDo">纭畾</el-button> + <el-button type="primary" :loading="dealing" @click="dealDo">纭畾</el-button> </span> </el-dialog> <el-dialog append-to-body title="鎷掔粷鐢宠" + style="text-align: center" class="dialogCl" :visible.sync="isBackProblem" width="600px" @@ -154,7 +167,7 @@ </el-form> <span slot="footer" class="dialog-footer"> <el-button @click="isBackProblem= false">鍙栨秷</el-button> - <el-button type="primary" :loading="transfering" @click="backDo">纭畾</el-button> + <el-button type="primary" :loading="dealing" @click="backDo">纭畾</el-button> </span> </el-dialog> </GlobalWindow> @@ -164,9 +177,10 @@ import BaseOpera from '@/components/base/BaseOpera' import GlobalWindow from '@/components/common/GlobalWindow' import { driveList } from '@/api/business/member' +import { approveDo } from '@/api/business/approve' import { mapState } from 'vuex' export default { - name:'OperaCarUseBookWindow.vue', + name: 'OperaCarUseBookWindow', components: { GlobalWindow }, extends: BaseOpera, data () { @@ -179,8 +193,6 @@ isShowProblem: false, isBackProblem: false, memberList: [], - logList:[], - copyList:[], dealForm: { driveId: null, checkInfo: null @@ -195,7 +207,7 @@ }, created () { this.config({ - api: '/business/carUserBook', + api: '/business/carUseBook', 'field.id': 'id' }) }, @@ -205,12 +217,13 @@ if (!valid) { return } - this.$dialog.actionConfirm('鎿嶄綔纭', '鎮ㄧ‘璁ゆ彁浜よ闅愭偅澶勭悊鎯呭喌鍚楋紵') + this.$dialog.actionConfirm('鎿嶄綔纭', '鎮ㄧ‘璁ゅ悓鎰忚鐢宠鍚楋紵') .then(() => { this.dealing = true - this.api.dealHiddenDanger({ - id: this.dataId, - status: 1, + approveDo({ + objId: this.dataId, + objType: this.model.type == 1?4:3, + status: 2, driverId: this.dealForm.driveId, checkInfo: this.dealForm.checkInfo }) @@ -230,26 +243,22 @@ if (!valid) { return } - this.$dialog.actionConfirm('鎿嶄綔纭', '鎮ㄧ‘璁ら��鍥炶闅愭偅澶勭悊鎯呭喌鍚楋紵') - .then(() => { - this.dealing = true - this.api.dealHiddenDanger({ - id: this.dataId, - status: 2, - checkInfo: this.backForm.checkInfo + approveDo({ + objId: this.dataId, + objType: this.model.type == 1?4:3, + status: 3, + checkInfo: this.dealForm.checkInfo + }).then(res => { + this.$tip.apiSuccess('閫�鍥炴垚鍔�') + this.getDetail() + this.isBackProblem = false }) - .then(res => { - this.$tip.apiSuccess('閫�鍥炴垚鍔�') - this.getDetail() - this.isBackProblem = false - }) - .catch(e => { - }) - .finally(() => { - this.dealing = false - }) + .catch(e => { + }) + .finally(() => { + this.dealing = false + }) }) - }) }, open (title, target) { this.title = title @@ -258,8 +267,6 @@ this.dataId = target.id this.$nextTick(() => { this.memberList = [] - this.logList = [] - this.copyList = [] this.dealForm = { driveId: null, checkInfo: null @@ -275,14 +282,6 @@ .then(res => { this.model = res this.dealForm.driveId = res.driveId - if(res.approveDateVO){ - if(res.approveDateVO.approveList){ - this.logList = res.approveDateVO.approveList - } - if(res.approveDateVO.copyList){ - this.copyList = res.approveDateVO.copyList - } - } }) }, handleTransfer () { @@ -299,14 +298,6 @@ </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; @@ -325,7 +316,14 @@ font-size: 12px; } } - +.side_title{ + font-weight: 600; + font-size: 18px; + color: #111111; + margin-bottom: 20px; + margin-left: 20px; + margin-top: 20px; +} .modal_wrap { display: flex; height: 100%; @@ -358,7 +356,7 @@ .label { color: #888888; - width: 68px; + width: 100px; } .value { @@ -439,8 +437,34 @@ position: absolute; border-left: 2px dashed #cccccc; left: 31px; - height: calc(100% - 24px); - top: 46px; + height: calc(100% - 36px); + top: 49px; + } + .avatar { + width: 40px; + height: 40px; + border-radius: 50%; + margin: 0 12px 0 16px; + //border: 1px solid; + } + .childList{ + display: flex; + flex-wrap: wrap; + margin-left: 100px; + } + .company { + font-size: 13px; + color: #888888; + .status { + color: #00ba67; + } + } + .m_content{ + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + margin-bottom: 4px; } .info { display: flex; @@ -464,12 +488,15 @@ color: #dc362e; font-size: 24px; } - .avatar { - width: 40px; - height: 40px; - border-radius: 50%; - margin: 0 12px 0 16px; - border: 1px solid; + .iconnew{ + width: 24px; + height: 24px; + } + .icon3 { + position: relative; + z-index: 11; + color:gray; + font-size: 24px; } .content { flex: 1; @@ -486,13 +513,6 @@ .time { color: #888888; } - .company { - font-size: 13px; - color: #888888; - .status { - color: #00ba67; - } - } } } } @@ -501,8 +521,9 @@ border-radius: 4px; padding: 13px 15px; color: #666666; - margin-left: 120px; + margin-left: 100px; } + } } } -- Gitblit v1.9.3