| | |
| | | trim: true |
| | | }) |
| | | } |
| | | export function allList (data) { |
| | | return request.post('/business/category/list', data, { |
| | | trim: true |
| | | }) |
| | | } |
| | | export function treeList (data) { |
| | | return request.post('/business/category/tree', data, { |
| | | trim: true |
| | |
| | | // åä½ |
| | | $font-color: #282828; // é¢è² |
| | | $font-size: 12px; // å¤§å° |
| | | |
| | | |
| | | .el-drawer__header { |
| | | color: #333333 !important; |
| | | } |
| | | .el-image-viewer__wrapper{ |
| | | z-index: 3000 !important; |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <GlobalWindow |
| | | :title="title" |
| | | width="85%" |
| | | :visible.sync="visible" |
| | | :confirm-working="isWorking" |
| | | @confirm="confirm"> |
| | | <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" |
| | | 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> |
| | | <div class="info"> |
| | | <div class="title">å·¥åä¿¡æ¯</div> |
| | | <div class="list"> |
| | | <div class="item"> |
| | | <div class="label">åå·¥å§å</div> |
| | | <div class="value">{{ info.memberName }} - {{ info.memberPhone || '[æ ææºå·]' }}</div> |
| | | </div> |
| | | <div class="item"> |
| | | <div class="label">æå±é¨é¨</div> |
| | | <div class="value">{{ info.companyName }} </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="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="value">{{ info.locationName }}</div> |
| | | </div> |
| | | <div class="item"> |
| | | <div class="label">é£é©æè¿°</div> |
| | | <div class="value">{{ info.riskInfo }}</div> |
| | | </div> |
| | | <div class="item" style="width: 100%"> |
| | | <div class="label">å¾ç</div> |
| | | <div class="value" v-if="info.multifileList ==null || !info.multifileList.length">æ </div> |
| | | <div class="value" v-if="info.multifileList !=null && info.multifileList.length"> |
| | | <div v-for="item in info.multifileList" :key="item.id" style="display: inline;margin-right: 20px"> |
| | | <video |
| | | v-if="item.fileurlFull && item.fileurlFull.endsWith('.mp4')" |
| | | ref="videoRef" |
| | | 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> |
| | | </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> |
| | | </div> |
| | | </div> |
| | | <!-- --> |
| | | <template v-slot:footer> |
| | | <el-button @click="close">è¿å</el-button> |
| | | </template> |
| | | </GlobalWindow> |
| | | </template> |
| | | |
| | | <script> |
| | | import BaseOpera from '@/components/base/BaseOpera' |
| | | import GlobalWindow from '@/components/common/GlobalWindow' |
| | | import { getById } from '@/api/business/workorder' |
| | | export default { |
| | | name: 'OperaWorkorderDetailDbhWindow', |
| | | extends: BaseOpera, |
| | | components: { GlobalWindow }, |
| | | data () { |
| | | return { |
| | | id: '', |
| | | type: null, |
| | | title: 'å·¥å详æ
', |
| | | info: {}, |
| | | statusMap: { |
| | | 0: 'å¾
åé
WTS', |
| | | 1: 'å¾
åé
ä»»å¡', |
| | | 2: 'å¾
å¤ç', |
| | | 3: '已解å³', |
| | | 4: '已解å³', |
| | | 5: '已解å³' |
| | | }, |
| | | cateList: { |
| | | 0: 'SHEäºä»¶å·¥å', |
| | | 1: 'è·ç»æ»äºä»¶å·¥å', |
| | | 2: 'DCAäºä»¶æäº¤è®°å½', |
| | | 3: 'DCAäºä»¶å·¥å' |
| | | } |
| | | } |
| | | }, |
| | | methods: { |
| | | open (title, target) { |
| | | this.title = title |
| | | this.visible = true |
| | | this.info = target |
| | | this.getDetail() |
| | | this.type = this.info.type |
| | | }, |
| | | close () { |
| | | this.visible = false |
| | | }, |
| | | getDetail () { |
| | | getById(this.info.id).then(res => { |
| | | this.info = res |
| | | if (this.info.logList && this.info.logList.length > 0) { |
| | | this.info.logList.forEach(item => { |
| | | if (item.approveList && item.approveList.length == 1 && item.type !== 1) { |
| | | item.title = item.approveList[0].title |
| | | item.faceImg = item.approveList[0].faceImg |
| | | item.memberName = item.approveList[0].memberName |
| | | item.statusInfo = item.approveList[0].statusInfo |
| | | item.approveList = [] |
| | | } |
| | | }) |
| | | } |
| | | }) |
| | | }, |
| | | reject () { }, |
| | | handleAvatarSuccess () { }, |
| | | beforeAvatarUpload () { } |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style lang="scss" scoped> |
| | | @import "@/assets/style/variables.scss"; |
| | | |
| | | .upload_box { |
| | | width: 84px; |
| | | height: 84px; |
| | | border-radius: 4px; |
| | | background-color: #f7f7f7; |
| | | display: flex; |
| | | flex-direction: column; |
| | | justify-content: center; |
| | | align-items: center; |
| | | color: #999999; |
| | | border: 1px solid #e4e4e4; |
| | | |
| | | .icon { |
| | | font-size: 24px; |
| | | } |
| | | |
| | | .text { |
| | | 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%; |
| | | |
| | | .modal_content { |
| | | flex: 1; |
| | | padding: 0px 30px; |
| | | border-radius: 8px; |
| | | overflow: hidden; |
| | | height: 100%; |
| | | |
| | | .title { |
| | | font-weight: 600; |
| | | font-size: 18px; |
| | | color: #333333; |
| | | margin-bottom: 20px; |
| | | margin-top: 30px; |
| | | } |
| | | |
| | | .info { |
| | | .list { |
| | | display: flex; |
| | | flex-wrap: wrap; |
| | | |
| | | .item { |
| | | display: flex; |
| | | width: 40%; |
| | | font-size: 14px; |
| | | margin-bottom: 20px; |
| | | |
| | | &:nth-of-type(2n) { |
| | | width: 60%; |
| | | } |
| | | |
| | | .label { |
| | | color: #888888; |
| | | width: 100px; |
| | | } |
| | | |
| | | .value { |
| | | color: #111111; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | .header { |
| | | display: flex; |
| | | justify-content: space-between; |
| | | align-items: center; |
| | | vertical-align: center; |
| | | padding: 20px 30px; |
| | | margin: 0 -30px; |
| | | border-radius: 8px 8px 0 0; |
| | | position: relative; |
| | | |
| | | .head_bg { |
| | | position: absolute; |
| | | width: 100%; |
| | | height: 100%; |
| | | left: 0; |
| | | top: 0; |
| | | z-index: 9; |
| | | } |
| | | |
| | | .h1 { |
| | | font-weight: 600; |
| | | font-size: 22px; |
| | | color: #111111; |
| | | margin-bottom: 8px; |
| | | } |
| | | |
| | | .time { |
| | | font-size: 14px; |
| | | color: #999999; |
| | | } |
| | | |
| | | .right { |
| | | height: 40px; |
| | | font-size: 16px; |
| | | color: #ffffff; |
| | | line-height: 40px; |
| | | padding: 0 20px; |
| | | background: #207ff7; |
| | | box-shadow: 4px 4px 0px 0px rgba(32, 127, 247, 0.16); |
| | | border-radius: 16px 0px 16px 0px; |
| | | position: relative; |
| | | z-index: 99; |
| | | } |
| | | |
| | | .scs { |
| | | background-color: #00BA67; |
| | | } |
| | | |
| | | .msg { |
| | | background-color: #ED4545; |
| | | } |
| | | } |
| | | |
| | | .table_info { |
| | | .name_wrap { |
| | | display: flex; |
| | | align-items: center; |
| | | |
| | | .avatar { |
| | | width: 40px; |
| | | height: 40px; |
| | | border-radius: 50%; |
| | | margin-right: 12px; |
| | | } |
| | | |
| | | .content { |
| | | .line { |
| | | display: flex; |
| | | } |
| | | .tag { |
| | | color: #b2cbf9; |
| | | border: 1px solid #b2cbf9; |
| | | padding: 0px 4px; |
| | | border-radius: 4px; |
| | | margin-left: 6px; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | .side { |
| | | height: 100%; |
| | | width: 420px; |
| | | background: #ffffff; |
| | | border-left: 20px solid #f7f7f7; |
| | | |
| | | .list { |
| | | .item { |
| | | padding: 8px 0; |
| | | position: relative; |
| | | |
| | | .separate { |
| | | position: absolute; |
| | | border-left: 2px dashed #cccccc; |
| | | left: 31px; |
| | | height: calc(100% - 0px); |
| | | top: 30px; |
| | | } |
| | | |
| | | .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; |
| | | width: calc(100% - 20px); |
| | | .status { |
| | | color: $primaryColor; |
| | | } |
| | | /* span{ |
| | | color: black; |
| | | }*/ |
| | | .dealinfo{ |
| | | background-color: #f2f2f2; |
| | | padding: 8px; |
| | | display: block; |
| | | margin-top: 5px; |
| | | width: calc(100% - 20px); |
| | | } |
| | | } |
| | | |
| | | .m_content { |
| | | display: flex; |
| | | flex-direction: column; |
| | | align-items: center; |
| | | justify-content: center; |
| | | margin-bottom: 4px; |
| | | } |
| | | |
| | | .info { |
| | | display: flex; |
| | | /*align-items: center;*/ |
| | | 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; |
| | | } |
| | | |
| | | .icon2 { |
| | | position: relative; |
| | | z-index: 11; |
| | | color: #dc362e; |
| | | font-size: 24px; |
| | | } |
| | | |
| | | .iconnew { |
| | | width: 24px; |
| | | height: 24px; |
| | | } |
| | | |
| | | .icon3 { |
| | | position: relative; |
| | | z-index: 11; |
| | | color: gray; |
| | | font-size: 24px; |
| | | } |
| | | |
| | | .content { |
| | | flex: 1; |
| | | |
| | | .line { |
| | | display: flex; |
| | | justify-content: space-between; |
| | | align-content: center; |
| | | margin-bottom: 6px; |
| | | |
| | | .status { |
| | | color: #888888; |
| | | } |
| | | |
| | | .padding { |
| | | color: $primaryColor; |
| | | } |
| | | |
| | | .name { |
| | | font-weight: 600; |
| | | font-size: 16px; |
| | | color: #111111; |
| | | } |
| | | |
| | | .time { |
| | | color: #888888; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | .remark { |
| | | background: #f7f7f7; |
| | | border-radius: 4px; |
| | | padding: 13px 15px; |
| | | color: #666666; |
| | | margin-left: 100px; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | </style> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <GlobalWindow |
| | | :title="title" |
| | | width="85%" |
| | | :visible.sync="visible" |
| | | :confirm-working="isWorking" |
| | | @confirm="confirm"> |
| | | <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" |
| | | 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> |
| | | <div class="info"> |
| | | <div class="title">å·¥åä¿¡æ¯</div> |
| | | <div class="list"> |
| | | <div class="item"> |
| | | <div class="label">åå·¥å§å</div> |
| | | <div class="value">{{ info.memberName }} - {{ info.memberPhone || '[æ ææºå·]' }}</div> |
| | | </div> |
| | | <div class="item"> |
| | | <div class="label">æå±é¨é¨</div> |
| | | <div class="value">{{ info.companyName }} </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="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="value">{{ info.locationName }}</div> |
| | | </div> |
| | | <div class="item"> |
| | | <div class="label">é£é©æè¿°</div> |
| | | <div class="value">{{ info.riskInfo }}</div> |
| | | </div> |
| | | <div class="item" style="width: 100%"> |
| | | <div class="label">å¾ç</div> |
| | | <div class="value" v-if="info.multifileList ==null || !info.multifileList.length">æ </div> |
| | | <div class="value" v-if="info.multifileList !=null && info.multifileList.length"> |
| | | <div v-for="item in info.multifileList" :key="item.id" style="display: inline;margin-right: 20px"> |
| | | <video |
| | | v-if="item.fileurlFull && item.fileurlFull.endsWith('.mp4')" |
| | | ref="videoRef" |
| | | 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> |
| | | </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> |
| | | </div> |
| | | </div> |
| | | <!-- --> |
| | | <template v-slot:footer> |
| | | <el-button @click="close">è¿å</el-button> |
| | | </template> |
| | | </GlobalWindow> |
| | | </template> |
| | | |
| | | <script> |
| | | import BaseOpera from '@/components/base/BaseOpera' |
| | | import GlobalWindow from '@/components/common/GlobalWindow' |
| | | import { getById } from '@/api/business/workorder' |
| | | export default { |
| | | name: 'OperaWorkorderDetailDbhWindow', |
| | | extends: BaseOpera, |
| | | components: { GlobalWindow }, |
| | | data () { |
| | | return { |
| | | id: '', |
| | | type: null, |
| | | title: 'å·¥å详æ
', |
| | | info: {}, |
| | | statusMap: { |
| | | 0: 'å¾
åé
WTS', |
| | | 1: 'å¾
åé
ä»»å¡', |
| | | 2: 'å¾
å¤ç', |
| | | 3: '已解å³', |
| | | 4: '已解å³', |
| | | 5: '已解å³' |
| | | }, |
| | | cateList: { |
| | | 0: 'SHEäºä»¶å·¥å', |
| | | 1: 'è·ç»æ»äºä»¶å·¥å', |
| | | 2: 'DCAäºä»¶æäº¤è®°å½', |
| | | 3: 'DCAäºä»¶å·¥å' |
| | | } |
| | | } |
| | | }, |
| | | methods: { |
| | | open (title, target) { |
| | | this.title = title |
| | | this.visible = true |
| | | this.info = target |
| | | this.getDetail() |
| | | this.type = this.info.type |
| | | }, |
| | | close () { |
| | | this.visible = false |
| | | }, |
| | | getDetail () { |
| | | getById(this.info.id).then(res => { |
| | | this.info = res |
| | | if (this.info.logList && this.info.logList.length > 0) { |
| | | this.info.logList.forEach(item => { |
| | | if (item.approveList && item.approveList.length == 1 && item.type !== 1) { |
| | | item.title = item.approveList[0].title |
| | | item.faceImg = item.approveList[0].faceImg |
| | | item.memberName = item.approveList[0].memberName |
| | | item.statusInfo = item.approveList[0].statusInfo |
| | | item.approveList = [] |
| | | } |
| | | }) |
| | | } |
| | | }) |
| | | }, |
| | | reject () { }, |
| | | handleAvatarSuccess () { }, |
| | | beforeAvatarUpload () { } |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style lang="scss" scoped> |
| | | @import "@/assets/style/variables.scss"; |
| | | |
| | | .upload_box { |
| | | width: 84px; |
| | | height: 84px; |
| | | border-radius: 4px; |
| | | background-color: #f7f7f7; |
| | | display: flex; |
| | | flex-direction: column; |
| | | justify-content: center; |
| | | align-items: center; |
| | | color: #999999; |
| | | border: 1px solid #e4e4e4; |
| | | |
| | | .icon { |
| | | font-size: 24px; |
| | | } |
| | | |
| | | .text { |
| | | 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%; |
| | | |
| | | .modal_content { |
| | | flex: 1; |
| | | padding: 0px 30px; |
| | | border-radius: 8px; |
| | | overflow: hidden; |
| | | height: 100%; |
| | | |
| | | .title { |
| | | font-weight: 600; |
| | | font-size: 18px; |
| | | color: #333333; |
| | | margin-bottom: 20px; |
| | | margin-top: 30px; |
| | | } |
| | | |
| | | .info { |
| | | .list { |
| | | display: flex; |
| | | flex-wrap: wrap; |
| | | |
| | | .item { |
| | | display: flex; |
| | | width: 40%; |
| | | font-size: 14px; |
| | | margin-bottom: 20px; |
| | | |
| | | &:nth-of-type(2n) { |
| | | width: 60%; |
| | | } |
| | | |
| | | .label { |
| | | color: #888888; |
| | | width: 100px; |
| | | } |
| | | |
| | | .value { |
| | | color: #111111; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | .header { |
| | | display: flex; |
| | | justify-content: space-between; |
| | | align-items: center; |
| | | vertical-align: center; |
| | | padding: 20px 30px; |
| | | margin: 0 -30px; |
| | | border-radius: 8px 8px 0 0; |
| | | position: relative; |
| | | |
| | | .head_bg { |
| | | position: absolute; |
| | | width: 100%; |
| | | height: 100%; |
| | | left: 0; |
| | | top: 0; |
| | | z-index: 9; |
| | | } |
| | | |
| | | .h1 { |
| | | font-weight: 600; |
| | | font-size: 22px; |
| | | color: #111111; |
| | | margin-bottom: 8px; |
| | | } |
| | | |
| | | .time { |
| | | font-size: 14px; |
| | | color: #999999; |
| | | } |
| | | |
| | | .right { |
| | | height: 40px; |
| | | font-size: 16px; |
| | | color: #ffffff; |
| | | line-height: 40px; |
| | | padding: 0 20px; |
| | | background: #207ff7; |
| | | box-shadow: 4px 4px 0px 0px rgba(32, 127, 247, 0.16); |
| | | border-radius: 16px 0px 16px 0px; |
| | | position: relative; |
| | | z-index: 99; |
| | | } |
| | | |
| | | .scs { |
| | | background-color: #00BA67; |
| | | } |
| | | |
| | | .msg { |
| | | background-color: #ED4545; |
| | | } |
| | | } |
| | | |
| | | .table_info { |
| | | .name_wrap { |
| | | display: flex; |
| | | align-items: center; |
| | | |
| | | .avatar { |
| | | width: 40px; |
| | | height: 40px; |
| | | border-radius: 50%; |
| | | margin-right: 12px; |
| | | } |
| | | |
| | | .content { |
| | | .line { |
| | | display: flex; |
| | | } |
| | | .tag { |
| | | color: #b2cbf9; |
| | | border: 1px solid #b2cbf9; |
| | | padding: 0px 4px; |
| | | border-radius: 4px; |
| | | margin-left: 6px; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | .side { |
| | | height: 100%; |
| | | width: 420px; |
| | | background: #ffffff; |
| | | border-left: 20px solid #f7f7f7; |
| | | |
| | | .list { |
| | | .item { |
| | | padding: 8px 0; |
| | | position: relative; |
| | | |
| | | .separate { |
| | | position: absolute; |
| | | border-left: 2px dashed #cccccc; |
| | | left: 31px; |
| | | height: calc(100% - 0px); |
| | | top: 30px; |
| | | } |
| | | |
| | | .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; |
| | | width: calc(100% - 20px); |
| | | .status { |
| | | color: $primaryColor; |
| | | } |
| | | /* span{ |
| | | color: black; |
| | | }*/ |
| | | .dealinfo{ |
| | | background-color: #f2f2f2; |
| | | padding: 8px; |
| | | display: block; |
| | | margin-top: 5px; |
| | | width: calc(100% - 20px); |
| | | } |
| | | } |
| | | |
| | | .m_content { |
| | | display: flex; |
| | | flex-direction: column; |
| | | align-items: center; |
| | | justify-content: center; |
| | | margin-bottom: 4px; |
| | | } |
| | | |
| | | .info { |
| | | display: flex; |
| | | /*align-items: center;*/ |
| | | 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; |
| | | } |
| | | |
| | | .icon2 { |
| | | position: relative; |
| | | z-index: 11; |
| | | color: #dc362e; |
| | | font-size: 24px; |
| | | } |
| | | |
| | | .iconnew { |
| | | width: 24px; |
| | | height: 24px; |
| | | } |
| | | |
| | | .icon3 { |
| | | position: relative; |
| | | z-index: 11; |
| | | color: gray; |
| | | font-size: 24px; |
| | | } |
| | | |
| | | .content { |
| | | flex: 1; |
| | | |
| | | .line { |
| | | display: flex; |
| | | justify-content: space-between; |
| | | align-content: center; |
| | | margin-bottom: 6px; |
| | | |
| | | .status { |
| | | color: #888888; |
| | | } |
| | | |
| | | .padding { |
| | | color: $primaryColor; |
| | | } |
| | | |
| | | .name { |
| | | font-weight: 600; |
| | | font-size: 16px; |
| | | color: #111111; |
| | | } |
| | | |
| | | .time { |
| | | color: #888888; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | .remark { |
| | | background: #f7f7f7; |
| | | border-radius: 4px; |
| | | padding: 13px 15px; |
| | | color: #666666; |
| | | margin-left: 100px; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | </style> |
| | |
| | | <div class="value">{{ info.memberName }} - {{ info.memberPhone || '[æ ææºå·]' }}</div> |
| | | </div> |
| | | <div class="item"> |
| | | <div class="label">æå±é¨é¨</div> |
| | | <div class="value">{{ info.companyName }} </div> |
| | | </div> |
| | | <div class="item"> |
| | | <div class="label">䏿¥æ¶é´</div> |
| | | <div class="value">{{ info.submitDate +' '}}</div> |
| | | </div> |
| | |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div class="side"> |
| | | <div class="side" v-if="false"> |
| | | <div class="side_title">æä½åå²</div> |
| | | <div class="list" v-if=" info.logList != null && info.logList.length != 0 |
| | | "> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <TableLayout :permissions="['business:workorder:query']"> |
| | | <!-- æç´¢è¡¨å --> |
| | | <div slot="search-form"> |
| | | <el-form ref="searchForm" :model="searchForm" label-width="100px" inline> |
| | | <el-form-item label="é£é©ç±»å" prop="typeId"> |
| | | <el-cascader v-model="searchForm.categoryList" :options="categorys" @change="handleChangeCategory" :show-all-levels="false" |
| | | clearable filterable :props="categoryprops" > |
| | | <template slot-scope="{ node, data }"> |
| | | <span>{{ data.name }}</span> <!-- èªå®ä¹æ¾ç¤ºå
容 --> |
| | | </template> |
| | | </el-cascader> |
| | | </el-form-item> |
| | | <el-form-item label="䏿¥äººå" prop="memberName"> |
| | | <el-input v-model="searchForm.memberName" clearable placeholder="人åå§åæææºå·" @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="å·¥åå·" prop="code"> |
| | | <el-input v-model="searchForm.code" clearable placeholder="请è¾å
¥å·¥åå·" @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <section> |
| | | <el-button type="primary" @click="search">æç´¢</el-button> |
| | | <el-button @click="reset">éç½®</el-button> |
| | | </section> |
| | | </el-form> |
| | | </div> |
| | | <!-- è¡¨æ ¼åå页 --> |
| | | <template v-slot:table-wrap> |
| | | <ul class="toolbar" v-permissions="['business:workorder:exportExcel']"> |
| | | <li> <el-button type="primary" :loading="isWorking.export" @click="exportExcel">导åº</el-button></li> |
| | | </ul> |
| | | <el-table |
| | | :height="tableHeightNew" |
| | | v-loading="isWorking.search" |
| | | :data="tableData.list" |
| | | stripe |
| | | @selection-change="handleSelectionChange" |
| | | > |
| | | <el-table-column prop="code" label="å·¥åå·" min-width="150px" fixed> |
| | | <template slot-scope="{row}"> |
| | | <span style="color: #2E68EC;cursor: pointer" @click="$refs.operaWorkorderWindow.open('SHEäºä»¶å·¥å详æ
', row)" >{{ row.code || '-'}}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="typeName" label="伤害类å" min-width="100px"></el-table-column> |
| | | <el-table-column prop="memberName" label="䏿¥äººå" min-width="100px"> |
| | | <template slot-scope="{row}"> |
| | | <span v-if="row.memberPhone" >{{row.memberName}} - {{row.memberPhone }}</span> |
| | | <span v-else >{{row.memberName}} </span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="companyName" label="æå¨é¨é¨" min-width="100px"></el-table-column> |
| | | <el-table-column prop="status" label="ç¶æ" min-width="100px"> |
| | | <template slot-scope="{row}"> |
| | | <span v-if="row.status ==0">å¾
å¤ç</span> |
| | | <span v-else-if="row.status ==3 ||row.status ==4||row.status ==5">å·²å¤ç</span> |
| | | <span v-else>å¤çä¸</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="submitDate" label="䏿¥æ¶é´" min-width="150px"></el-table-column> |
| | | <el-table-column prop="happenTime" label="åç°æ¶é´" min-width="150px"></el-table-column> |
| | | <el-table-column prop="riskInfo" label="é£é©æè¿°" min-width="100px"></el-table-column> |
| | | <el-table-column prop="createDate" label="å建æ¶é´" min-width="150px"></el-table-column> |
| | | <el-table-column |
| | | v-if="containPermissions(['business:workorder:update', 'business:workorder:delete'])" |
| | | label="æä½" |
| | | min-width="120" |
| | | fixed="right" |
| | | > |
| | | <template slot-scope="{row}"> |
| | | <el-button type="text" @click="$refs.operaWorkorderWindow.open('è·ç»æ»äºä»¶å·¥å详æ
', 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> |
| | | <pagination |
| | | @size-change="handleSizeChange" |
| | | @current-change="handlePageChange" |
| | | :pagination="tableData.pagination" |
| | | > |
| | | </pagination> |
| | | </template> |
| | | <!-- æ°å»º/ä¿®æ¹ --> |
| | | <OperaWorkorderDetailDbhWindow ref="operaWorkorderWindow" @success="handlePageChange"/> |
| | | </TableLayout> |
| | | </template> |
| | | |
| | | <script> |
| | | import BaseTable from '@/components/base/BaseTable' |
| | | import TableLayout from '@/layouts/TableLayout' |
| | | import Pagination from '@/components/common/Pagination' |
| | | import OperaWorkorderDetailDbhWindow from '@/components/business/OperaWorkorderDetailDbhWindow' |
| | | import { treeList } from '@/api/business/category' |
| | | export default { |
| | | name: 'Workorder', |
| | | extends: BaseTable, |
| | | components: {TableLayout, Pagination, OperaWorkorderDetailDbhWindow }, |
| | | data () { |
| | | return { |
| | | // æç´¢ |
| | | searchForm: { |
| | | type: '3', |
| | | memberName: '', |
| | | memberCompanyId: '', |
| | | localtionId: '', |
| | | typeId: '', |
| | | code: '', |
| | | categoryList: [] |
| | | }, |
| | | categoryprops: { |
| | | label: 'name', |
| | | value: 'id', |
| | | checkStrictly: true, |
| | | lazyLoad: this.lazyLoad |
| | | }, |
| | | categorys: [] |
| | | } |
| | | }, |
| | | created () { |
| | | this.config({ |
| | | module: 'å·¥åä¿¡æ¯è¡¨', |
| | | api: '/business/workorder', |
| | | 'field.id': 'id', |
| | | 'field.main': 'id' |
| | | }) |
| | | this.loadCategorys() |
| | | this.search() |
| | | }, |
| | | methods: { |
| | | handleChangeCategory (value) { |
| | | if (this.searchForm.categoryList && this.searchForm.categoryList.length >= 1) { |
| | | this.searchForm.typeId = this.searchForm.categoryList[this.searchForm.categoryList.length - 1] |
| | | } |
| | | }, |
| | | loadCategorys () { |
| | | treeList({ type: 1}) |
| | | .then(res => { |
| | | if (res && res.length > 0) { |
| | | res[0].fsStatus = 1 |
| | | this.categorys = this.getCategoryTree(res) |
| | | } |
| | | }) |
| | | }, |
| | | getCategoryTree (tree) { |
| | | if (tree == null) { |
| | | return [] |
| | | } |
| | | return tree.map(item => { |
| | | const newItem = { ...item } |
| | | if (newItem) { |
| | | newItem.children = newItem.childList |
| | | } |
| | | if (item.children && item.children.length === 0) { |
| | | this.$delete(newItem, 'children') |
| | | } else { |
| | | newItem.children = this.getCategoryTree(newItem.children) |
| | | } |
| | | // newItem.disabled = false |
| | | return newItem |
| | | }) |
| | | } |
| | | } |
| | | } |
| | | </script> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <TableLayout :permissions="['business:workorder:query']"> |
| | | <!-- æç´¢è¡¨å --> |
| | | <div slot="search-form"> |
| | | <el-form ref="searchForm" :model="searchForm" label-width="100px" inline> |
| | | <el-form-item label="é£é©ç±»å" prop="typeId"> |
| | | <el-select v-model="searchForm.typeId"> |
| | | <el-option clearable filterable |
| | | v-for="item in categorys" |
| | | :key="item.id" |
| | | :label="item.name" |
| | | :value="item.id"> |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="䏿¥äººå" prop="memberName"> |
| | | <el-input v-model="searchForm.memberName" clearable placeholder="人åå§åæææºå·" @keypress.enter.native="search"></el-input> |
| | | |
| | | |
| | | </el-form-item> |
| | | <el-form-item label="å·¥åå·" prop="code"> |
| | | <el-input v-model="searchForm.code" clearable placeholder="请è¾å
¥å·¥åå·" @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <section> |
| | | <el-button type="primary" @click="search">æç´¢</el-button> |
| | | <el-button @click="reset">éç½®</el-button> |
| | | </section> |
| | | </el-form> |
| | | </div> |
| | | <!-- è¡¨æ ¼åå页 --> |
| | | <template v-slot:table-wrap> |
| | | <ul class="toolbar" v-permissions="['business:workorder:exportExcel']"> |
| | | <li> <el-button type="primary" :loading="isWorking.export" @click="exportExcel">导åº</el-button></li> |
| | | </ul> |
| | | <el-table |
| | | :height="tableHeightNew" |
| | | v-loading="isWorking.search" |
| | | :data="tableData.list" |
| | | stripe |
| | | @selection-change="handleSelectionChange" |
| | | > |
| | | <el-table-column prop="code" label="å·¥åå·" min-width="150px" fixed> |
| | | <template slot-scope="{row}"> |
| | | <span style="color: #2E68EC;cursor: pointer" @click="$refs.operaWorkorderWindow.open('SHEäºä»¶å·¥å详æ
', row)" >{{ row.code || '-'}}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="memberName" label="䏿¥äººå" min-width="100px"> |
| | | <template slot-scope="{row}"> |
| | | <span v-if="row.memberPhone" >{{row.memberName}} - {{row.memberPhone }}</span> |
| | | <span v-else >{{row.memberName}} </span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="companyName" label="æå¨é¨é¨" min-width="100px"></el-table-column> |
| | | <el-table-column prop="status" label="ç¶æ" min-width="100px"> |
| | | <template slot-scope="{row}"> |
| | | <span v-if="row.status ==0">å¾
å¤ç</span> |
| | | <span v-else-if="row.status ==3 ||row.status ==4||row.status ==5">å·²å¤ç</span> |
| | | <span v-else>å¤çä¸</span> |
| | | </template> |
| | | </el-table-column> |
| | | <!-- |
| | | <el-table-column prop="typeName" label="DCAç±»å" min-width="100px"></el-table-column> |
| | | --> |
| | | <el-table-column prop="problemTitle" label="è§å¯ä¸»é¢" min-width="150px"></el-table-column> |
| | | <el-table-column prop="dcaYesNum" label="è§å¯é¡¹ç»è®¡" min-width="150px"> |
| | | <template slot-scope="{row}"> |
| | | <span style="color: #1562e2" >符åï¼{{row.dcaYesNum}} ä¸ç¬¦åï¼{{row.dcaNoNum}}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="submitDate" label="䏿¥æ¶é´" min-width="150px"></el-table-column> |
| | | <el-table-column prop="happenTime" label="åç°æ¶é´" min-width="150px"></el-table-column> |
| | | <el-table-column prop="createDate" label="å建æ¶é´" min-width="150px"></el-table-column> |
| | | <el-table-column |
| | | v-if="containPermissions(['business:workorder:update', 'business:workorder:delete'])" |
| | | label="æä½" |
| | | min-width="120" |
| | | fixed="right" |
| | | > |
| | | <template slot-scope="{row}"> |
| | | <el-button type="text" @click="$refs.operaWorkorderWindow.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> |
| | | <pagination |
| | | @size-change="handleSizeChange" |
| | | @current-change="handlePageChange" |
| | | :pagination="tableData.pagination" |
| | | > |
| | | </pagination> |
| | | </template> |
| | | <!-- æ°å»º/ä¿®æ¹ --> |
| | | <OperaWorkorderDetailDcaWindow ref="operaWorkorderWindow" @success="handlePageChange"/> |
| | | </TableLayout> |
| | | </template> |
| | | |
| | | <script> |
| | | import BaseTable from '@/components/base/BaseTable' |
| | | import TableLayout from '@/layouts/TableLayout' |
| | | import Pagination from '@/components/common/Pagination' |
| | | import OperaWorkorderDetailDcaWindow from '@/components/business/OperaWorkorderDetailDcaWindow' |
| | | import { allList } from '@/api/business/category' |
| | | export default { |
| | | name: 'Workorder', |
| | | extends: BaseTable, |
| | | components: {TableLayout, Pagination, OperaWorkorderDetailDcaWindow }, |
| | | data () { |
| | | return { |
| | | // æç´¢ |
| | | searchForm: { |
| | | type: '1', |
| | | memberName: '', |
| | | memberCompanyId: '', |
| | | localtionId: '', |
| | | typeId: '', |
| | | code: '', |
| | | categoryList: [] |
| | | }, |
| | | categoryprops: { |
| | | label: 'name', |
| | | value: 'id', |
| | | checkStrictly: true, |
| | | lazyLoad: this.lazyLoad |
| | | }, |
| | | categorys: [] |
| | | } |
| | | }, |
| | | created () { |
| | | this.config({ |
| | | module: 'å·¥åä¿¡æ¯è¡¨', |
| | | api: '/business/workorder', |
| | | 'field.id': 'id', |
| | | 'field.main': 'id' |
| | | }) |
| | | this.loadCategorys() |
| | | this.search() |
| | | }, |
| | | methods: { |
| | | handleChangeCategory (value) { |
| | | if (this.searchForm.categoryList && this.searchForm.categoryList.length >= 1) { |
| | | this.searchForm.typeId = this.searchForm.categoryList[this.searchForm.categoryList.length - 1] |
| | | } |
| | | }, |
| | | loadCategorys () { |
| | | allList({ type: 4, isRoot:1}) |
| | | .then(res => { |
| | | if (res && res.length > 0) { |
| | | this.categorys = res |
| | | } |
| | | }) |
| | | }, |
| | | } |
| | | } |
| | | </script> |
| | |
| | | </el-cascader> |
| | | </el-form-item> |
| | | <el-form-item label="䏿¥äººå" prop="memberName"> |
| | | <el-input v-model="searchForm.memberName" placeholder="人åå§åæææºå·" @keypress.enter.native="search"></el-input> |
| | | <el-input v-model="searchForm.memberName" clearable placeholder="人åå§åæææºå·" @keypress.enter.native="search"></el-input> |
| | | |
| | | |
| | | </el-form-item> |
| | | <el-form-item label="å·¥åå·" prop="code"> |
| | | <el-input v-model="searchForm.code" placeholder="请è¾å
¥å·¥åå·" @keypress.enter.native="search"></el-input> |
| | | <el-input v-model="searchForm.code" clearable placeholder="请è¾å
¥å·¥åå·" @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <section> |
| | | <el-button type="primary" @click="search">æç´¢</el-button> |
| | |
| | | <el-table-column prop="status" label="ç¶æ" min-width="100px"> |
| | | <template slot-scope="{row}"> |
| | | <span v-if="row.status ==0">å¾
å¤ç</span> |
| | | <span v-else-if="row.status ==4">å·²å¤ç</span> |
| | | <span v-else-if="row.status ==3">å·²å
³é</span> |
| | | <span v-else-if="row.status ==3 ||row.status ==4||row.status ==5">å·²å¤ç</span> |
| | | <span v-else>å¤çä¸</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="memberName" label="䏿¥äººå" min-width="100px"> |
| | | <template slot-scope="{row}"> |
| | | <span >{{row.memberName}} - {{row.memberPhone||''}}</span> |
| | | <span v-if="row.memberPhone" >{{row.memberName}} - {{row.memberPhone }}</span> |
| | | <span v-else >{{row.memberName}} </span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="companyName" label="æå¨é¨é¨" min-width="100px"></el-table-column> |
| | |
| | | public ApiResponse<PageData<Category>> findPage (@RequestBody PageWrap<Category> pageWrap) { |
| | | return ApiResponse.success(categoryService.findPage(pageWrap)); |
| | | } |
| | | @ApiOperation("å页æ¥è¯¢") |
| | | @PostMapping("/list") |
| | | @RequiresPermissions("business:category:query") |
| | | public ApiResponse<List<Category>> findList (@RequestBody Category pageWrap) { |
| | | return ApiResponse.success(categoryService.findList(pageWrap)); |
| | | } |
| | | |
| | | @ApiOperation("导åºExcel") |
| | | @PostMapping("/exportExcel") |
| | |
| | | @ApiModelProperty(value = "é£é©æè¿°", example = "1") |
| | | @ExcelExportColumn(name="é£é©æè¿°") |
| | | private String riskInfo; |
| | | |
| | | @ApiModelProperty(value = "å½åç©ä¸ä¸»ç®¡ä¼ä¸å¾®ä¿¡ç¼ç ", example = "1") |
| | | @ExcelExportColumn(name="å½åç©ä¸ä¸»ç®¡ä¼ä¸å¾®ä¿¡ç¼ç ") |
| | | private String managerId; |
| | | |
| | | @ApiModelProperty(value = "å½åå¤ç人åä¼ä¸å¾®ä¿¡ç¼ç ", example = "1") |
| | | @ExcelExportColumn(name="å½åå¤ç人åä¼ä¸å¾®ä¿¡ç¼ç ") |
| | | private String dealerId; |
| | | |
| | | @ApiModelProperty(value = "åé
æ¶é´") |
| | | @ExcelExportColumn(name="åé
æ¶é´") |
| | | |
| | | private Date dispatchTime; |
| | | |
| | | @ApiModelProperty(value = "åé
夿³¨") |
| | |
| | | .eq(category.getType() != null, Category::getType, category.getType()) |
| | | .eq(category.getParentId() != null, Category::getParentId, category.getParentId()) |
| | | .eq(category.getNamePath() != null, Category::getNamePath, category.getNamePath()) |
| | | .isNull(category.getIsRoot() != null &&category.getIsRoot().equals(Constants.ONE), Category::getParentId) |
| | | .eq(category.getIdPath() != null, Category::getIdPath, category.getIdPath()) |
| | | .orderByAsc( Category::getSortnum); |
| | | return categoryMapper.selectJoinList(Category.class,queryWrapper); |
| | |
| | | .eq(pageWrap.getModel().getProblemId() != null, Workorder::getProblemId, pageWrap.getModel().getProblemId()) |
| | | .eq(pageWrap.getModel().getProblemInfo() != null, Workorder::getProblemInfo, pageWrap.getModel().getProblemInfo()) |
| | | .eq(pageWrap.getModel().getLocationName() != null, Workorder::getLocationName, pageWrap.getModel().getLocationName()) |
| | | .eq(pageWrap.getModel().getCode() != null, Workorder::getCode, pageWrap.getModel().getCode()) |
| | | .like(pageWrap.getModel().getCode() != null, Workorder::getCode, pageWrap.getModel().getCode()) |
| | | .eq(pageWrap.getModel().getDcaYesNum() != null, Workorder::getDcaYesNum, pageWrap.getModel().getDcaYesNum()) |
| | | .eq(pageWrap.getModel().getDcaNoNum() != null, Workorder::getDcaNoNum, pageWrap.getModel().getDcaNoNum()) |
| | | .eq(pageWrap.getModel().getDcaRecordId() != null, Workorder::getDcaRecordId, pageWrap.getModel().getDcaRecordId()) |
| | | .eq(pageWrap.getModel().getDcaCsIds() != null, Workorder::getDcaCsIds, pageWrap.getModel().getDcaCsIds()) ; |
| | | if (pageWrap.getModel().getMemberName() != null) { |
| | | queryWrapper.and( ms->ms.like(Member::getName,pageWrap.getModel().getMemberName()) |
| | | .or().like(Member::getPhone,pageWrap.getModel().getMemberName()) ); |
| | | } |
| | | queryWrapper.orderByDesc(Workorder::getCreateDate); |
| | | return PageData.from(workorderMapper.selectJoinPage(page,Workorder.class, queryWrapper)); |
| | | } |