| | |
| | | :visible.sync="visible" |
| | | :confirm-working="isWorking" |
| | | @confirm="confirm" |
| | | width="600px" |
| | | > |
| | | <el-form :model="form" ref="form" :rules="rules"> |
| | | <el-form-item label="ä¸çº§ç»ç»" > |
| | |
| | | <el-form-item label="ç»ç»åç§°" prop="name"> |
| | | <el-input v-model="form.name" placeholder="请è¾å
¥ç»ç»åç§°" v-trim/> |
| | | </el-form-item> |
| | | <el-form-item label="ç»ç»ç±»å" prop="type"> |
| | | <!-- <el-form-item label="ç»ç»ç±»å" prop="type"> |
| | | <el-radio-group v-model="form.type" :disabled="form.parentType == 0"> |
| | | <!-- <el-radio :label="0">ç¸å
³æ¹ç»ç»</el-radio>--> |
| | | <el-radio :label="1">å
é¨ç»ç»</el-radio> |
| | | </el-radio-group> |
| | | </el-form-item> |
| | | </el-form-item> --> |
| | | </el-form> |
| | | </GlobalWindow> |
| | | </template> |
| | |
| | | // è¡¨åæ°æ® |
| | | form: { |
| | | id: null, |
| | | type: '0', |
| | | type: '2', |
| | | name: '', |
| | | parentId: null, |
| | | disable: false, |
| | |
| | | // è¾å
¥æ¡é«åº¦ |
| | | $input-height: 32px; |
| | | .global-window { |
| | | top: 56px !important; |
| | | top: 0; |
| | | left: 218px !important; |
| | | // 头鍿 é¢ |
| | | ::v-deep .el-drawer__header { |
| | |
| | | // è¾å
¥æ¡é«åº¦ |
| | | $input-height: 32px; |
| | | .global-window { |
| | | top: 56px !important; |
| | | top: 0; |
| | | left: 250px !important; |
| | | // 头鍿 é¢ |
| | | ::v-deep .el-drawer__header { |
| | |
| | | <el-table-column type="selection" width="55" align="center" /> |
| | | <el-table-column prop="code" label="å·¡æ£ç¹ç¼ç " min-width="100px"></el-table-column> |
| | | <el-table-column prop="name" label="å·¡æ£ç¹åç§°" min-width="100px"></el-table-column> |
| | | <el-table-column prop="deviceName" label="å·¡æ£ç¹åç§°" min-width="100px"></el-table-column> |
| | | <el-table-column prop="areaName" label="å·¡æ£ç¹åç§°" min-width="100px"></el-table-column> |
| | | <el-table-column prop="deviceName" label="å
³è设å¤" min-width="100px"></el-table-column> |
| | | <el-table-column prop="areaName" label="å·¡æ£åºå" min-width="100px"></el-table-column> |
| | | </el-table> |
| | | <pagination @size-change="handleSizeChange" @current-change="handlePageChange" :pagination="pagination"> |
| | | <pagination class="mt10" @size-change="handleSizeChange" @current-change="handlePageChange" :pagination="pagination"> |
| | | </pagination> |
| | | |
| | | <span slot="footer" class="dialog-footer"> |
| | |
| | | import GlobalWindow from '@/components/common/GlobalWindow' |
| | | import Pagination from '@/components/common/Pagination' |
| | | import { fetchList as getFetchList } from '@/api/Inspection/ywPatrolPoint' |
| | | import { create,updateById, detailById } from '@/api/Inspection/ywPatrolLine' |
| | | import { create, updateById, detailById } from '@/api/Inspection/ywPatrolLine' |
| | | import { Message } from 'element-ui' |
| | | import { fetchList } from '@/api/business/category' |
| | | export default { |
| | |
| | | if (list.length == 0) return Message.warning('请å
鿩巡æ£ç¹') |
| | | form.linePointList = list |
| | | this.isWorking = true |
| | | let fn = form.id ? updateById : create |
| | | let fn = form.id ? updateById : create |
| | | fn({ ...form }).then(res => { |
| | | Message.success('ä¿åæå') |
| | | this.isWorking = false |
| | |
| | | }) |
| | | }, |
| | | initData() { |
| | | this.list = [] |
| | | const { searchForm, pagination } = this |
| | | getFetchList({ |
| | | page: pagination.page, |
| | |
| | | |
| | | }, |
| | | openModal() { |
| | | this.selPoint = this.list.map(i => i.id) |
| | | this.getProject() |
| | | this.reset() |
| | | this.isShowModal = true |
| | | }, |
| | | changeSel(e) { |
| | |
| | | this.initData() |
| | | }, |
| | | subModal() { |
| | | this.list = this.selList.map(item => { |
| | | return { |
| | | needScancode: 0, |
| | | pointName: item.name, |
| | | pointId: item.id, |
| | | code: item.code |
| | | // this.list = this.selList.map(item => { |
| | | // return { |
| | | // needScancode: 0, |
| | | // pointName: item.name, |
| | | // pointId: item.id, |
| | | // code: item.code |
| | | // } |
| | | // }) |
| | | this.selList.forEach(item => { |
| | | const index = this.list.findIndex(i => i.code === item.code) |
| | | if (index === -1) { |
| | | this.list.push({ |
| | | needScancode: 0, |
| | | pointName: item.name, |
| | | pointId: item.id, |
| | | code: item.code |
| | | }) |
| | | } |
| | | }) |
| | | this.isShowModal = false |
| | |
| | | }"></el-cascader> |
| | | </el-form-item> |
| | | <el-form-item label="ç»çº¬åº¦"> |
| | | <el-input v-model="form.lnglat" disabled v-trim /> |
| | | <el-input v-model="form.lnglat" placeholder="示ä¾ï¼117.297461,31.849234" v-trim /> |
| | | </el-form-item> |
| | | <el-form-item> |
| | | <!-- <el-form-item> |
| | | <mapDrag class="mapbox" @center="getCenter" /> |
| | | </el-form-item> |
| | | </el-form-item> --> |
| | | <el-form-item label="å·¡æ£å
容" prop="content"> |
| | | <el-input type="textarea" :rows="4" v-model="form.content" placeholder="请è¾å
¥" /> |
| | | </el-form-item> |
| | |
| | | <template> |
| | | <GlobalWindow title="å·¡æ£ä»»å¡è¯¦æ
" :showConfirm="false" :visible.sync="isShowModal"> |
| | | <QueryForm v-model="filters" :query-form-config="queryFormConfig" @handleQuery="getList(1)" @clear="clear" /> |
| | | <QueryForm v-model="filters" :query-form-config="queryFormConfig" @handleQuery="getDetail(1)" @clear="clear" /> |
| | | <el-table v-loading="loading" :data="list" stripe> |
| | | <el-table-column prop="pointName" label="å·¡æ£ç¹åç§°" min-width="100" show-overflow-tooltip /> |
| | | <el-table-column prop="" label="ç¶æ" min-width="100" show-overflow-tooltip> |
| | |
| | | <span v-if="row.status == 1">已巡æ£</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="editor" label="å·¡æ£äºº" min-width="100" show-overflow-tooltip /> |
| | | <el-table-column prop="realname" label="å·¡æ£äºº" min-width="100" show-overflow-tooltip /> |
| | | <el-table-column prop="editDate" label="å·¡æ£æ¶é´" min-width="100" show-overflow-tooltip /> |
| | | <el-table-column prop="" label="å·¡æ£ç»æ" min-width="100" show-overflow-tooltip> |
| | | <template v-slot="{ row }"> |
| | |
| | | import QueryForm from '@/components/common/QueryForm' |
| | | import Pagination from '@/components/common/Pagination' |
| | | import { getDetail } from '@/api/Inspection/ywPatrolTask' |
| | | import dayjs from 'dayjs' |
| | | export default { |
| | | components: { GlobalWindow, QueryForm, Pagination }, |
| | | data() { |
| | |
| | | page: 1, |
| | | total: 0 |
| | | }, |
| | | loading:false, |
| | | filters: {}, |
| | | list: [], |
| | | total: 0, |
| | |
| | | this.loading = false |
| | | this.list = res.records || [] |
| | | this.pagination.total = res.total |
| | | this.list.forEach(item => { |
| | | item.inTypeTemp = item.inType == 0 ? 'æ´æç' : 'ä»¶ç' |
| | | item.taskOrigin = 'WMSè·å' |
| | | item.workTime = dayjs.duration(item.param3, 'seconds').format('Hæ¶måsç§') |
| | | }) |
| | | // this.list.forEach(item => { |
| | | // item.inTypeTemp = item.inType == 0 ? 'æ´æç' : 'ä»¶ç' |
| | | // item.taskOrigin = 'WMSè·å' |
| | | // item.workTime = dayjs.duration(item.param3, 'seconds').format('Hæ¶måsç§') |
| | | // }) |
| | | this.pagination.total = res.total || 0 |
| | | }, () => { |
| | | this.loading = false |
| | |
| | | <ul class="toolbar" v-permissions="['business:ywpatrolline:create', 'business:ywpatrolline:delete']"> |
| | | <li><el-button type="primary" @click="editClick()" icon="el-icon-plus" |
| | | v-permissions="['business:ywpatrolline:create']">æ°å»º</el-button></li> |
| | | <li><el-button @click="deleteByIdInBatch" icon="el-icon-delete" |
| | | v-permissions="['business:ywpatrolline:delete']">å é¤</el-button></li> |
| | | <!-- <li><el-button @click="deleteByIdInBatch" icon="el-icon-delete" |
| | | v-permissions="['business:ywpatrolline:delete']">å é¤</el-button></li> --> |
| | | </ul> |
| | | <el-table v-loading="isWorking.search" :data="tableData.list" stripe @selection-change="handleSelectionChange"> |
| | | <el-table-column type="selection" width="55"></el-table-column> |
| | |
| | | } else { |
| | | this.$refs.operaYwPatrolLineWindow.open('æ°å»ºå·¡æ£çº¿è·¯') |
| | | } |
| | | this.$refs.operaYwPatrolLineWindow.list = [] |
| | | this.$refs.operaYwPatrolLineWindow.initData() |
| | | |
| | | }, |
| | |
| | | |
| | | <section> |
| | | <el-button type="primary" @click="search">æç´¢</el-button> |
| | | <el-button type="primary" :loading="isWorking.export" v-permissions="['business:ywpatrolscheme:exportExcel']" |
| | | @click="exportExcel">导åº</el-button> |
| | | <el-button @click="reset">éç½®</el-button> |
| | | </section> |
| | | </el-form> |
| | |
| | | <ul class="toolbar" v-permissions="['business:ywpatrolscheme:create', 'business:ywpatrolscheme:delete']"> |
| | | <li><el-button type="primary" @click="editClick()" icon="el-icon-plus" |
| | | v-permissions="['business:ywpatrolscheme:create']">æ°å»º</el-button></li> |
| | | <el-button type="primary" plain :loading="isWorking.export" v-permissions="['business:ywpatrolscheme:exportExcel']" |
| | | @click="exportExcel">导åº</el-button> |
| | | <!-- <li><el-button @click="deleteByIdInBatch" icon="el-icon-delete" |
| | | v-permissions="['business:ywpatrolscheme:delete']">å é¤</el-button></li> --> |
| | | </ul> |
| | |
| | | </el-table-column> |
| | | <el-table-column label="ç¶æ" min-width="100px"> |
| | | <template v-slot="scope"> |
| | | <el-switch v-model="scope.row.status" @change="e => changeStatus(scope.row)" :active-value="0" :inactive-value="1"> |
| | | <el-switch v-model="scope.row.status" @change="e => changeStatus(scope.row)" :active-value="0" |
| | | :inactive-value="1"> |
| | | </el-switch> |
| | | </template> |
| | | </el-table-column> |
| | |
| | | return { |
| | | // æç´¢ |
| | | searchForm: { |
| | | title: '' |
| | | title: '' |
| | | } |
| | | } |
| | | }, |
| | |
| | | }, |
| | | methods: { |
| | | changeStatus(e) { |
| | | console.log(e); |
| | | console.log(e) |
| | | updateStatusById(e).then(res => { |
| | | this.search() |
| | | Message.success('ç¶æä¿®æ¹æå') |
| | |
| | | }) |
| | | }, |
| | | changeDate(e) { |
| | | if(e && e.length > 0){ |
| | | if (e && e.length > 0) { |
| | | this.$set(this.searchForm, 'startDate', e[0]) |
| | | this.$set(this.searchForm, 'endDate', e[1]) |
| | | }else{ |
| | | } else { |
| | | this.$set(this.searchForm, 'startDate', '') |
| | | this.$set(this.searchForm, 'endDate', '') |
| | | } |
| | | |
| | | |
| | | }, |
| | | reset() { |
| | | this.searchForm = {} |
| | |
| | | this.$refs.operaYwPatrolSchemeWindow.open('æ°å»ºå·¡æ£è®¡å') |
| | | } |
| | | this.$refs.operaYwPatrolSchemeWindow.initData() |
| | | |
| | | |
| | | }, |
| | | } |
| | | } |
| | |
| | | </el-form-item> |
| | | <section> |
| | | <el-button type="primary" @click="search">æç´¢</el-button> |
| | | <el-button type="primary" :loading="isWorking.export" v-permissions="['business:ywpatroltask:exportExcel']" @click="exportExcel">导åº</el-button> |
| | | |
| | | <el-button @click="reset">éç½®</el-button> |
| | | </section> |
| | | </el-form> |
| | | <!-- è¡¨æ ¼åå页 --> |
| | | <template v-slot:table-wrap> |
| | | <el-table |
| | | v-loading="isWorking.search" |
| | | :data="tableData.list" |
| | | stripe |
| | | @selection-change="handleSelectionChange" |
| | | > |
| | | <div> |
| | | <el-button type="primary" plain :loading="isWorking.export" |
| | | v-permissions="['business:ywpatroltask:exportExcel']" @click="exportExcel">导åº</el-button> |
| | | </div> |
| | | <el-table v-loading="isWorking.search" :data="tableData.list" stripe @selection-change="handleSelectionChange"> |
| | | <el-table-column type="selection" width="55"></el-table-column> |
| | | <el-table-column prop="planTitle" label="计ååç§°" min-width="100px"></el-table-column> |
| | | <el-table-column prop="planCode" label="计åç¼å·" min-width="100px"></el-table-column> |
| | | <el-table-column prop="code" label="ä»»å¡ç¼å·" min-width="100px"></el-table-column> |
| | | <el-table-column prop="dealDate" label="任塿¶é´" min-width="140px"> |
| | | <template v-slot="scope"> |
| | | <span v-if="scope.row.startDate && scope.row.endDate">{{ scope.row.startDate.slice(0, 16) }} - {{ scope.row.endDate.slice(11, 16) }}</span> |
| | | <span v-if="scope.row.startDate && scope.row.endDate">{{ scope.row.startDate.slice(0, 16) }} - {{ |
| | | scope.row.endDate.slice(11, 16) }}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="dealDate" label="å®é
宿æ¶é´" min-width="100px"></el-table-column> |
| | |
| | | <span class="gray" v-if="scope.row.status == 4">已忶</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | v-if="containPermissions(['business:ywpatroltask:update', 'business:ywpatroltask:delete'])" |
| | | label="æä½" |
| | | min-width="120" |
| | | fixed="right" |
| | | > |
| | | <el-table-column v-if="containPermissions(['business:ywpatroltask:update', 'business:ywpatroltask:delete'])" |
| | | label="æä½" min-width="120" fixed="right"> |
| | | <template slot-scope="{row}"> |
| | | <el-button type="text" @click="handleDetail(row)">æ¥ç详æ
</el-button> |
| | | <el-button v-if="row.status == 0" type="text" class="red" @click="cancelById(row)" v-permissions="['business:ywpatroltask:delete']">åæ¶</el-button> |
| | | <el-button v-if="row.status == 0" type="text" class="red" @click="cancelById(row)" |
| | | v-permissions="['business:ywpatroltask:delete']">åæ¶</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | <pagination |
| | | @size-change="handleSizeChange" |
| | | @current-change="handlePageChange" |
| | | :pagination="tableData.pagination" |
| | | > |
| | | <pagination @size-change="handleSizeChange" @current-change="handlePageChange" :pagination="tableData.pagination"> |
| | | </pagination> |
| | | </template> |
| | | <!-- --> |
| | |
| | | name: 'YwPatrolTask', |
| | | extends: BaseTable, |
| | | components: { TableLayout, Pagination, TaskDetail }, |
| | | data () { |
| | | data() { |
| | | return { |
| | | // æç´¢ |
| | | searchForm: { |
| | | title:'', |
| | | title: '', |
| | | status: '' |
| | | } |
| | | } |
| | | }, |
| | | created () { |
| | | created() { |
| | | this.config({ |
| | | module: 'è¿ç»´å·¡æ£ä»»å¡ä¿¡æ¯è¡¨', |
| | | api: '/Inspection/ywPatrolTask', |
| | |
| | | default-expand-all> |
| | | <el-table-column type="selection" width="55"></el-table-column> |
| | | <el-table-column prop="name" label="ç»ç»åç§°" min-width="100px"></el-table-column> |
| | | <el-table-column prop="name" label="ç»ç»ç±»å" min-width="80px"> |
| | | <!-- <el-table-column prop="name" label="ç»ç»ç±»å" min-width="80px"> |
| | | <template scope="{row}"> |
| | | <span v-if="row.type == 0">ç¸å
³æ¹ç»ç»</span> |
| | | <span v-if="row.type == 1">å
é¨ç»ç»</span> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table-column> --> |
| | | <el-table-column prop="companyNamePath" label="ç»ç»è·¯å¾" min-width="100px"></el-table-column> |
| | | <el-table-column prop="editorName" label="æä½äºº" min-width="100px"></el-table-column> |
| | | <el-table-column prop="editDate" label="æåæ´æ°æ¶é´" min-width="100px"></el-table-column> |
| | |
| | | loading: false, |
| | | sorting: false, |
| | | searchForm: { |
| | | // type: 1 |
| | | type: 2 |
| | | }, |
| | | list: [], |
| | | total: 0 |
| | |
| | | // ç¼è¾ |
| | | this.$nextTick(() => { |
| | | if (title == 'ç¼è¾å®¢æ·') { |
| | | this.getClient() |
| | | this.getClient(target.id) |
| | | detailById(target.id).then(res => { |
| | | this.form = res |
| | | }) |
| | | } |
| | | }) |
| | | }, |
| | | getClient() { |
| | | getClient(customerId) { |
| | | fetchList({ |
| | | capacity: 9999, |
| | | page: 1, |
| | | model: {} |
| | | model: {customerId} |
| | | }).then(res => { |
| | | this.clientList = res.records |
| | | }) |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <GlobalWindow width="720px" title="å·¥å详æ
" :visible.sync="visible" :confirm-working="isWorking" @close="close" |
| | | @confirm="confirm"> |
| | | <div class="main"> |
| | | <div class="title"> |
| | | <span>åºç¡ä¿¡æ¯</span> |
| | | </div> |
| | | <div class="main_content"> |
| | | <div class="list"> |
| | | <div class="item"> |
| | | <div class="la">设å¤ç¼ç </div> |
| | | <div class="val">{{ info.code }}</div> |
| | | </div> |
| | | <div class="item"> |
| | | <div class="la">设å¤åç§°</div> |
| | | <div class="val">{{ info.name }}</div> |
| | | </div> |
| | | <div class="item"> |
| | | <div class="la">设å¤åå·</div> |
| | | <div class="val">{{ info.modelNo }}</div> |
| | | </div> |
| | | <div class="item"> |
| | | <div class="la">设å¤åç±»</div> |
| | | <div class="val">{{ info.categoryName }}</div> |
| | | </div> |
| | | <div class="item"> |
| | | <div class="la">设å¤ç®¡çå</div> |
| | | <div class="val">{{ info.realName }}</div> |
| | | </div> |
| | | <div class="item"> |
| | | <div class="la">æå¨ä½ç½®</div> |
| | | <div class="val">{{ info.addr }}</div> |
| | | </div> |
| | | <div class="item"> |
| | | <div class="la">设å¤ç¶æ</div> |
| | | <spa class="val" v-if="info.status == 0">æ£å¸¸</spa> |
| | | <spa class="val" v-if="info.status == 1">æå</spa> |
| | | <spa class="val" v-if="info.status == 2">æ¥åº</spa> |
| | | </div> |
| | | <div class="item"> |
| | | <div class="la">ä¾åºå</div> |
| | | <div class="val">{{ info.supplier }}</div> |
| | | </div> |
| | | <div class="item" v-if="info.content" style="width: 100%;"> |
| | | <div class="la">è¿ç»´å
容</div> |
| | | <div class="val">{{ info.content }}</div> |
| | | </div> |
| | | <div v-if="info.fileFullUrl" class="item" style="width: 100%;"> |
| | | <div class="la">ç
§ç</div> |
| | | <div class="val"> |
| | | <img class="photo" :src="info.fileFullUrl" alt=""> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </GlobalWindow> |
| | | </template> |
| | | |
| | | <script> |
| | | import GlobalWindow from '@/components/common/GlobalWindow' |
| | | import BaseOpera from '@/components/base/BaseOpera' |
| | | import { detailById } from '@/api/Inspection/device.js' |
| | | import { getUserList } from '@/api/system/user' |
| | | import { Message, Loading } from 'element-ui' |
| | | export default { |
| | | components: { |
| | | GlobalWindow |
| | | }, |
| | | extends: BaseOpera, |
| | | data() { |
| | | return { |
| | | id: '', |
| | | visible: false, |
| | | info: {}, |
| | | |
| | | } |
| | | }, |
| | | methods: { |
| | | getDetail() { |
| | | const { id } = this |
| | | detailById(id).then(res => { |
| | | this.info = res |
| | | }) |
| | | }, |
| | | close() { |
| | | this.visible = false |
| | | this.$emit('close') |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style lang="scss" scoped> |
| | | @import '@/assets/style/variables.scss'; |
| | | |
| | | .main { |
| | | padding-top: 20px; |
| | | |
| | | .title { |
| | | font-weight: 500; |
| | | font-size: 18px; |
| | | color: $primary-color; |
| | | margin-bottom: 10px; |
| | | display: flex; |
| | | align-items: center; |
| | | |
| | | .status { |
| | | padding: 0 6px; |
| | | height: 22px; |
| | | line-height: 22px; |
| | | border-radius: 2px; |
| | | border: 1px solid #00BA92; |
| | | color: #00BA92; |
| | | font-weight: 400; |
| | | font-size: 12px; |
| | | margin-left: 10px; |
| | | } |
| | | |
| | | .primaryColor { |
| | | border: 1px solid $primary-color; |
| | | } |
| | | |
| | | .gray { |
| | | color: gray; |
| | | border: 1px solid gray; |
| | | } |
| | | } |
| | | |
| | | .list { |
| | | display: flex; |
| | | flex-wrap: wrap; |
| | | /* background: #F7F7F7; */ |
| | | border-radius: 2px; |
| | | padding: 15px 20px; |
| | | margin-bottom: 16px; |
| | | width: 100%; |
| | | |
| | | .item { |
| | | width: 33.3%; |
| | | margin-bottom: 12px; |
| | | |
| | | .photo { |
| | | width: 92px; |
| | | height: 92px; |
| | | } |
| | | |
| | | .la { |
| | | color: #7f7f7f; |
| | | margin-top: 2px; |
| | | } |
| | | } |
| | | |
| | | .item2 { |
| | | width: 100%; |
| | | display: flex; |
| | | align-items: center; |
| | | } |
| | | |
| | | .max { |
| | | width: 100%; |
| | | } |
| | | } |
| | | |
| | | .main_content { |
| | | display: flex; |
| | | width: 100%; |
| | | } |
| | | } |
| | | |
| | | .file_list { |
| | | display: flex; |
| | | flex-wrap: wrap; |
| | | |
| | | .avatar-uploader { |
| | | width: 92px; |
| | | height: 92px; |
| | | display: flex; |
| | | justify-content: center; |
| | | align-items: center; |
| | | border: 1px dashed #d9d9d9; |
| | | } |
| | | |
| | | .item { |
| | | width: 92px; |
| | | max-height: 92px; |
| | | margin-left: 10px; |
| | | position: relative; |
| | | border: 1px dashed #d9d9d9; |
| | | border-radius: 4px; |
| | | display: flex; |
| | | align-items: center; |
| | | justify-content: center; |
| | | |
| | | .close { |
| | | font-size: 20px; |
| | | position: absolute; |
| | | right: -10px; |
| | | top: -10px; |
| | | z-index: 111; |
| | | color: red; |
| | | cursor: pointer; |
| | | } |
| | | |
| | | .img { |
| | | width: 92px; |
| | | max-height: 92px; |
| | | } |
| | | } |
| | | } |
| | | </style> |
| | |
| | | </el-form-item> |
| | | <el-form-item label="ä¾åºå" prop=""> |
| | | <el-input v-model="param.supplier" placeholder="请è¾å
¥" v-trim /> |
| | | |
| | | </el-form-item> |
| | | <el-form-item label="è¿ç»´å
容" prop=""> |
| | | <el-input type="textarea" :rows="4" v-model="param.content" placeholder="请è¾å
¥" /> |
| | |
| | | import { getUserList } from '@/api/system/user' |
| | | import { create, updateById } from '@/api/Inspection/deviceRecord' |
| | | import { Message, Loading } from 'element-ui' |
| | | import dayjs from 'dayjs' |
| | | export default { |
| | | components: { GlobalWindow, UploadAvatarImage }, |
| | | data() { |
| | |
| | | deviceList: [], |
| | | staffList: [], |
| | | rules: { |
| | | dealDate: [{ required: true, message: 'è¯·éæ©' }], |
| | | deviceId: [{ required: true, message: 'è¯·éæ©' }], |
| | | content: [{ required: true, message: '请è¾å
¥' }], |
| | | // code: [{ required: true, message: '请è¾å
¥' }], |
| | |
| | | uploadImgUrl: process.env.VUE_APP_API_PREFIX + '/visitsAdmin/cloudService/public/uploadBatch', |
| | | fileList: [], |
| | | uploadData: { |
| | | folder: 'HIDDEN_DANGER_FILE' |
| | | folder: 'YW_DEVICE' |
| | | }, |
| | | |
| | | } |
| | | }, |
| | | created() { |
| | | this.initData() |
| | | this.$set(this.param, 'dealDate', dayjs().format('YYYY-MM-DD HH:mm:ss')) |
| | | }, |
| | | methods: { |
| | | handleSub() { |
| | |
| | | </div> |
| | | <div class="item"> |
| | | <div class="la">è¿ç»´äºº</div> |
| | | <div class="val">{{ info.realName }}</div> |
| | | <div class="val">{{ info.realName }}-{{ info.companyName }}</div> |
| | | </div> |
| | | <div class="item"> |
| | | <div class="la">è¿ç»´äººçµè¯</div> |
| | |
| | | <span v-if="row.status == 2">æ¥åº</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="æä½" min-width="120" fixed="right"> |
| | | <el-table-column label="æä½" min-width="130" fixed="right"> |
| | | <template slot-scope="{row}"> |
| | | <el-button type="text" @click="handleDetail(row)" v-permissions="['business:category:update']">æ¥ç详æ
</el-button> |
| | | <el-button type="text" @click="handleEdit(row)" icon="el-icon-edit" |
| | | v-permissions="['business:category:update']">ç¼è¾</el-button> |
| | | <el-button type="text" @click="handleDel(row)" icon="el-icon-delete" |
| | |
| | | <Pagination @size-change="handleSizeChange" @current-change="getList" :pagination="pagination" /> |
| | | </div> |
| | | <Edit v-if="showEdit" ref="EditRef" @success="getList" @close="showEdit = false" /> |
| | | <Detail ref="DetailRef" /> |
| | | </div> |
| | | </template> |
| | | |
| | |
| | | import Pagination from '@/components/common/Pagination' |
| | | import QueryForm from '@/components/common/QueryForm' |
| | | import Edit from './components/deviceEdit' |
| | | import Detail from './components/deviceDetail' |
| | | import { fetchList, deleteById } from '@/api/Inspection/device' |
| | | export default { |
| | | components: { |
| | | Pagination, |
| | | QueryForm, |
| | | Edit |
| | | Edit, |
| | | Detail |
| | | }, |
| | | data() { |
| | | return { |
| | |
| | | this.loading = false |
| | | }) |
| | | }, |
| | | handleDetail(row) { |
| | | this.$refs.DetailRef.visible = true |
| | | this.$refs.DetailRef.id = row.id |
| | | this.$refs.DetailRef.getDetail() |
| | | }, |
| | | handleEdit(row) { |
| | | this.showEdit = true |
| | | this.$nextTick(() => { |
| | | this.$refs.EditRef.isShowModal = true |
| | | if (row && row.id) { |
| | | console.log('---'); |
| | | |
| | | console.log('---') |
| | | |
| | | this.$refs.EditRef.getDetail(row.id) |
| | | } |
| | | }) |
| | |
| | | <el-input v-model="form.code" placeholder="请è¾å
¥æ¿é´ç¼å·" v-trim /> |
| | | </el-form-item> |
| | | <el-form-item label="æ¯å¦æå" prop="isInvestment"> |
| | | <el-switch v-model="form.isInvestment" active-value="1" inactive-value="0"> |
| | | <el-switch v-model="form.isInvestment" :active-value="1" :inactive-value="0"> |
| | | </el-switch> |
| | | </el-form-item> |
| | | <el-form-item label="建çé¢ç§¯(m²)" prop="area"> |
| | |
| | | imgurl: '', |
| | | code: '', |
| | | roomNum: '', |
| | | isInvestment: '0', |
| | | isInvestment: 0, |
| | | area: '', |
| | | feeArea: '', |
| | | rentArea: '', |
| | |
| | | this.getDetail(target.id) |
| | | }) |
| | | }, |
| | | confirm () { |
| | | if(!this.form.feeArea){ |
| | | this.form.feeArea = this.form.rentArea |
| | | } |
| | | if (this.form.id == null || this.form.id === '') { |
| | | this.__confirmCreate() |
| | | return |
| | | } |
| | | this.__confirmEdit() |
| | | }, |
| | | getDetail(id) { |
| | | detailById(id).then(res => { |
| | | this.form = res || {} |
| | |
| | | </div> |
| | | <div class="item"> |
| | | <div class="la">楼å®åç§°</div> |
| | | <div class="val">{{ info.buildingName }}</div> |
| | | <div class="val">{{ info.buildingName || info.name }}</div> |
| | | </div> |
| | | <div class="item"> |
| | | <div class="la">楼å®ç¼ç </div> |
| | |
| | | </el-form-item> |
| | | <section> |
| | | <el-button type="primary" @click="search">æç´¢</el-button> |
| | | <el-button type="primary" :loading="isWorking.export" v-permissions="['business:ywroom:exportExcel']" |
| | | @click="exportExcel">导åº</el-button> |
| | | <!-- <el-button type="primary" :loading="isWorking.export" v-permissions="['business:ywroom:exportExcel']" |
| | | @click="exportExcel">导åº</el-button> --> |
| | | <el-button @click="reset">éç½®</el-button> |
| | | </section> |
| | | </el-form> |
| | |
| | | <ul class="toolbar" v-permissions="['business:ywroom:create', 'business:ywroom:delete']"> |
| | | <li><el-button type="primary" @click="editClick()" icon="el-icon-plus" |
| | | v-permissions="['business:ywroom:create']">æ°å»º</el-button></li> |
| | | <li><el-button @click="deleteByIdInBatch" icon="el-icon-delete" |
| | | v-permissions="['business:ywroom:delete']">å é¤</el-button></li> |
| | | <!-- <li><el-button @click="deleteByIdInBatch" icon="el-icon-delete" |
| | | v-permissions="['business:ywroom:delete']">å é¤</el-button></li> --> |
| | | </ul> |
| | | <el-table v-loading="isWorking.search" :data="tableData.list" stripe @selection-change="handleSelectionChange"> |
| | | <el-table-column type="selection" width="55"></el-table-column> |
| | |
| | | <el-table-column prop="roomNum" label="æ¿å·" min-width="60px"></el-table-column> |
| | | <el-table-column prop="rentArea" label="计ç§é¢ç§¯(m²)" min-width="80px"></el-table-column> |
| | | <el-table-column prop="feeArea" label="计费é¢ç§¯(m²)" min-width="80px"></el-table-column> |
| | | <el-table-column prop="feeArea" label="ç§èµç¶æ" min-width="80px"></el-table-column> |
| | | <el-table-column prop="" label="ç§èµç¶æ" min-width="80px"> |
| | | <template v-slot="{row}"> |
| | | <span v-if="row.leaseStatus == 0">å¾
ç§èµ</span> |
| | | <span v-if="row.leaseStatus == 1">å·²ç§èµ</span> |
| | | <span v-if="row.leaseStatus == 2">æªå¼å¯ç§èµ</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="isInvestment" label="æåç¶æ" min-width="60px"> |
| | | <template v-slot="scope"> |
| | | <span v-if="scope.row.isInvestment == 1" class="green">æå</span> |
| | |
| | | <TableLayout :permissions="['business:ywworkorder:query']"> |
| | | <!-- æç´¢è¡¨å --> |
| | | <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline> |
| | | <el-form-item prop="areaType" label="ä½ç½®ç±»å«"> |
| | | <el-form-item prop="areaType" label="ä½ç½®ç±»å"> |
| | | <el-select v-model="searchForm.areaType"> |
| | | <el-option label="室å
ç»´ä¿®" value="0"></el-option> |
| | | <el-option label="å
Œ
±ç»´ä¿®" value="1"></el-option> |
| | |
| | | @click="exportExcel" plain>导åº</el-button> |
| | | </ul> |
| | | <el-table v-loading="isWorking.search" :data="tableData.list" stripe> |
| | | <el-table-column prop="areaType" label="ä½ç½®ç±»å" min-width="80px"> |
| | | <el-table-column prop="areaType" label="ä½ç½®ç±»å" min-width="70px"> |
| | | <template v-slot="scope"> |
| | | <span v-if="scope.row.areaType == 0">室å
è£
ä¿®</span> |
| | | <span v-if="scope.row.areaType == 1">å
Œ
񆧆</span> |
| | |
| | | }}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="categoryName" label="ç©åç±»å" min-width="100px"></el-table-column> |
| | | <el-table-column prop="creatorName" label="䏿¥äºº" min-width="100px"></el-table-column> |
| | | <el-table-column prop="categoryName" label="å·¥ååç±»" min-width="100px"></el-table-column> |
| | | <el-table-column prop="creatorName" label="䏿¥äºº" min-width="80px"></el-table-column> |
| | | <el-table-column prop="createDate" label="䏿¥æ¶é´" min-width="100px"></el-table-column> |
| | | <el-table-column prop="dealUserName" label="å¤ç人" min-width="100px"></el-table-column> |
| | | <el-table-column label="å·¥åç¶æ" min-width="100px"> |
| | | <el-table-column prop="dealUserName" label="å¤ç人" min-width="80px"></el-table-column> |
| | | <el-table-column label="å·¥åç¶æ" min-width="70px"> |
| | | <template slot-scope="{row}"> |
| | | <span v-if="row.dealStatus == 0">å¾
ææ´¾</span> |
| | | <span v-if="row.dealStatus == 1">å·²ææ´¾</span> |
| | | <span v-if="row.dealStatus == 2">å·²å¤ç</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column v-if="containPermissions(['business:ywworkorder:update'])" label="æä½" min-width="80" |
| | | <el-table-column v-if="containPermissions(['business:ywworkorder:update'])" label="æä½" width="80" |
| | | fixed="right"> |
| | | <template slot-scope="{row}"> |
| | | <span @click="handleDetail(row)" class="primaryColor cu">æ¥ç详æ
</span> |
| | |
| | | <script> |
| | | export default { |
| | | onLaunch: function () { |
| | | |
| | | // const result = uni.getWindowInfo() |
| | | }, |
| | | onShow: function () { |
| | | console.log('App Show') |
| | |
| | | <style lang="scss"> |
| | | /*æ¯ä¸ªé¡µé¢å
Œ
±css */ |
| | | @import "uview-ui/index.scss"; |
| | | // @import "./uni_modules/uview-ui/index.scss"; |
| | | body{ |
| | | font-size: 28rpx; |
| | | } |
| | |
| | | justify-content: space-between; |
| | | align-items: center; |
| | | } |
| | | .empty_wrap{ |
| | | display: flex; |
| | | flex-direction: column; |
| | | justify-content: center; |
| | | align-items: center; |
| | | height: 100%; |
| | | image{ |
| | | width: 320rpx; |
| | | } |
| | | } |
| | | .bg{ |
| | | width: 100%; |
| | | height: 100%; |
| | |
| | | url: 'visitsAdmin/cloudService/business/ywPatrolTaskRecord/patrolData', |
| | | data |
| | | }) |
| | | } |
| | | // åç±» |
| | | export const getCategoryPost = (data) => { |
| | | return http({ |
| | | url: 'visitsAdmin/cloudService/business/category/page', |
| | | data |
| | | }) |
| | | } |
| | |
| | | "/gateway_interface" : { |
| | | // è¿ä¸ªå段åéä¸ä½ é
ç½®çbasePrefixUrlä¸è´ï¼ç³»ç»è¯å«å°å¸¦æ/dev-api请æ±çå°åæ¶ï¼ä¼å¨å颿¼æ¥ä¸ä»£çæå¡å¨å°å |
| | | // "target" : "http://172.20.10.7:10010", // 代çæå¡å¨ååæIPå°å |
| | | "target" : "http://192.168.0.162:10010", // 代çæå¡å¨ååæIPå°å |
| | | "target" : "http://192.168.0.163:10010", // 代çæå¡å¨ååæIPå°å |
| | | // "target" : "http://10.50.250.253:8088/gateway_interface", // 代çæå¡å¨ååæIPå°å |
| | | // "target" : "http://192.168.0.173/gateway_interface", // 代çæå¡å¨ååæIPå°å |
| | | "changeOrigin" : true, // å
许跨å |
| | |
| | | "path" : "pages/polling/detail", |
| | | "style" : |
| | | { |
| | | "navigationBarTitleText" : "è¿ç»´è¯¦æ
" |
| | | "navigationBarTitleText" : "ä»»å¡è¯¦æ
" |
| | | } |
| | | }, |
| | | { |
| | |
| | | </view> |
| | | <view class="modal_list"> |
| | | <view class="item" v-for="item,i in deviceList" @click="deviceClick(item)"> |
| | | <view class="name">{{ item.name }}</view> |
| | | <view class="name">[{{item.code}}] {{ item.name }}</view> |
| | | <image v-if="activeDevice.id == item.id" src="@/static/radioed.png" mode=""></image> |
| | | </view> |
| | | </view> |
| | |
| | | multifileList: fileList |
| | | }).then(res => { |
| | | this.showToast('æäº¤æå') |
| | | // uni.navigateBack() |
| | | uni.navigateBack() |
| | | }) |
| | | }, |
| | | getDevice(){ |
| | |
| | | <image v-if="info.status == 2" class="icon" src="@/static/side/ic_dabiaoed.png" mode=""></image>
|
| | | <image v-if="info.status == 3" class="icon" src="@/static/side/ic_dabiao.png" mode=""></image>
|
| | | <view class="head">
|
| | | <view class="name">{{ info.title }}</view>
|
| | | <view class="name">{{ info.title || info.planTitle }}</view>
|
| | | <view class="status" v-if="info.status || info.status == 0" :style="{color: statusM[info.status].color}">{{statusM[info.status].name}}</view>
|
| | | </view>
|
| | | <view class="line">
|
| | | <view class="la">任塿¥æï¼</view>
|
| | | <view class="val" v-if="info.startDate && info.endDate">{{ info.startDate.slice(0, 11) }} è³
|
| | | {{ info.endDate.slice(0, 11) }}</view>
|
| | | <view class="val" v-if="info.startDate">{{ info.startDate.slice(0, 10) }}</view>
|
| | | </view>
|
| | | <view class="line">
|
| | | <view class="la">æ§è¡æ¶é´ï¼</view>
|
| | |
| | | </view>
|
| | | <view class="line">
|
| | | <view class="la">宿æ
åµï¼</view>
|
| | | <view class="val">{{info.finishNum}}/{{info.patrolNum}}</view>
|
| | | <view class="val">{{info.finishNum || 0}}/{{info.patrolNum}}</view>
|
| | | </view>
|
| | | </view>
|
| | | <view class="title">å·¡æ£ç¹å表({{list.length}})</view>
|
| | |
| | | </view>
|
| | | </view>
|
| | | </view>
|
| | | <view class="footer">
|
| | | <view class="footer" v-if="flag">
|
| | | <view class="sub_btn">æ«ç å·¡æ£</view>
|
| | | </view>
|
| | | </view>
|
| | |
| | | import {
|
| | | ywPatrolDetail,
|
| | | ywPatrolTaskRecord
|
| | | } from '@/api'
|
| | | } from '@/api' |
| | | import dayjs from 'dayjs';
|
| | | export default {
|
| | | data() {
|
| | | return {
|
| | | id: '',
|
| | | info: {},
|
| | | list: [], |
| | | flag: false, |
| | | statusM: [ |
| | | { color: '#4593f7', name: 'å¾
å¼å§' }, |
| | | { color: '#73e09a', name: 'è¿è¡ä¸' }, |
| | |
| | | this.getDetail() |
| | | },
|
| | | methods: {
|
| | | itemClick(item) {
|
| | | itemClick(item) { |
| | | if(!this.flag) return
|
| | | uni.navigateTo({
|
| | | url: '/pages/polling/point?id=' + item.id
|
| | | })
|
| | |
| | | id
|
| | | } = this
|
| | | ywPatrolDetail(id).then(res => {
|
| | | this.info = res.data
|
| | | this.info = res.data |
| | | let time = new Date(res.data.startDate.slice(0, 10) + ' 00:00:00').getTime() |
| | | this.flag = new Date().getTime() > time
|
| | | })
|
| | | ywPatrolTaskRecord({
|
| | | capacity: 999,
|
| | |
| | | <template v-if="info.status == 1">
|
| | | <view class="line">
|
| | | <div class="la">å·¡æ£ç»æï¼</div>
|
| | | <div class="val primaryColor" :class="{red: info.dealStatus == 1}">{{ info.dealStatus == 0 ? 'æ£å¸¸' : 'å¼å¸¸' }}</div>
|
| | | <div class="val primaryColor" :class="{red: info.dealStatus == 1}">{{ info.dealStatus == 0 ? 'æ£å¸¸' : 'å¼å¸¸' }}
|
| | | </div>
|
| | | </view>
|
| | | <view class="line">
|
| | | <div class="la">å·¡æ£æ¶é´ï¼</div>
|
| | |
| | | </view>
|
| | | <!-- -->
|
| | | <view v-if="info.status == 1" class="content">
|
| | | <view class="title">å·¡æ£è®°å½</view> |
| | | <view class="files"> |
| | | <view class="adduser_list_item_ipt1_upload" v-for="(item, i) in info.multifileList" :key="i"> |
| | | <image v-if="item.type == 0" :src="item.fileurlFull" mode="widthFix"></image> |
| | | <video v-if="item.type == 1" :src="item.fileurlFull" :controls="false"></video> |
| | | </view> |
| | | <view class="title">å·¡æ£è®°å½</view>
|
| | | <view class="files">
|
| | | <view class="adduser_list_item_ipt1_upload" v-for="(item, i) in info.multifileList" :key="i">
|
| | | <image v-if="item.type == 0" :src="item.fileurlFull" mode="widthFix"></image>
|
| | | <video v-if="item.type == 1" :src="item.fileurlFull" :controls="false"></video>
|
| | | </view>
|
| | | </view>
|
| | | <view class="desc">{{ info.dealInfo }}</view>
|
| | | <view class="line line_s">
|
| | |
| | | <u-icon name="arrow-right"></u-icon>
|
| | | </view>
|
| | | </view>
|
| | |
|
| | | <view class="df_sb">
|
| | | <view class="">å·¡æ£ç»æ</view>
|
| | | <view class="df_ac" @click="isShowRes = true" v-if="handleParam.dealDate">
|
| | | {{ handleParam.dealName }}
|
| | | <u-icon name="arrow-right"></u-icon>
|
| | | </view>
|
| | | </view>
|
| | | <view class="label">
|
| | | ä¸ä¼ å¾ç/è§é¢
|
| | | </view>
|
| | |
| | | <view class="label">å¤ç说æ</view>
|
| | | <textarea v-model="handleParam.dealInfo" placeholder="请填åå¤ç说æ" placeholder-class="placeholder9" />
|
| | | </view>
|
| | | </view> |
| | | </view>
|
| | | <view class="sub_btn" @click="onSubmit">确认巡æ£</view>
|
| | | <!-- -->
|
| | | <u-popup :show="showUpload" @close="showUpload = false" closeOnClickOverlay>
|
| | |
| | | <!-- -->
|
| | | <u-datetime-picker :minDate="new Date().getTime()" :show="isShowHandleDate" @confirm="confirmHandleDate"
|
| | | @cancel="isShowHandleDate = false" mode="datetime"></u-datetime-picker>
|
| | | <u-picker :show="isShowRes" keyName="name" @cancel="isShowRes = false" @confirm='confirmRes'
|
| | | :columns="columns"></u-picker>
|
| | |
|
| | | </view>
|
| | | </template>
|
| | |
|
| | | <script>
|
| | | import {
|
| | | uploadUrl, |
| | | ywPatrolPointDetail, |
| | | uploadUrl,
|
| | | ywPatrolPointDetail,
|
| | | patrolData
|
| | | } from '@/api'
|
| | | import dayjs from 'dayjs';
|
| | | export default {
|
| | | data() {
|
| | | return { |
| | | id: '', |
| | | return {
|
| | | id: '',
|
| | | info: {},
|
| | | isShowRes: false,
|
| | | showUpload: false,
|
| | | isShowHandle: false,
|
| | | isShowHandleDate: false,
|
| | | handleParam: { |
| | | dealStatus: 1 |
| | | handleParam: {
|
| | | dealStatus: 0,
|
| | | dealName: 'æ£å¸¸'
|
| | | },
|
| | | fileList: []
|
| | | fileList: [],
|
| | | columns: [
|
| | | [{
|
| | | id: 0,
|
| | | name: 'æ£å¸¸'
|
| | | },
|
| | | {
|
| | | id: 1,
|
| | | name: 'å¼å¸¸'
|
| | | },
|
| | | {
|
| | | id: '',
|
| | | name: 'è·³è¿'
|
| | | },
|
| | | ]
|
| | | ],
|
| | | };
|
| | | }, |
| | | onLoad(option) { |
| | | this.id = option.id |
| | | this.getDetail() |
| | | this.$set(this.handleParam, 'dealDate', dayjs().format('YYYY-MM-DD HH:mm:ss')) |
| | | },
|
| | | onLoad(option) {
|
| | | this.id = option.id
|
| | | this.getDetail()
|
| | | this.$set(this.handleParam, 'dealDate', dayjs().format('YYYY-MM-DD HH:mm:ss'))
|
| | | },
|
| | | methods: {
|
| | | onSubmit() { |
| | | const { handleParam, fileList, id } = this
|
| | | patrolData({ |
| | | ...handleParam, |
| | | multifileList: fileList, |
| | | id, |
| | | }).then(res => { |
| | | this.showToast('æä½æå') |
| | | uni.navigateBack() |
| | | onSubmit() {
|
| | | const {
|
| | | handleParam,
|
| | | fileList,
|
| | | id
|
| | | } = this
|
| | | if (handleParam.dealStatus == 1) {
|
| | | return uni.showModal({
|
| | | title: '温馨æç¤º',
|
| | | content: 'å·¡æ£ç»æå¼å¸¸ï¼æ¯å¦åå¾æäº¤å·¥åï¼',
|
| | | success: function(res) {
|
| | | if (res.confirm) {
|
| | | patrolData({
|
| | | ...handleParam,
|
| | | multifileList: fileList,
|
| | | id,
|
| | | }).then(res => {
|
| | | this.showToast('æä½æå')
|
| | | uni.navigateBack()
|
| | | })
|
| | | }
|
| | | }
|
| | | });
|
| | | } else {
|
| | | patrolData({
|
| | | ...handleParam,
|
| | | multifileList: fileList,
|
| | | id,
|
| | | }).then(res => {
|
| | | this.showToast('æä½æå')
|
| | | uni.navigateBack()
|
| | | })
|
| | | }
|
| | |
|
| | | },
|
| | | getDetail() {
|
| | | const {
|
| | | id
|
| | | } = this
|
| | | ywPatrolPointDetail(id).then(res => {
|
| | | this.info = res.data
|
| | | })
|
| | | }, |
| | | getDetail(){ |
| | | const { id } = this |
| | | ywPatrolPointDetail(id).then(res => { |
| | | this.info = res.data |
| | | }) |
| | | },
|
| | | callPhone() {
|
| | | uni.makePhoneCall({
|
| | |
| | | confirmHandleDate(e) {
|
| | | this.$set(this.handleParam, 'dealDate', dayjs(e.value).format('YYYY-MM-DD HH:mm:ss'));
|
| | | this.isShowHandleDate = false;
|
| | | },
|
| | | confirmRes(e) {
|
| | | this.$set(this.handleParam, 'dealStatus', e.value[0].id)
|
| | | this.$set(this.handleParam, 'dealName', e.value[0].name)
|
| | | this.isShowRes = false
|
| | | },
|
| | | fileDel(str, i) {
|
| | | this[str].splice(i, 1);
|
| | |
| | | text-align: center;
|
| | | }
|
| | | }
|
| | | .sub_btn{ |
| | | position: fixed; |
| | | bottom: 68rpx; |
| | | left: 40rpx; |
| | | width: 670rpx; |
| | | height: 88rpx; |
| | | background: $primaryColor; |
| | | box-shadow: 0rpx 8rpx 20rpx 0rpx rgba(0,104,255,0.3); |
| | | border-radius: 44rpx; |
| | | display: flex; |
| | | align-items: center; |
| | | justify-content: center; |
| | | font-weight: 500; |
| | | font-size: 32rpx; |
| | | color: #FFFFFF; |
| | |
|
| | | .sub_btn {
|
| | | position: fixed;
|
| | | bottom: 68rpx;
|
| | | left: 40rpx;
|
| | | width: 670rpx;
|
| | | height: 88rpx;
|
| | | background: $primaryColor;
|
| | | box-shadow: 0rpx 8rpx 20rpx 0rpx rgba(0, 104, 255, 0.3);
|
| | | border-radius: 44rpx;
|
| | | display: flex;
|
| | | align-items: center;
|
| | | justify-content: center;
|
| | | font-weight: 500;
|
| | | font-size: 32rpx;
|
| | | color: #FFFFFF;
|
| | | }
|
| | |
|
| | | .appr_modal {
|
| | | .label {
|
| | | text {
|
| | |
| | | margin-bottom: 30rpx;
|
| | | }
|
| | |
|
| | | } |
| | | .files{ |
| | | display: flex; |
| | | margin-bottom: 20rpx; |
| | | } |
| | | .adduser_list_item_ipt1_upload { |
| | | margin-top: 24rpx; |
| | | width: 156rpx; |
| | | height: 156rpx; |
| | | margin-right: 24rpx; |
| | | border: 2rpx solid #e5e5e5; |
| | | background: #f7f7f7; |
| | | color: #666666; |
| | | font-size: 22rpx; |
| | | display: flex; |
| | | flex-direction: column; |
| | | align-items: center; |
| | | justify-content: center; |
| | | position: relative; |
| | | |
| | | .close { |
| | | position: absolute; |
| | | right: -20rpx; |
| | | top: -20rpx; |
| | | z-index: 9999; |
| | | } |
| | | |
| | | image { |
| | | width: 100%; |
| | | height: 100%; |
| | | } |
| | | |
| | | video { |
| | | width: 100%; |
| | | height: 100%; |
| | | } |
| | | }
|
| | |
|
| | | .files {
|
| | | display: flex;
|
| | | margin-bottom: 20rpx;
|
| | | }
|
| | |
|
| | | .adduser_list_item_ipt1_upload {
|
| | | margin-top: 24rpx;
|
| | | width: 156rpx;
|
| | | height: 156rpx;
|
| | | margin-right: 24rpx;
|
| | | border: 2rpx solid #e5e5e5;
|
| | | background: #f7f7f7;
|
| | | color: #666666;
|
| | | font-size: 22rpx;
|
| | | display: flex;
|
| | | flex-direction: column;
|
| | | align-items: center;
|
| | | justify-content: center;
|
| | | position: relative;
|
| | |
|
| | | .close {
|
| | | position: absolute;
|
| | | right: -20rpx;
|
| | | top: -20rpx;
|
| | | z-index: 9999;
|
| | | }
|
| | |
|
| | | image {
|
| | | width: 100%;
|
| | | height: 100%;
|
| | | }
|
| | |
|
| | | video {
|
| | | width: 100%;
|
| | | height: 100%;
|
| | | }
|
| | | }
|
| | | </style> |
| | |
| | | </view> --> |
| | | <!-- --> |
| | | <view class="tabs"> |
| | | <view class="tab" :class="{active: param.status == 0}" @click="tabsClick(0)"> |
| | | <view class="tab" :class="{active: param.queryStatus == '0,1'}" @click="tabsClick('0,1')"> |
| | | <text>å¾
å¤ç</text> |
| | | <text class="border"></text> |
| | | </view> |
| | | <view class="tab" :class="{active: param.status == 3}" @click="tabsClick(3)"> |
| | | <view class="tab" :class="{active: param.queryStatus == 3}" @click="tabsClick(3)"> |
| | | <text>å·²å¤ç</text> |
| | | <text class="border"></text> |
| | | </view> |
| | |
| | | gray: item.status == 3 || item.status == 4 |
| | | }">{{statusM[item.status]}}</view>
|
| | | </view>
|
| | | <view class="line" v-if="item.startDate && item.endDate">任塿¥æï¼{{ item.startDate.slice(0, 11) }} è³ {{ item.endDate.slice(0, 11) }}</view>
|
| | | <view class="line">æ§è¡æ¶é´ï¼{{ item.startDate.slice(11, 16) }} - {{ item.endDate.slice(11, 16) }}</view> |
| | | <view class="line" v-if="item.startDate">任塿¥æï¼{{ item.startDate.slice(0, 11) }}</view>
|
| | | <view class="line">æ§è¡æ¶é´ï¼{{ item.startDate.slice(11, 16) }} è³ {{ item.endDate.slice(11, 16) }}</view> |
| | | <view class="line"> |
| | | <view>宿æ
åµï¼{{item.finishNum}}/{{item.patrolNum}}</view> |
| | | <view>宿æ
åµï¼{{item.finishNum || 0}}/{{item.patrolNum}}</view> |
| | | <view class="btn"> |
| | | <image src="@/static/side/ic_saoma@2x.png" class="saoma" mode=""></image> |
| | | <view>æ«ç å·¡æ£</view> |
| | |
| | | data() {
|
| | | return {
|
| | | param: { |
| | | status: 0 |
| | | queryStatus: '0,1' |
| | | }, |
| | | list: [], |
| | | activeTab: 0, |
| | |
| | | getList() { |
| | | const { page, param, selectAll } = this |
| | | ywPatrolTaskPost({ |
| | | model: {...param, dispatchUserId: selectAll ? '' : uni.getStorageSync('userInfo').id, }, |
| | | model: {...param, dealUserId: selectAll ? '' : uni.getStorageSync('userInfo').id, }, |
| | | page, |
| | | capacity: 10 |
| | | }).then(res => { |
| | |
| | | <view class="desc">{{ info.content }}</view>
|
| | | <view class="file_list">
|
| | | <view class="file" v-for="(item,index) in info.fileList">
|
| | | <image v-if="item.type == 0" :src="item.fileurlFull" mode="widthFix"></image>
|
| | | <image v-if="item.type == 0" :src="item.fileurlFull" mode="aspectFill"></image>
|
| | | <video v-if="item.type == 1" :src="item.fileurlFull" :controls="false"></video>
|
| | | </view>
|
| | | </view>
|
| | |
| | | </view>
|
| | | <view class="line" v-if="info.getDate">
|
| | | <view class="la">ä¸é¨æ¶é´ï¼</view>
|
| | | <view class="val">{{ info.getDate }}</view>
|
| | | <view class="val">{{ info.getDate.slice(0, 16) }}</view>
|
| | | </view>
|
| | | </view>
|
| | | <view class="result_wrap" v-if="info.dealStatus == 2">
|
| | | <div class="title">å¤çç»æ</div>
|
| | | <view v-if="info.dealFileList && info.dealFileList.length > 0" class="file_list">
|
| | | <view class="file" v-for="item in info.dealFileList">
|
| | | <image v-if="item.type == 0" :src="item.fileurlFull" mode="widthFix"></image>
|
| | | <image v-if="item.type == 0" :src="item.fileurlFull" mode="aspectFill"></image>
|
| | | <video v-if="item.type == 1" :src="item.fileurlFull" :controls="false"></video>
|
| | | </view>
|
| | | </view>
|
| | |
| | | </view>
|
| | | <view class="line">
|
| | | <view class="la">å¤ç人ï¼</view>
|
| | | <view class="val">{{ info.dealUserName }}</view>
|
| | | <view class="val">{{ info.dealUserName }}{{info.dealUserCompany ? '-' + info.dealUserCompany : ''}}</view>
|
| | | </view>
|
| | | <view class="line">
|
| | | <view class="la">å¤çæ¶é´ï¼</view>
|
| | |
| | |
|
| | | image,
|
| | | video {
|
| | | width: 156rpx;
|
| | | width: 156rpx; |
| | | height: 156rpx;
|
| | | }
|
| | | }
|
| | | }
|
| | |
| | | <view class="item">
|
| | | <view class="la"><text class="red">*</text>éæ©åºå</view>
|
| | | <view class="line sel_wrap" @click="showModal1 = true">
|
| | | <view class="left" :class="param.projectName ? '' : 'placeholder9'">{{ param.projectName ? `${param.projectName} ${param.buildingName || ''} ${param.areaType == 0 ? param.roomName || '' : param.floorName || ''}` : 'è¯·éæ©' }}</view>
|
| | | <view class="left" :class="param.projectName ? '' : 'placeholder9'">
|
| | | {{ param.projectName ? `${param.projectName} ${param.buildingName || ''} ${param.areaType == 0 ? param.roomNum || '' : param.floorName || ''}` : 'è¯·éæ©' }}
|
| | | </view>
|
| | | <u-icon name="arrow-right" color="#999999" size="15"></u-icon>
|
| | | </view>
|
| | | </view>
|
| | | <view class="item">
|
| | | <view class="la"><text class="red">*</text>å·¥ååç±»</view>
|
| | | <view class="line sel_wrap" @click="showCate1 = true">
|
| | | <view class="left" :class="param.cateName ? '' : 'placeholder9'">
|
| | | {{ param.cateName ? param.cateName : 'è¯·éæ©' }}</view>
|
| | | <u-icon name="arrow-right" color="#999999" size="15"></u-icon>
|
| | | </view>
|
| | | </view>
|
| | | <view class="item">
|
| | | <view class="la">ä¸é¨æ¶é´</view>
|
| | | <view class="line sel_wrap" @click="showTime = true">
|
| | | <view class="left" :class="param.getDate ? '' : 'placeholder9'">{{ param.getDate ? param.getDate : 'è¯·éæ©' }}</view>
|
| | | <view class="left" :class="param.getDate ? '' : 'placeholder9'">{{ param.getDate ? param.getDate : 'è¯·éæ©' }}
|
| | | </view>
|
| | | <u-icon name="arrow-right" color="#999999" size="15"></u-icon>
|
| | | </view>
|
| | | </view>
|
| | |
| | | :columns="buildingList"></u-picker>
|
| | | <u-picker :show="showModal3" keyName="name" @cancel="showModal3 = false" @confirm='confirm3'
|
| | | :columns="floorList"></u-picker>
|
| | | <u-picker :show="showModal4" keyName="name" @cancel="showModal4 = false" @confirm='confirm4'
|
| | | <u-picker :show="showModal4" keyName="roomNum" @cancel="showModal4 = false" @confirm='confirm4'
|
| | | :columns="roomList"></u-picker>
|
| | | <!-- -->
|
| | | <u-datetime-picker :minDate="new Date().getTime()" :show="showTime" @confirm="confirmDate" |
| | | <u-datetime-picker :minDate="new Date().getTime()" :show="showTime" @confirm="confirmDate"
|
| | | @cancel="showTime = false" mode="datetime"></u-datetime-picker>
|
| | |
|
| | | <u-picker :show="showCate1" keyName="name" ref="uPicker" @change="changeHandler" @cancel="showCate1 = false"
|
| | | @confirm='confirmCate1' :columns="cateList1"></u-picker>
|
| | | </view>
|
| | | </template>
|
| | |
|
| | |
| | | ywProjectPost,
|
| | | ywBuildingPost,
|
| | | ywFloorPost,
|
| | | ywRoomPost, |
| | | ywWorkorderCreate
|
| | | ywRoomPost,
|
| | | ywWorkorderCreate,
|
| | | getCategoryPost
|
| | | } from '@/api'
|
| | | import dayjs from 'dayjs';
|
| | | export default {
|
| | | data() {
|
| | | return {
|
| | | param: {},
|
| | | param: {
|
| | | areaName: '室å
è£
ä¿®',
|
| | | areaType: 0
|
| | | },
|
| | | showUpload: false,
|
| | | fileList: [],
|
| | |
|
| | |
| | | showModal1: false,
|
| | | showModal2: false,
|
| | | showModal3: false,
|
| | | showModal4: false, |
| | | showModal4: false,
|
| | | showTime: false,
|
| | | showCate1: false,
|
| | | showCate2: false,
|
| | | areaType: [
|
| | | [{
|
| | | name: '室å
è£
ä¿®',
|
| | |
| | | }
|
| | | ]
|
| | | ],
|
| | | cateList1: [],
|
| | | cateList2: [],
|
| | | projectList: [],
|
| | | buildingList: [],
|
| | | floorList: [],
|
| | |
| | | },
|
| | | onLoad() {
|
| | | this.getProject()
|
| | | this.getCate()
|
| | | },
|
| | | methods: { |
| | | onSubmit() { |
| | | const { param, fileList } = this |
| | | ywWorkorderCreate({ |
| | | ...param, |
| | | // roomId: '', |
| | | fileList |
| | | }).then(res => { |
| | | this.showToast('æäº¤æå') |
| | | uni.redirectTo({ |
| | | url: '/pages/workOrder/list' |
| | | }) |
| | | }) |
| | | methods: {
|
| | | onSubmit() {
|
| | | const {
|
| | | param,
|
| | | fileList
|
| | | } = this
|
| | | ywWorkorderCreate({
|
| | | ...param,
|
| | | // roomId: '',
|
| | | fileList
|
| | | }).then(res => {
|
| | | this.showToast('æäº¤æå')
|
| | | uni.redirectTo({
|
| | | url: '/pages/workOrder/list'
|
| | | })
|
| | | })
|
| | | },
|
| | | confirm0(e) { |
| | | changeHandler(e) {
|
| | | const {
|
| | | columnIndex,
|
| | | value,
|
| | | values, // values为å½ååååçæ°ç»å
容
|
| | | index,
|
| | | // 微信å°ç¨åºæ æ³å°pickerå®ä¾ä¼ åºæ¥ï¼åªè½éè¿refæä½
|
| | | picker = this.$refs.uPicker
|
| | | } = e
|
| | | // å½ç¬¬ä¸åå¼åçååæ¶ï¼åå第äºå(åä¸å)对åºçé项 |
| | | console.log(index); |
| | | console.log(index);
|
| | | if (columnIndex === 0) {
|
| | | // pickerä¸ºéæ©å¨thiså®ä¾ï¼åå第äºå对åºçé项
|
| | | picker.setColumnValues(1, this.cateList1[0][index].childCategoryList)
|
| | | }
|
| | | },
|
| | | confirmCate1(e) {
|
| | | console.log(e.value[1]); |
| | | if(e.value.length == 2){ |
| | | this.$set(this.param, 'cateId', e.value[1].id) |
| | | this.$set(this.param, 'cateName', e.value[1].name) |
| | | this.showCate1 = false |
| | | } |
| | | |
| | | },
|
| | | confirm0(e) {
|
| | | const item = e.value[0]
|
| | | this.$set(this.param, 'areaType', item.id)
|
| | | this.$set(this.param, 'areaName', item.name)
|
| | | this.showModal0 = false |
| | | this.param = { |
| | | areaType: item.id, |
| | | areaName: item.name, |
| | | this.showModal0 = false
|
| | | this.param = {
|
| | | areaType: item.id,
|
| | | areaName: item.name,
|
| | | }
|
| | | },
|
| | | confirm1(e) {
|
| | |
| | | this.showModal2 = false
|
| | | this.$set(this.param, 'buildingName', item.name)
|
| | | this.$set(this.param, 'buildingId', item.id)
|
| | | if (this.areaType == 0) {
|
| | | this.getRoom(item.id) |
| | | if (this.param.areaType == 0) {
|
| | | this.getRoom(item.id)
|
| | | this.showModal4 = true
|
| | | } else {
|
| | | this.getFloor(item.id) |
| | | this.getFloor(item.id)
|
| | | this.showModal3 = true
|
| | | }
|
| | | }, |
| | | confirm3(e) { |
| | | const item = e.value[0] |
| | | this.showModal3 = false |
| | | this.$set(this.param, 'floorName', item.name) |
| | | this.$set(this.param, 'floorId', item.id) |
| | | }, |
| | | confirm4(e) { |
| | | const item = e.value[0] |
| | | this.showModal4 = false |
| | | this.$set(this.param, 'roomName', item.name) |
| | | this.$set(this.param, 'roomId', item.id) |
| | | }, |
| | | confirmDate(e) { |
| | | this.$set(this.param, 'getDate', dayjs(e.value).format('YYYY-MM-DD HH:mm:ss')); |
| | | this.showTime = false |
| | | },
|
| | | confirm3(e) {
|
| | | const item = e.value[0]
|
| | | this.showModal3 = false
|
| | | this.$set(this.param, 'floorName', item.name)
|
| | | this.$set(this.param, 'floorId', item.id)
|
| | | },
|
| | | confirm4(e) {
|
| | | const item = e.value[0]
|
| | | this.showModal4 = false
|
| | | this.$set(this.param, 'roomNum', item.roomNum)
|
| | | this.$set(this.param, 'roomId', item.id)
|
| | | },
|
| | | confirmDate(e) {
|
| | | this.$set(this.param, 'getDate', dayjs(e.value).format('YYYY-MM-DD HH:mm:ss'));
|
| | | this.showTime = false
|
| | | },
|
| | | getCate() {
|
| | | getCategoryPost({
|
| | | capacity: 9999,
|
| | | page: 1,
|
| | | model: {
|
| | | type: 3
|
| | | }
|
| | | }).then(res => {
|
| | |
|
| | | let temp = res.data.records || []
|
| | | if (temp && temp.length > 0) {
|
| | | this.cateList1 = [temp, temp[0].childCategoryList || []]
|
| | | } else {
|
| | | this.cateList1 = [temp, []]
|
| | | }
|
| | | console.log(this.cateList1);
|
| | | })
|
| | | },
|
| | | getProject() {
|
| | | ywProjectPost().then(res => {
|
| | |
| | | font-weight: 500;
|
| | | font-size: 32rpx;
|
| | | color: #FFFFFF;
|
| | | } |
| | | .sel_upload_wrap { |
| | | width: 100%; |
| | | border-top: 1px solid #666666; |
| | | box-shadow: 0 1 1 #333333; |
| | | |
| | | .btn { |
| | | height: 90rpx; |
| | | line-height: 90rpx; |
| | | text-align: center; |
| | | } |
| | | }
|
| | |
|
| | | .sel_upload_wrap {
|
| | | width: 100%;
|
| | | border-top: 1px solid #666666;
|
| | | box-shadow: 0 1 1 #333333;
|
| | |
|
| | | .btn {
|
| | | height: 90rpx;
|
| | | line-height: 90rpx;
|
| | | text-align: center;
|
| | | }
|
| | | }
|
| | | </style> |
| | |
| | | <template>
|
| | | <view class="main_app">
|
| | | <view class="head_wrap">
|
| | | <view class="search_wrap">
|
| | | <image class="mr12 search" src="@/static/home/ic_search@2x.png" mode="widthFix"></image>
|
| | | <input v-model="param.roomName" @confirm="handleQuery" type="text" placeholder="æç´¢æ¥¼å®/æ¿é´åç§°"
|
| | | placeholder-class="placeholder9" />
|
| | | </view>
|
| | | </view>
|
| | | <!-- -->
|
| | | <view class="tabs">
|
| | | <view class="tab" :class="{active: activeTab == -1}" @click="tabsClick(-1)">
|
| | | <text>å¾
å¤ç</text>
|
| | | <text class="border"></text>
|
| | | </view>
|
| | | <view class="tab" :class="{active: activeTab == 2}" @click="tabsClick(2)">
|
| | | <text>å·²å¤ç</text>
|
| | | <text class="border"></text>
|
| | | </view>
|
| | | <view class="tab" @click="allClick">
|
| | | <view class="name">
|
| | | <image v-if="selectAll" class="icon" src="@/static/checked.png" mode=""></image>
|
| | | <image v-else class="icon" src="@/static/check.png" mode=""></image>
|
| | | <text>æ¥çå
¨é¨</text>
|
| | | <div class="main_head">
|
| | | <view class="head_wrap">
|
| | | <view class="search_wrap">
|
| | | <image class="mr12 search" src="@/static/home/ic_search@2x.png" mode="widthFix"></image>
|
| | | <input v-model="param.roomName" @confirm="handleQuery" type="text" placeholder="æç´¢æ¥¼å®/æ¿é´åç§°"
|
| | | placeholder-class="placeholder9" />
|
| | | </view>
|
| | | <text class="border"></text>
|
| | | </view>
|
| | | </view>
|
| | | <!-- -->
|
| | | <view class="list">
|
| | | <view class="item" v-for="item in list" @click="itemClick(item)">
|
| | | <image v-if="item.dealStatus == 0" src="@/static/side/workordered.png" class="icon"></image>
|
| | | <image v-else src="@/static/side/workorder.png" class="icon"></image>
|
| | | <view class="content">
|
| | | <view class="name_wrap line">
|
| | | <view class="name">{{item.buildingName}}/{{item.roomNum || item.floorName}}</view>
|
| | | <view class="status gray" v-if="item.dealStatus == 2">å·²å¤ç</view>
|
| | | <view class="status" v-if="item.dealStatus == 0">å¾
å¤ç</view>
|
| | | <view class="status" v-if="item.dealStatus == 1">å¾
å¤ç</view>
|
| | | <!-- -->
|
| | | <view class="tabs">
|
| | | <view class="tab" :class="{active: activeTab == '0,1'}" @click="tabsClick('0,1')">
|
| | | <text>å¾
å¤ç</text>
|
| | | <text class="border"></text>
|
| | | </view>
|
| | | <view class="tab" :class="{active: activeTab == 2}" @click="tabsClick(2)">
|
| | | <text>å·²å¤ç</text>
|
| | | <text class="border"></text>
|
| | | </view>
|
| | | <view class="tab" @click="allClick">
|
| | | <view class="name">
|
| | | <image v-if="selectAll" class="icon" src="@/static/checked.png" mode=""></image>
|
| | | <image v-else class="icon" src="@/static/check.png" mode=""></image>
|
| | | <text>æ¥çå
¨é¨</text>
|
| | | </view>
|
| | | <view class="line">ä½ç½®ç±»åï¼{{item.areaType == '0' ? '室å
è£
ä¿®' : 'å
Œ
񆧆'}}</view>
|
| | | <view class="line">å·¥ååç±»ï¼{{item.categoryName}}</view>
|
| | | <view class="line">䏿¥æ¶é´ï¼{{item.createDate}}</view>
|
| | | <view class="line">ä¸é¨æ¶é´ï¼{{item.getDate}}</view>
|
| | | <text class="border"></text>
|
| | | </view>
|
| | | </view>
|
| | | </view>
|
| | | </div>
|
| | | <!-- -->
|
| | | <scroll-view scroll-y="true" class="scroll_Y" @scrolltolower="scrolltolower">
|
| | | <view class="list">
|
| | | <view class="item" v-for="item in list" @click="itemClick(item)">
|
| | | <image v-if="item.dealStatus == 0" src="@/static/side/workordered.png" class="icon"></image>
|
| | | <image v-else src="@/static/side/workorder.png" class="icon"></image>
|
| | | <view class="content">
|
| | | <view class="name_wrap line">
|
| | | <view class="name">{{item.buildingName}}/{{item.roomNum || item.floorName}}</view>
|
| | | <view class="status gray" v-if="item.dealStatus == 2">å·²å¤ç</view>
|
| | | <view class="status" v-if="item.dealStatus == 0">å¾
å¤ç</view>
|
| | | <view class="status" v-if="item.dealStatus == 1">å¾
å¤ç</view>
|
| | | </view>
|
| | | <view class="line">ä½ç½®ç±»åï¼{{item.areaType == '0' ? '室å
è£
ä¿®' : 'å
Œ
񆧆'}}</view>
|
| | | <view class="line">å·¥ååç±»ï¼{{item.categoryName}}</view>
|
| | | <view class="line">䏿¥æ¶é´ï¼{{item.createDate}}</view>
|
| | | <view class="line">ä¸é¨æ¶é´ï¼{{item.getDate}}</view>
|
| | | </view>
|
| | | </view>
|
| | | <view v-if="list.length == 0" class="empty_wrap">
|
| | | <image src="@/static/empty.png" mode=""></image>
|
| | | <view class="">ææ æ°æ®</view>
|
| | | </view>
|
| | | </view>
|
| | | </scroll-view>
|
| | | <!-- -->
|
| | | </view>
|
| | | </template>
|
| | |
| | | data() {
|
| | | return {
|
| | | param: {},
|
| | | activeTab: -1,
|
| | | activeTab: '0,1',
|
| | | selectAll: false,
|
| | |
|
| | | list: [],
|
| | |
| | | onShow() {
|
| | | this.getList()
|
| | | },
|
| | | onReachBottom() {
|
| | | const {total,list} = this
|
| | | if (list.length < total) {
|
| | | this.page = this.page + 1
|
| | | this.getList()
|
| | | } else {
|
| | | this.showToast('ææ æ´å¤æ°æ®')
|
| | | }
|
| | | },
|
| | | methods: {
|
| | | methods: { |
| | | scrolltolower() { |
| | | const { |
| | | total, |
| | | list |
| | | } = this |
| | | if (list.length < total) { |
| | | this.page = this.page + 1 |
| | | this.getList() |
| | | } else { |
| | | this.showToast('ææ æ´å¤æ°æ®') |
| | | } |
| | | },
|
| | | tabsClick(val) {
|
| | | this.activeTab = val
|
| | | this.list = []
|
| | | this.page = 1
|
| | | this, getList()
|
| | | this.getList()
|
| | | },
|
| | | allClick() {
|
| | | this.selectAll = !this.selectAll
|
| | |
| | | uni.navigateTo({
|
| | | url: `/pages/workOrder/detail?id=${item.id}`
|
| | | })
|
| | | }, |
| | | handleQuery() { |
| | | this.list = [] |
| | | this.page = 1 |
| | | this.getList() |
| | | },
|
| | | handleQuery() {
|
| | | this.list = []
|
| | | this.page = 1
|
| | | this.getList()
|
| | | },
|
| | | getList() {
|
| | | const {
|
| | |
| | | total,
|
| | | list,
|
| | | activeTab,
|
| | | param, |
| | | param,
|
| | | selectAll
|
| | | } = this
|
| | | ywWorkorder({
|
| | | page,
|
| | | capacity: 10,
|
| | | model: {
|
| | | ...param, |
| | | ...param,
|
| | | queryStatus: activeTab,
|
| | | dispatchUserId: selectAll ? '' : uni.getStorageSync('userInfo').id,
|
| | | }
|
| | | }).then(res => {
|
| | |
| | | }
|
| | |
|
| | | }
|
| | |
|
| | | .scroll_Y{ |
| | | height: calc(100vh - 320rpx); |
| | | }
|
| | | .list {
|
| | | .item {
|
| | | display: flex;
|