| | |
| | | export function updateById (data) { |
| | | return request.post('/visitsAdmin/cloudService/business/ywPatrolLine/updateById', data) |
| | | } |
| | | |
| | | // 详æ
|
| | | export function detailById (id) { |
| | | return request.get(`/visitsAdmin/cloudService/business/ywPatrolLine/${id}`) |
| | | } |
| | | // å é¤ |
| | | export function deleteById (id) { |
| | | return request.get(`/visitsAdmin/cloudService/business/ywPatrolLine/delete/${id}`) |
| | |
| | | export function updateById (data) { |
| | | return request.post('/visitsAdmin/cloudService/business/ywPatrolScheme/updateById', data) |
| | | } |
| | | // ä¿®æ¹ |
| | | export function updateStatusById (data) { |
| | | return request.post('/visitsAdmin/cloudService/business/ywPatrolScheme/updateStatus', data) |
| | | } |
| | | |
| | | // å é¤ |
| | | export function deleteById (id) { |
| | | return request.get(`/visitsAdmin/cloudService/business/ywPatrolScheme/delete/${id}`) |
| | | } |
| | | // å é¤ |
| | | export function detailById (id) { |
| | | return request.get(`/visitsAdmin/cloudService/business/ywPatrolScheme/${id}`) |
| | | } |
| | | |
| | | // æ¹éå é¤ |
| | | export function deleteByIdInBatch (ids) { |
| | |
| | | export function deleteById (id) { |
| | | return request.get(`/visitsAdmin/cloudService/business/ywPatrolTask/delete/${id}`) |
| | | } |
| | | export function getDetail (data) { |
| | | return request.post(`/visitsAdmin/cloudService/business/ywPatrolTaskRecord/page`, data) |
| | | } |
| | | |
| | | // æ¹éå é¤ |
| | | export function deleteByIdInBatch (ids) { |
| | |
| | | export function create (data) { |
| | | return request.post('/visitsAdmin/cloudService/business/company/create', data) |
| | | } |
| | | // å建财å¡å
¬å¸ |
| | | export function createFinanceCompany (data) { |
| | | return request.post('/visitsAdmin/cloudService/business/company/createFinanceCompany', data) |
| | | } |
| | | export function updateFinanceCompany (data) { |
| | | return request.post('/visitsAdmin/cloudService/business/company/updateFinanceCompany', data) |
| | | } |
| | | |
| | | // ä¿®æ¹ |
| | | export function updateById (data) { |
| | |
| | | export function updateById (data) { |
| | | return request.post('/visitsAdmin/cloudService/business/member/updateById', data) |
| | | } |
| | | export function updateStatusById (data) { |
| | | return request.post('/visitsAdmin/cloudService/business/member/updateStatusById', data) |
| | | } |
| | | |
| | | export function updateHead (data) { |
| | | return request.post('/visitsAdmin/cloudService/business/member/updateHead', data) |
| | | } |
| | |
| | | export function deleteById (id) { |
| | | return request.get(`/visitsAdmin/cloudService/business/ywProject/delete/${id}`) |
| | | } |
| | | // å é¤ |
| | | export function detailById (id) { |
| | | return request.get(`/visitsAdmin/cloudService/business/ywProject/${id}`) |
| | | } |
| | | |
| | | // æ¹éå é¤ |
| | | export function deleteByIdInBatch (ids) { |
| | |
| | | export function upload (data) { |
| | | return request.post('/visitsAdmin/cloudService/public/upload', data) |
| | | } |
| | | // è·åçå¸åºæ |
| | | export function getCityTree (data) { |
| | | return request.post('/visitsAdmin/cloudService/business/areas/treeList', data) |
| | | } |
| | |
| | | </template> |
| | | <!-- æä½ --> |
| | | <el-form-item> |
| | | <el-button type="primary" @click="handleQuery">æç´¢</el-button> |
| | | <el-button v-if="showQk" @click="clear">éç½®</el-button> |
| | | <el-button style="width: 56px" type="primary" @click="handleQuery">æç´¢</el-button> |
| | | <el-button style="width: 56px" v-if="showQk" @click="clear">éç½®</el-button> |
| | | <slot name="btns" /> |
| | | <template v-if="queryFormConfig.formItems.length > listLength"> |
| | | <el-button v-if="!showZk" type="text" @click="zkBtn">å±å¼<i |
| | |
| | | import BaseOpera from '@/components/base/BaseOpera' |
| | | import GlobalWindow from '@/components/common/GlobalWindow' |
| | | import { getFetchList } from '@/api/Inspection/ywPatrolPoint' |
| | | import { create } from '@/api/Inspection/ywPatrolLine' |
| | | import { create,detailById } from '@/api/Inspection/ywPatrolLine' |
| | | import { Message } from 'element-ui' |
| | | export default { |
| | | name: 'OperaYwPatrolLineWindow', |
| | |
| | | if (list.length == 0) return Message.warning('请å
鿩巡æ£ç¹') |
| | | form.linePointList = list |
| | | create({ ...form }).then(res => { |
| | | if (res.code == 200) { |
| | | Message.success('ä¿åæå') |
| | | this.$emit('success') |
| | | this.close() |
| | | } |
| | | |
| | | }) |
| | | }, |
| | | getDetail(row) { |
| | | detailById(row.id).then(res => { |
| | | this.form = res |
| | | this.list = res.linePointList || [] |
| | | }) |
| | | }, |
| | | initData() { |
| | | this.list = [] |
| | | |
| | | getFetchList({}).then(res => { |
| | | this.pointList = res || [] |
| | | }) |
| | |
| | | needScancode: '1', |
| | | pointName: i.name, |
| | | pointId: i.id, |
| | | code: i.code, |
| | | id: i.id |
| | | code: i.code |
| | | }) |
| | | }) |
| | | this.isShowModal = false |
| | |
| | | <el-input type="textarea" :rows="4" v-model="form.content" placeholder="请è¾å
¥" /> |
| | | </el-form-item> |
| | | <el-form-item label="ä¸ä¼ å¾ç" prop="imgurl"> |
| | | <UploadAvatarImage :file="{ 'imgurlfull': form.imgurlfull, 'imgurl': form.imgurl }" |
| | | <UploadAvatarImage :file="{ 'imgurlfull': form.fileFullUrl, 'imgurl': form.fileurl }" |
| | | :uploadData="{ folder: 'ywPatrol/' }" @uploadSuccess="uploadAvatarSuccess" @uploadEnd="isUploading = false" |
| | | @uploadBegin="isUploading = true" /> |
| | | </el-form-item> |
| | |
| | | import mapDrag from '@/components/common/map/mapDrag.vue' |
| | | import { fetchList } from '@/api/business/category' |
| | | import { detail } from '@/api/Inspection/ywPatrolPoint' |
| | | import { fetchList as getDeiceList } from '@/api/Inspection/device' |
| | | export default { |
| | | name: 'OperaYwPatrolPointWindow', |
| | | extends: BaseOpera, |
| | |
| | | open(title, row) { |
| | | this.title = title |
| | | this.visible = true |
| | | this.initData() |
| | | if (row && row.id) { |
| | | this.getDetail(row) |
| | | } |
| | |
| | | // this.$set(this.form, 'areaId', res.areaId) |
| | | // console.log('res', res) |
| | | // console.log('res', this.form) |
| | | this.initData(res.areaId) |
| | | |
| | | }) |
| | | }, |
| | | initData(areaId) { |
| | | initData() { |
| | | fetchList({ |
| | | model: { type: 4 }, |
| | | capacity: 1000, |
| | | page: 1, |
| | | }).then(res => { |
| | | this.cateList = res.records || [] |
| | | console.log('this.form.areaId', this.form) |
| | | |
| | | setTimeout(() => { |
| | | const areaId = this.form.areaId |
| | | if (areaId) { |
| | | this.cateList.forEach(item => { |
| | | if (item.childCategoryList) { |
| | | item.childCategoryList.forEach(item2 => { |
| | | if (item2.id == areaId) { |
| | | this.$set(this.form, 'areaIds', [item.id, item2.id]) |
| | | console.log('areaIds', this.form) |
| | | |
| | | } |
| | | }) |
| | | } |
| | | }) |
| | | } |
| | | }, 1300) |
| | | }) |
| | | getDeiceList({ |
| | | model: {}, |
| | | capacity: 1000, |
| | | page: 1, |
| | | }).then(res => { |
| | | this.deviceList = res.records |
| | | }) |
| | | |
| | | }, |
| | |
| | | } |
| | | }, |
| | | uploadAvatarSuccess(file) { |
| | | this.form.imgurl = file.imgurl |
| | | this.form.imgurlfull = file.imgurlfull |
| | | this.form.fileurl = file.imgurl |
| | | this.form.fileFullUrl = file.imgurlfull |
| | | }, |
| | | } |
| | | } |
| | |
| | | <template> |
| | | <GlobalWindow width="520px" :title="title" :visible.sync="visible" :confirm-working="isWorking" @confirm="confirm"> |
| | | <GlobalWindow width="520px" :title="title" @close="close" :visible.sync="visible" :confirm-working="isWorking" |
| | | @confirm="confirm"> |
| | | <div class="warnning"> |
| | | {{ form.id ? 'ç¼è¾è®¡å对已çæç任塿 æï¼ä¼å¨ä¸æ¬¡çæä»»å¡æ¶çæï¼ä¸å½å¤©ä¸ä¼çæä¸¤ä¸ªä»»å¡' : 'æ°å»ºå·¡æ£è®¡åä¼ä»å½å¤©å¼å§ï¼æç
§é
ç½®è§å产ç对åºçå·¡æ£ä»»å¡' }} |
| | | </div> |
| | | <el-form :model="form" ref="form" :rules="rules"> |
| | | <el-form-item label="计ååç§°" prop="title"> |
| | | <el-input v-model="form.title" placeholder="请è¾å
¥æ é¢" v-trim /> |
| | | </el-form-item> |
| | | <el-form-item label="å·¡æ£çº¿è·¯"> |
| | | <el-select v-model="form.status" filterable clearable> |
| | | <el-option value="0" label="æ¯å¤©"></el-option> |
| | | <el-option value="1" label="æ¯å¨"></el-option> |
| | | <el-option value="2" label="æ¯æ"></el-option> |
| | | <el-form-item label="å·¡æ£çº¿è·¯" prop="lineId"> |
| | | <el-select v-model="form.lineId" filterable clearable> |
| | | <el-option v-for="item in lineList" :value="item.id" :label="item.name"></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="å·¡æ£è´è´£äºº"> |
| | | <el-form-item label="å·¡æ£è´è´£äºº" prop="userIds"> |
| | | <el-select v-model="form.userIds" filterable clearable> |
| | | <el-option value="0" label="æ¯å¤©"></el-option> |
| | | <el-option value="1" label="æ¯å¨"></el-option> |
| | | <el-option value="2" label="æ¯æ"></el-option> |
| | | <el-option v-for="item in staffList" :value="item.id" :label="item.realname"></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="计åå¼å§æ¥æ-ç»ææ¥æ"> |
| | | <el-date-picker v-model="form.selDate" is-range range-separator="-" value-format="yyyy-MM-dd" type="daterange" |
| | | start-placeholder="å¼å§æ¥æ" end-placeholder="ç»ææ¥æ" class="w400" /> |
| | | <el-form-item label="计åå¼å§æ¥æ-ç»ææ¥æ" prop="selDate"> |
| | | <el-date-picker v-model="form.selDate" @change="changeDate" is-range range-separator="-" |
| | | value-format="yyyy-MM-dd" type="daterange" start-placeholder="å¼å§æ¥æ" end-placeholder="ç»ææ¥æ" /> |
| | | </el-form-item> |
| | | <el-form-item label="è®¡åæ§è¡æ¶é´"> |
| | | <el-time-picker v-model="form.selTime" is-range range-separator="-" format="HH:mm" value-format="HH:mm:ss" |
| | | start-placeholder="å¼å§æ¶é´" end-placeholder="ç»ææ¶é´" placeholder="éæ©æ¶é´èå´" class="w400" /> |
| | | <el-time-picker v-model="form.selTime" @change="changeTime" is-range range-separator="-" format="HH:mm" |
| | | value-format="HH:mm:ss" start-placeholder="å¼å§æ¶é´" end-placeholder="ç»ææ¶é´" placeholder="éæ©æ¶é´èå´" /> |
| | | </el-form-item> |
| | | <el-form-item label="循ç¯å¨æ"> |
| | | <el-select v-model="form.circleType" filterable clearable> |
| | | <el-option value="0" label="æ¯å¤©"></el-option> |
| | | <el-option value="1" label="æ¯å¨"></el-option> |
| | | <el-option value="2" label="æ¯æ"></el-option> |
| | | <el-form-item label="éå¤é¢ç"> |
| | | <el-select v-model="form.circleType" @change="changeType" filterable> |
| | | <el-option :value="0" label="æ¯å¤©"></el-option> |
| | | <el-option :value="1" label="æ¯å¨"></el-option> |
| | | <el-option :value="2" label="æ¯æ"></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item v-if="form.circleType == 1" prop="circleDays" label="éå¤è§å"> |
| | | <div class="weeks"> |
| | | <div class="week" @click="weekClick(i)" :class="{ active: item.sel }" v-for="item, i in weeks">{{ item.la }} |
| | | </div> |
| | | </div> |
| | | </el-form-item> |
| | | <el-form-item v-if="form.circleType == 2" prop="circleDays" label="éå¤è§å"> |
| | | <div class="weeks"> |
| | | <div class="week" @click="monthClick(i)" :class="{ active: item.sel }" v-for="item, i in monthsList">{{ |
| | | item.la |
| | | }}</div> |
| | | </div> |
| | | </el-form-item> |
| | | |
| | | </el-form> |
| | | </GlobalWindow> |
| | | </template> |
| | |
| | | <script> |
| | | import BaseOpera from '@/components/base/BaseOpera' |
| | | import GlobalWindow from '@/components/common/GlobalWindow' |
| | | import { fetchList as getLineList } from '@/api/Inspection/ywPatrolLine' |
| | | import { detailById } from '@/api/Inspection/ywPatrolScheme' |
| | | import { getUserList } from '@/api/system/user' |
| | | export default { |
| | | name: 'OperaYwPatrolSchemeWindow', |
| | | extends: BaseOpera, |
| | |
| | | dealUserId: '', |
| | | dealDate: '', |
| | | dealInfo: '', |
| | | circleType: '', |
| | | circleType: 0, |
| | | circleDays: '', |
| | | startDate: '', |
| | | endDate: '', |
| | |
| | | endTime: '', |
| | | processStatus: '', |
| | | selDate: [], |
| | | selTime: [], |
| | | }, |
| | | // éªè¯è§å |
| | | lineList: [], |
| | | staffList: [], |
| | | weeks: [ |
| | | { la: 'å¨ä¸', va: 1, sel: false }, |
| | | { la: 'å¨äº', va: 2, sel: false }, |
| | | { la: 'å¨ä¸', va: 3, sel: false }, |
| | | { la: 'å¨å', va: 4, sel: false }, |
| | | { la: 'å¨äº', va: 5, sel: false }, |
| | | { la: 'å¨å
', va: 6, sel: false }, |
| | | { la: '卿¥', va: 7, sel: false }, |
| | | ], |
| | | monthsList: [], |
| | | selCircleDays: [], |
| | | rules: { |
| | | title: [{ required: true, message: '请è¾å
¥' }], |
| | | lineId: [{ required: true, message: 'è¯·éæ©' }], |
| | | userIds: [{ required: true, message: 'è¯·éæ©' }], |
| | | selDate: [{ type: 'array', required: true, message: 'è¯·éæ©' }], |
| | | circleDays: [{ required: true, message: 'è¯·éæ©' }], |
| | | } |
| | | } |
| | | }, |
| | |
| | | }) |
| | | }, |
| | | methods: { |
| | | weekClick(i) { |
| | | this.weeks.forEach((item, index) => { |
| | | if (i == index) { item.sel = !item.sel } |
| | | }) |
| | | this.$set(this.form, 'circleDays', this.weeks.filter(j => j.sel).map(a => a.va).join(',')) |
| | | }, |
| | | monthClick(i) { |
| | | this.monthsList.forEach((item, index) => { |
| | | if (i == index) { item.sel = !item.sel } |
| | | }) |
| | | this.$set(this.form, 'circleDays', this.monthsList.filter(j => j.sel).map(a => a.va).join(',')) |
| | | }, |
| | | changeTime(e) { |
| | | if (e && e.length > 0) { |
| | | this.$set(this.form, 'startTime', e[0]) |
| | | this.$set(this.form, 'endTime', e[1]) |
| | | } else { |
| | | this.$set(this.form, 'startTime', '') |
| | | this.$set(this.form, 'endTime', '') |
| | | } |
| | | }, |
| | | changeDate(e) { |
| | | if (e && e.length > 0) { |
| | | this.$set(this.form, 'startDate', e[0]) |
| | | this.$set(this.form, 'endDate', e[1]) |
| | | } else { |
| | | this.$set(this.form, 'startDate', '') |
| | | this.$set(this.form, 'endDate', '') |
| | | } |
| | | }, |
| | | changeType() { |
| | | this.$set(this.form, 'circleDays', '') |
| | | }, |
| | | getDetail(id) { |
| | | detailById(id).then(res => { |
| | | this.form = res |
| | | if (res.userIds) { |
| | | this.$set(this.form, 'userIds', Number(res.userIds)) |
| | | } |
| | | if (res.startTime) { |
| | | this.$set(this.form, 'selTime', [res.startTime, res.endTime]) |
| | | } |
| | | if (res.circleDays) { |
| | | const circleDays = res.circleDays.split(',') |
| | | if (res.circleType == 1) { |
| | | circleDays.forEach(i => { |
| | | this.weeks.forEach(j => { |
| | | if (i == j.va) { |
| | | j.sel = true |
| | | } |
| | | }) |
| | | }) |
| | | } else { |
| | | setTimeout(() => { |
| | | circleDays.forEach(i => { |
| | | this.monthsList.forEach(j => { |
| | | if (i == j.va) { |
| | | j.sel = true |
| | | } |
| | | }) |
| | | }) |
| | | }, 500) |
| | | } |
| | | } |
| | | this.$set(this.form, 'selDate', [res.startDate, res.endDate]) |
| | | }) |
| | | }, |
| | | initData() { |
| | | |
| | | getLineList({ |
| | | model: {}, |
| | | capacity: 9999, |
| | | page: 1, |
| | | }).then(res => { |
| | | this.lineList = res.records |
| | | }) |
| | | getUserList({}).then(res => { |
| | | this.staffList = res |
| | | }) |
| | | this.monthsList = [] |
| | | for (let i = 1; i < 32; i++) { |
| | | this.monthsList.push({ la: i, va: i, sel: false }) |
| | | } |
| | | }, |
| | | close() { |
| | | this.$refs.form.resetFields() |
| | | this.visible = false |
| | | } |
| | | } |
| | | |
| | | } |
| | | </script> |
| | | <style lang="scss" scoped> |
| | | @import '@/assets/style/variables.scss'; |
| | | .warnning{ |
| | | padding: 6px 10px; |
| | | background-color: #fcf3e6; |
| | | font-size: 12px; |
| | | color: #333333; |
| | | } |
| | | .weeks { |
| | | display: flex; |
| | | align-items: center; |
| | | flex-wrap: wrap; |
| | | |
| | | .week { |
| | | border: 1px solid #999999; |
| | | width: 40px; |
| | | height: 18px; |
| | | text-align: center; |
| | | line-height: 18px; |
| | | font-size: 12px; |
| | | margin-right: 8px; |
| | | cursor: pointer; |
| | | margin-bottom: 6px; |
| | | } |
| | | |
| | | .active { |
| | | color: $primary-color; |
| | | border: 1px solid $primary-color; |
| | | } |
| | | } |
| | | </style> |
| | |
| | | <GlobalWindow title="å·¡æ£ä»»å¡è¯¦æ
" :showConfirm="false" :visible.sync="isShowModal"> |
| | | <QueryForm v-model="filters" :query-form-config="queryFormConfig" @handleQuery="getList(1)" @clear="clear" /> |
| | | <el-table v-loading="loading" :data="list" stripe> |
| | | <el-table-column prop="" label="å·¡æ£ç¹åç§°" min-width="100" show-overflow-tooltip /> |
| | | <el-table-column prop="" label="ç¶æ" min-width="100" show-overflow-tooltip /> |
| | | <el-table-column prop="" label="å·¡æ£äºº" min-width="100" show-overflow-tooltip /> |
| | | <el-table-column prop="" label="å·¡æ£æ¶é´" min-width="100" show-overflow-tooltip /> |
| | | <el-table-column prop="" label="å·¡æ£ç»æ" min-width="100" show-overflow-tooltip /> |
| | | <el-table-column prop="" label="å·¡æ£è¯´æ" min-width="100" show-overflow-tooltip> |
| | | <template v-slot="scope"> |
| | | <span>{{ scope.row.billCode || scope.row.contractNum }}</span> |
| | | <el-table-column prop="pointName" label="å·¡æ£ç¹åç§°" min-width="100" show-overflow-tooltip /> |
| | | <el-table-column prop="" label="ç¶æ" min-width="100" show-overflow-tooltip> |
| | | <template v-slot="{ row }"> |
| | | <span v-if="row.status == 0">å¾
å¼å§</span> |
| | | <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="editDate" label="å·¡æ£æ¶é´" min-width="100" show-overflow-tooltip /> |
| | | <el-table-column prop="" label="å·¡æ£ç»æ" min-width="100" show-overflow-tooltip> |
| | | <template v-slot="{ row }"> |
| | | <span class="gray" v-if="row.dealStatus == 0">æ£å¸¸</span> |
| | | <span class="red" v-if="row.dealStatus == 1">å¼å¸¸</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="dealInfo" label="å·¡æ£è¯´æ" min-width="100" show-overflow-tooltip /> |
| | | </el-table> |
| | | <div class="mt20"> |
| | | <Pagination @size-change="handleSizeChange" @current-change="getDetail" :pagination="pagination" /> |
| | |
| | | import GlobalWindow from '@/components/common/GlobalWindow' |
| | | import QueryForm from '@/components/common/QueryForm' |
| | | import Pagination from '@/components/common/Pagination' |
| | | import { getDetail } from '@/api/Inspection/ywPatrolTask' |
| | | export default { |
| | | components: { GlobalWindow, QueryForm, Pagination }, |
| | | data() { |
| | | return { |
| | | isShowModal: true, |
| | | isShowModal: false, |
| | | id: '', |
| | | pagination: { |
| | | pageSize: 10, |
| | |
| | | queryFormConfig: { |
| | | formItems: [ |
| | | { |
| | | filed: 'name', |
| | | filed: 'pointName', |
| | | type: 'input', |
| | | label: 'å·¡æ£ç¹åç§°' |
| | | }, |
| | | { |
| | | filed: 'status', |
| | | type: 'select', |
| | | label: 'æ§è¡ç¶æ', |
| | | label: 'ç¶æ', |
| | | placeholder: 'å
¨é¨', |
| | | options: [] |
| | | options: [ |
| | | { label: 'å¾
å¼å§', value: 0 }, |
| | | { label: '已巡æ£', value: 1 }, |
| | | ] |
| | | }, |
| | | ], |
| | | online: true |
| | |
| | | getDetail(page) { |
| | | const { pagination, filters, id } = this |
| | | this.loading = true |
| | | platformLogPage({ |
| | | getDetail({ |
| | | model: { |
| | | ...filters, |
| | | id, |
| | | taskId: id, |
| | | }, |
| | | sorts: [{ direction: 'DESC', property: 'param1' }], |
| | | capacity: pagination.pageSize, |
| | |
| | | }).then(res => { |
| | | this.loading = false |
| | | this.list = res.records || [] |
| | | this.pagination.total = res.total |
| | | this.list.forEach(item => { |
| | | item.inTypeTemp = item.inType == 0 ? 'æ´æç' : 'ä»¶ç' |
| | | item.taskOrigin = 'WMSè·å' |
| | |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style lang="scss" scoped></style> |
| | |
| | | editClick(row) { |
| | | if (row && row.id) { |
| | | this.$refs.operaYwPatrolLineWindow.open('ç¼è¾å·¡æ£çº¿è·¯') |
| | | this.$refs.operaYwPatrolLineWindow.getDetail(row) |
| | | } else { |
| | | this.$refs.operaYwPatrolLineWindow.open('æ°å»ºå·¡æ£çº¿è·¯') |
| | | } |
| | |
| | | <TableLayout :permissions="['business:ywpatrolscheme:query']"> |
| | | <!-- æç´¢è¡¨å --> |
| | | <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline> |
| | | |
| | | <el-form-item label="æ é¢" prop="title"> |
| | | <el-form-item label="è®¡åæ é¢" prop="title"> |
| | | <el-input v-model="searchForm.title" placeholder="请è¾å
¥æ é¢" @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="å¼å§æ¥æ" prop="startDate"> |
| | | <el-date-picker v-model="searchForm.startDate" value-format="yyyy-MM-dd" placeholder="请è¾å
¥å¼å§æ¥æ" |
| | | @change="search" /> |
| | | </el-form-item> |
| | | <el-form-item label="ç»ææ¥æ" prop="endDate"> |
| | | <el-date-picker v-model="searchForm.endDate" value-format="yyyy-MM-dd" placeholder="请è¾å
¥ç»ææ¥æ" @change="search" /> |
| | | <el-form-item label="è®¡åæ¥æ" prop="selDate"> |
| | | <el-date-picker type="daterange" v-model="searchForm.selDate" clearable value-format="yyyy-MM-dd" |
| | | @change="changeDate" /> |
| | | </el-form-item> |
| | | |
| | | <section> |
| | |
| | | <!-- è¡¨æ ¼åå页 --> |
| | | <template v-slot:table-wrap> |
| | | <ul class="toolbar" v-permissions="['business:ywpatrolscheme:create', 'business:ywpatrolscheme:delete']"> |
| | | <li><el-button type="primary" @click="$refs.operaYwPatrolSchemeWindow.open('æ°å»ºå·¡æ£è®¡å')" icon="el-icon-plus" |
| | | <li><el-button type="primary" @click="editClick()" icon="el-icon-plus" |
| | | v-permissions="['business:ywpatrolscheme:create']">æ°å»º</el-button></li> |
| | | <li><el-button @click="deleteByIdInBatch" icon="el-icon-delete" |
| | | v-permissions="['business:ywpatrolscheme:delete']">å é¤</el-button></li> |
| | |
| | | |
| | | <el-table-column prop="title" label="计ååç§°" min-width="100px"></el-table-column> |
| | | <el-table-column prop="lineId" label="计åç¼å·" min-width="100px"></el-table-column> |
| | | <el-table-column prop="dealDate" label="è´è´£äººå" min-width="100px"></el-table-column> |
| | | <el-table-column prop="userName" label="è´è´£äººå" min-width="100px"></el-table-column> |
| | | |
| | | <el-table-column prop="startDate" label="è®¡åæ¥æ" min-width="100px"> |
| | | <el-table-column prop="startDate" label="è®¡åæ¥æ" min-width="150px"> |
| | | <template v-slot="scope"> |
| | | <span>{{ scope.row.startDate }} - {{ scope.row.endDate }}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="startDate" label="æ§è¡æ¶é´" min-width="100px"> |
| | | <el-table-column prop="startDate" label="æ§è¡æ¶é´" min-width="130px"> |
| | | <template v-slot="scope"> |
| | | <span>{{ scope.row.startTime }} - {{ scope.row.endTime }}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="" label="å建人" min-width="100px"></el-table-column> |
| | | <el-table-column prop="" label="æ§è¡ç»æ" min-width="100px"></el-table-column> |
| | | <el-table-column prop="createUserName" label="å建人" min-width="100px"></el-table-column> |
| | | <el-table-column prop="" label="æ§è¡ç»æ" min-width="100px"> |
| | | <template v-slot="scope"> |
| | | <span v-if="scope.row.schemeStatus == 0">å¾
å¼å§</span> |
| | | <span v-if="scope.row.schemeStatus == 1">è¿è¡ä¸</span> |
| | | <span v-if="scope.row.schemeStatus == 2">å·²ç»æ</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="ç¶æ" min-width="100px"> |
| | | <template v-slot="scope"> |
| | | <el-switch v-model="scope.row.status" @change="changeStatus" 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> |
| | | <el-table-column v-if="containPermissions(['business:ywpatrolscheme:update', 'business:ywpatrolscheme:delete'])" |
| | | label="æä½" min-width="120" fixed="right"> |
| | | <template slot-scope="{row}"> |
| | | <el-button type="text" @click="$refs.operaYwPatrolSchemeWindow.open('ç¼è¾å·¡æ£è®¡å', row)" icon="el-icon-edit" |
| | | <el-button type="text" @click="editClick(row)" icon="el-icon-edit" |
| | | v-permissions="['business:ywpatrolscheme:update']">ç¼è¾</el-button> |
| | | <el-button type="text" @click="deleteById(row)" icon="el-icon-delete" |
| | | v-permissions="['business:ywpatrolscheme:delete']">å é¤</el-button> |
| | |
| | | import TableLayout from '@/layouts/TableLayout' |
| | | import Pagination from '@/components/common/Pagination' |
| | | import OperaYwPatrolSchemeWindow from './components/OperaYwPatrolSchemeWindow' |
| | | import { updateStatusById } from '@/api/Inspection/ywPatrolScheme' |
| | | import { Message } from 'element-ui' |
| | | export default { |
| | | name: 'YwPatrolScheme', |
| | | extends: BaseTable, |
| | |
| | | return { |
| | | // æç´¢ |
| | | searchForm: { |
| | | id: '', |
| | | creator: '', |
| | | createDate: '', |
| | | editor: '', |
| | | editDate: '', |
| | | isdeleted: '', |
| | | title: '', |
| | | remark: '', |
| | | status: '', |
| | | sortnum: '', |
| | | lineId: '', |
| | | userIds: '', |
| | | dealUserId: '', |
| | | dealDate: '', |
| | | dealInfo: '', |
| | | circleType: '', |
| | | circleDays: '', |
| | | startDate: '', |
| | | endDate: '', |
| | | startTime: '', |
| | | endTime: '', |
| | | processStatus: '' |
| | | title: '' |
| | | } |
| | | } |
| | | }, |
| | |
| | | this.search() |
| | | }, |
| | | methods: { |
| | | changeStatus(e) { |
| | | console.log(e); |
| | | updateStatusById(e).then(res => { |
| | | this.search() |
| | | Message.success('ç¶æä¿®æ¹æå') |
| | | }, () => { |
| | | this.search() |
| | | }) |
| | | }, |
| | | changeDate(e) { |
| | | if(e && e.length > 0){ |
| | | this.$set(this.searchForm, 'startDate', e[0]) |
| | | this.$set(this.searchForm, 'endDate', e[1]) |
| | | }else{ |
| | | this.$set(this.searchForm, 'startDate', '') |
| | | this.$set(this.searchForm, 'endDate', '') |
| | | } |
| | | |
| | | }, |
| | | reset() { |
| | | this.searchForm = {} |
| | | this.search() |
| | | }, |
| | | editClick(row) { |
| | | if (row && row.id) { |
| | | this.$refs.operaYwPatrolSchemeWindow.open('ç¼è¾å·¡æ£è®¡å') |
| | | this.$refs.operaYwPatrolSchemeWindow.getDetail(row.id) |
| | | } else { |
| | | this.$refs.operaYwPatrolSchemeWindow.open('æ°å»ºå·¡æ£è®¡å') |
| | | } |
| | |
| | | <TableLayout :permissions="['business:ywpatroltask:query']"> |
| | | <!-- æç´¢è¡¨å --> |
| | | <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline> |
| | | <el-form-item label="计ååç§°" prop="title"> |
| | | <el-input v-model="searchForm.title" placeholder="请è¾å
¥è®¡ååç§°" @keypress.enter.native="search"></el-input> |
| | | <el-form-item label="计ååç§°" prop="planTitle"> |
| | | <el-input v-model="searchForm.planTitle" placeholder="请è¾å
¥è®¡ååç§°" @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <el-form-item > |
| | | <el-select v-model="searchForm.status" filterable clearable> |
| | | <el-form-item label="ä»»å¡ç¶æ"> |
| | | <el-select v-model="searchForm.status" label="ä»»å¡ç¶æ" filterable clearable> |
| | | <el-option value="0" label="å¾
å¼å§"></el-option> |
| | | <el-option value="1" label="è¿è¡ä¸"></el-option> |
| | | <el-option value="2" label="å·²è¶
æ"></el-option> |
| | |
| | | > |
| | | <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="schemeId" 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="100px"> |
| | | <el-table-column prop="dealDate" label="任塿¶é´" min-width="140px"> |
| | | <template v-slot="scope"> |
| | | <span>{{ scope.row.startDate }} {{ scope.row.endDate }}</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> |
| | |
| | | fixed="right" |
| | | > |
| | | <template slot-scope="{row}"> |
| | | <el-button type="text" @click="deleteById(row)" icon="el-icon-delete" v-permissions="['business:ywpatroltask:delete']">åæ¶</el-button> |
| | | <el-button type="text" @click="handleDetail(row)">æ¥ç详æ
</el-button> |
| | | <el-button type="text" @click="cancelById(row)" v-permissions="['business:ywpatroltask:delete']">åæ¶</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | |
| | | this.$refs.TaskDetailRef.id = row.id |
| | | this.$refs.TaskDetailRef.getDetail() |
| | | }, |
| | | cancelById() { |
| | | |
| | | }, |
| | | } |
| | | } |
| | | </script> |
| | |
| | | <template slot-scope="{row}"> |
| | | <el-button type="text" icon="el-icon-edit" @click="$refs.OperaMemberWindow.open('ç¼è¾å工信æ¯', row, department)" |
| | | v-permissions="['business:empower:update']">ç¼è¾</el-button> |
| | | <el-button type="text" icon="el-icon-plus" @click="empower(row.id)" |
| | | v-permissions="['business:empower:create']">éæ°ææ</el-button> |
| | | <el-button type="text" :loading="heading" style="color: red" icon="el-icon-delete" |
| | | @click="updateHead(row, 0)" v-if="row.headStatus == 1" |
| | | v-permissions="['business:member:head']">åæ¶ä¸»ç®¡</el-button> |
| | |
| | | <template> |
| | | <GlobalWindow :title="title" width="900px" :visible.sync="visible" :confirm-working="isWorking" @confirm="confirm"> |
| | | <el-form :model="form" ref="form" :rules="rules"> |
| | | <GlobalWindow :title="title" width="820px" :visible.sync="visible" :confirm-working="isWorking" @confirm="confirm"> |
| | | <el-form :model="form" ref="form" label-position="top" :rules="rules"> |
| | | <div class="list"> |
| | | <el-form-item label="客æ·åç§°" prop="customerId"> |
| | | <el-select v-model="form.customerId" clearable filterable> |
| | |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="status" label="ç¶æ" min-width="100px"> |
| | | |
| | | <template slot-scope="{row}"> |
| | | <span :class="{ red: row.status == 1 }">{{ row.status == '0' ? 'æ£å¸¸' : 'ç¦ç¨' }}</span> |
| | | <el-switch v-model="row.status" @change="e => changeStatus(row)" :active-value="0" |
| | | :inactive-value="1"> |
| | | </el-switch> |
| | | <!-- <span :class="{ red: row.status == 1 }">{{ row.status == '0' ? 'æ£å¸¸' : 'ç¦ç¨' }}</span> --> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column v-if="containPermissions(['business:ywcustomer:update', 'business:ywcustomer:delete'])" |
| | |
| | | import Pagination from '@/components/common/Pagination' |
| | | import OperaYwCustomerWindow from './components/staffEdit.vue' |
| | | import { fetchList } from '@/api/client/ywCustomer' |
| | | import { updateStatusById } from '@/api/business/member' |
| | | import { Message } from 'element-ui' |
| | | export default { |
| | | name: 'YwCustomer', |
| | | extends: BaseTable, |
| | |
| | | this.initData() |
| | | }, |
| | | methods: { |
| | | changeStatus(e) { |
| | | updateStatusById(e).then(res => { |
| | | this.search() |
| | | Message.success('ç¶æä¿®æ¹æå') |
| | | }, () => { |
| | | this.search() |
| | | }) |
| | | }, |
| | | initData() { |
| | | fetchList({ |
| | | capacity: 9000, |
| | |
| | | <script> |
| | | import GlobalWindow from '@/components/common/GlobalWindow' |
| | | import UploadAvatarImage from '@/components/common/UploadAvatarImage' |
| | | import { create, updateById } from '@/api/business/company' |
| | | import { createFinanceCompany, updateFinanceCompany } from '@/api/business/company' |
| | | import { Message } from 'element-ui' |
| | | export default { |
| | | components: { GlobalWindow, UploadAvatarImage }, |
| | |
| | | const { param, subLoading } = this |
| | | this.$refs['paramRef'].validate((valid) => { |
| | | if (valid) { |
| | | let fn = param.id ? updateById : create |
| | | let fn = param.id ? updateFinanceCompany : createFinanceCompany |
| | | this.subLoading = true |
| | | fn(param).then(res => { |
| | | this.subLoading = false |
| | |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="ç
§ç" prop=""> |
| | | <UploadAvatarImage :file="{ 'imgurlfull': param.imgurlfull, 'imgurl': param.imgurl }" |
| | | <UploadAvatarImage :file="{ 'imgurlfull': param.fileFullUrl, 'imgurl': param.fileUrl }" |
| | | :uploadData="{ folder: 'ywDevice/' }" @uploadSuccess="uploadAvatarSuccess" @uploadEnd="isUploading = false" |
| | | @uploadBegin="isUploading = true" /> |
| | | </el-form-item> |
| | |
| | | if (item2.id == cateId) { |
| | | this.$set(this.param, 'cateIds', [item.id, item2.id]) |
| | | console.log('cateId', this.form) |
| | | |
| | | } |
| | | }) |
| | | } |
| | |
| | | } |
| | | }, |
| | | uploadAvatarSuccess(file) { |
| | | this.$set(this.param, 'imgurl', file.imgurl) |
| | | this.$set(this.param, 'imgurlfull', file.imgurlfull) |
| | | this.$set(this.param, 'fileUrl', file.imgurl) |
| | | this.$set(this.param, 'fileFullUrl', file.imgurlfull) |
| | | }, |
| | | close() { |
| | | this.isShowModal = false |
| | |
| | | <GlobalWindow :title="param.id ? 'ç¼è¾è¿ç»´è®°å½' : 'æ°å»ºè¿ç»´è®°å½'" :confirmWorking="subLoading" :visible.sync="isShowModal" |
| | | width="600px" @close="close" @confirm="handleSub"> |
| | | <el-form :model="param" ref="paramRef" :rules="rules"> |
| | | <el-form-item label="éæ©è®¾å¤" prop="code"> |
| | | <el-form-item label="éæ©è®¾å¤" prop="deviceId"> |
| | | <el-select v-model="param.deviceId" filterable clearable> |
| | | <el-option v-for="item in deviceList" :value="item" :label="item"></el-option> |
| | | <el-option v-for="item in deviceList" :value="item.id" :label="item.name"></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="è¿ç»´äººå" prop="code"> |
| | | <el-select v-model="param.realName" filterable clearable> |
| | | <el-option v-for="item in 10" :value="item" :label="item"></el-option> |
| | | <el-form-item label="è¿ç»´äººå" prop="userId"> |
| | | <el-select v-model="param.userId" filterable clearable> |
| | | <el-option v-for="item in staffList" :value="item.id" :label="item.realname"></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="设å¤ç¶æ" prop=""> |
| | | <el-select v-model="param.status" filterable clearable> |
| | | <el-option value="0" label="æ£å¸¸"></el-option> |
| | | <el-option value="1" label="æå"></el-option> |
| | | <el-option value="2" label="æ¥åº"></el-option> |
| | | <el-option :value="0" label="æ£å¸¸"></el-option> |
| | | <el-option :value="1" label="æå"></el-option> |
| | | <el-option :value="2" label="æ¥åº"></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="ç°åºç
§ç" prop=""> |
| | |
| | | </div> |
| | | </div> |
| | | </el-form-item> |
| | | <el-form-item label="è¿ç»´å¤æ³¨" prop=""> |
| | | <el-input type="textarea" :rows="4" v-model="param.remark" placeholder="请è¾å
¥" /> |
| | | <el-form-item label="è¿ç»´å¤æ³¨" prop="content"> |
| | | <el-input type="textarea" :rows="4" v-model="param.content" placeholder="请è¾å
¥" /> |
| | | </el-form-item> |
| | | <el-form-item label="è¿ç»´æ¶é´" prop=""> |
| | | <el-form-item label="è¿ç»´æ¶é´" prop="dealDate"> |
| | | <el-date-picker v-model="param.dealDate" format="yyyy-MM-dd HH:mm:ss" value-format="yyyy-MM-dd HH:mm:ss" |
| | | type="datetime"></el-date-picker> |
| | | </el-form-item> |
| | | |
| | | |
| | | |
| | | |
| | | </el-form> |
| | | </GlobalWindow> |
| | | </template> |
| | |
| | | import GlobalWindow from '@/components/common/GlobalWindow' |
| | | import UploadAvatarImage from '@/components/common/UploadAvatarImage' |
| | | import { fetchList } from '@/api/Inspection/device' |
| | | import { getUserList } from '@/api/system/user' |
| | | import { create, updateById } from '@/api/Inspection/deviceRecord' |
| | | import { Message, Loading } from 'element-ui' |
| | | export default { |
| | | components: { GlobalWindow, UploadAvatarImage }, |
| | |
| | | subLoading: false, |
| | | param: {}, |
| | | deviceList: [], |
| | | staffList: [], |
| | | rules: { |
| | | name: [{ required: true, message: '请è¾å
¥' }], |
| | | code: [{ required: true, message: '请è¾å
¥' }] |
| | | deviceId: [{ required: true, message: 'è¯·éæ©' }], |
| | | content: [{ required: true, message: '请è¾å
¥' }], |
| | | // code: [{ required: true, message: '请è¾å
¥' }], |
| | | }, |
| | | |
| | | loadingInstance: null, |
| | |
| | | }, |
| | | methods: { |
| | | handleSub() { |
| | | const { param, subLoading } = this |
| | | const { param, subLoading, fileList } = this |
| | | this.$refs['paramRef'].validate((valid) => { |
| | | if (valid) { |
| | | let fn = param.id ? updateById : create |
| | | if(fileList && fileList.length > 0){ |
| | | param.multifileList = fileList |
| | | } |
| | | this.subLoading = true |
| | | fn(param).then(res => { |
| | | if (res.code == 200) { |
| | | this.subLoading = false |
| | | this.$emit('success') |
| | | Message.success('ä¿åæå') |
| | | this.close() |
| | | } |
| | | }).catch(() => { |
| | | this.subLoading = false |
| | | }) |
| | |
| | | capacity: 1000, |
| | | page: 1, |
| | | }).then(res => { |
| | | this.deviceList = res || [] |
| | | this.deviceList = res.records |
| | | }) |
| | | |
| | | getUserList({}).then(res => { |
| | | this.staffList = res |
| | | }) |
| | | }, |
| | | changeSel(e) { |
| | | if (e && e.length == 1) { |
| | |
| | | if (['.mp4', '.avi', '.flv', '.wmv'].some(char => item.imgaddr.includes(char))) { |
| | | this.fileList.push({ |
| | | type: 1, |
| | | objType: 6, |
| | | fileurl: item.imgaddr, |
| | | fileurlFull: item.url |
| | | }) |
| | | } else { |
| | | this.fileList.push({ |
| | | type: 0, |
| | | objType: 6, |
| | | fileurl: item.imgaddr, |
| | | fileurlFull: item.url |
| | | }) |
| | |
| | | .file_list { |
| | | display: flex; |
| | | flex-wrap: wrap; |
| | | |
| | | .avatar-uploader{ |
| | | width: 92px; |
| | | height: 92px; |
| | |
| | | align-items: center; |
| | | border: 1px dashed #d9d9d9; |
| | | } |
| | | |
| | | .item { |
| | | width: 92px; |
| | | max-height: 92px; |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <GlobalWindow title="设å¤è¿ç»´è¯¦æ
" :showConfirm="false" :visible.sync="visible" width="800px"> |
| | | <div class="model_wrap"> |
| | | <div class="list"> |
| | | <div class="item"> |
| | | <div class="la">设å¤åç§°</div> |
| | | <div class="val">{{ info.deviceName }}</div> |
| | | </div> |
| | | <div class="item"> |
| | | <div class="la">设å¤ç¼å·</div> |
| | | <div class="val">{{ info.deviceCode }}</div> |
| | | </div> |
| | | <div class="item"> |
| | | <div class="la">设å¤ç¶æ</div> |
| | | <div class="val" v-if="info.status == 0">æ£å¸¸</div> |
| | | <div class="val" v-if="info.status == 1">æå</div> |
| | | <div class="val" v-if="info.status == 2">æ¥åº</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.mobile }}</div> |
| | | </div> |
| | | <div class="item"> |
| | | <div class="la">è¿ç»´æ¶é´</div> |
| | | <div class="val">{{ info.dealDate }}</div> |
| | | </div> |
| | | <div class="item max"> |
| | | <div class="la">è¿ç»´å¤æ³¨</div> |
| | | <div class="val">{{ info.content }}</div> |
| | | </div> |
| | | <div class="item max"> |
| | | <div class="la">ç°åºç
§ç</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> |
| | | </GlobalWindow> |
| | | </template> |
| | | |
| | | <script> |
| | | import BaseOpera from '@/components/base/BaseOpera' |
| | | import GlobalWindow from '@/components/common/GlobalWindow' |
| | | import { detailById } from '@/api/Inspection/deviceRecord' |
| | | export default { |
| | | extends: BaseOpera, |
| | | components: { GlobalWindow }, |
| | | data() { |
| | | return { |
| | | // è¡¨åæ°æ® |
| | | info: {}, |
| | | } |
| | | }, |
| | | created() { |
| | | |
| | | }, |
| | | methods: { |
| | | getDetail(id) { |
| | | detailById(id).then(res => { |
| | | this.info = res |
| | | }) |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | <style lang="scss" scoped> |
| | | .model_wrap { |
| | | padding-top: 20px; |
| | | .title { |
| | | font-size: 18px; |
| | | font-weight: 600; |
| | | margin-bottom: 16px; |
| | | } |
| | | |
| | | .list { |
| | | display: flex; |
| | | flex-wrap: wrap; |
| | | |
| | | .item { |
| | | width: 33.33%; |
| | | margin-bottom: 8px; |
| | | |
| | | .la { |
| | | color: #7f7f7f |
| | | } |
| | | } |
| | | .max{ |
| | | width: 100%; |
| | | } |
| | | } |
| | | } |
| | | </style> |
| | |
| | | <el-button type="primary" @click="handleEx" v-permissions="['business:ywpatrolline:create']">导åº</el-button> |
| | | </div> |
| | | <el-table v-loading="loading" :data="list" stripe> |
| | | <el-table-column prop="" label="è¿ç»´äºº" min-width="100" show-overflow-tooltip /> |
| | | <el-table-column prop="code" label="设å¤ç¼å·" min-width="100" show-overflow-tooltip /> |
| | | <el-table-column prop="name" label="设å¤åç§°" min-width="100" show-overflow-tooltip /> |
| | | <el-table-column prop="stautsName" label="设å¤ç¶æ" min-width="100" show-overflow-tooltip /> |
| | | <el-table-column prop="remark" label="è¿ç»´å¤æ³¨" min-width="100" show-overflow-tooltip /> |
| | | <el-table-column prop="createTime" label="å建æ¶é´" min-width="100" show-overflow-tooltip /> |
| | | <el-table-column prop="realName" label="è¿ç»´äºº" min-width="100" show-overflow-tooltip /> |
| | | <el-table-column prop="deviceCode" label="设å¤ç¼å·" min-width="100" show-overflow-tooltip /> |
| | | <el-table-column prop="deviceName" label="设å¤åç§°" min-width="100" show-overflow-tooltip /> |
| | | <el-table-column prop="status" label="设å¤ç¶æ" min-width="100" show-overflow-tooltip> |
| | | <template slot-scope="{row}"> |
| | | <span v-if="row.status == 0">æ£å¸¸</span> |
| | | <span v-if="row.status == 1">æå</span> |
| | | <span v-if="row.status == 2">æ¥åº</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="content" label="è¿ç»´å¤æ³¨" min-width="100" show-overflow-tooltip /> |
| | | <el-table-column prop="createDate" label="å建æ¶é´" min-width="140" show-overflow-tooltip /> |
| | | <el-table-column label="æä½" min-width="120" fixed="right"> |
| | | <template slot-scope="{row}"> |
| | | <el-button type="text" @click="handleDetail(row)" icon="el-icon-edit" |
| | | v-permissions="['business:category:update']">æ¥ç</el-button> |
| | | <el-button type="text" @click="handleDetail(row)" v-permissions="['business:category:update']">æ¥ç</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | |
| | | <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/maintain.vue' |
| | | import { fetchList, deleteById } from '@/api/Inspection/device' |
| | | import Detail from './components/maintainDetail.vue' |
| | | import { fetchList, deleteById } from '@/api/Inspection/deviceRecord' |
| | | export default { |
| | | components: { |
| | | Pagination, |
| | | QueryForm, |
| | | Edit |
| | | Edit, |
| | | Detail |
| | | }, |
| | | data() { |
| | | return { |
| | |
| | | }) |
| | | |
| | | }, |
| | | handleDetail() { |
| | | |
| | | handleDetail(row) { |
| | | this.$refs.DetailRef.visible = true |
| | | this.$refs.DetailRef.getDetail(row.id) |
| | | }, |
| | | handleDel(row) { |
| | | let message = `确认å é¤è¯¥è®°å½å?` |
| | |
| | | <template> |
| | | <GlobalWindow |
| | | :title="title" |
| | | :visible.sync="visible" |
| | | :confirm-working="isWorking" |
| | | @confirm="confirm" |
| | | > |
| | | <GlobalWindow :title="title" :visible.sync="visible" :confirm-working="isWorking" @confirm="confirm"> |
| | | <el-form :model="form" ref="form" :rules="rules"> |
| | | |
| | | <el-form-item label="项ç®åç§°" prop="name"> |
| | | <el-input v-model="form.name" placeholder="请è¾å
¥åç§°" v-trim/> |
| | | </el-form-item> |
| | | <el-form-item label="æå±å°å" prop="addr"> |
| | | <el-input v-model="form.addr" placeholder="请è¾å
¥è¯¦ç»å°å"/> |
| | | <el-form-item label="æå±å°åº" prop="addr"> |
| | | <el-cascader v-model="form.areaIdT" :props="{ |
| | | label: 'name', |
| | | value: 'id', |
| | | children: 'childList' |
| | | }" :options="treeList" @change="handleChange"></el-cascader> |
| | | </el-form-item> |
| | | <el-form-item label="详ç»å°å" prop="addr"> |
| | | <el-input v-model="form.addr" placeholder="请è¾å
¥è¯¦ç»å°å"/> |
| | |
| | | <script> |
| | | import BaseOpera from '@/components/base/BaseOpera' |
| | | import GlobalWindow from '@/components/common/GlobalWindow' |
| | | import { getCityTree } from '@/api/system/common' |
| | | import { detailById } from '@/api/project/ywProject' |
| | | export default { |
| | | name: 'OperaYwProjectWindow', |
| | | extends: BaseOpera, |
| | |
| | | status: '', |
| | | sortnum: '', |
| | | imgurl: '', |
| | | areaIdT: '', |
| | | cityId: '', |
| | | areaId: '', |
| | | provinceId: '', |
| | | addr: '' |
| | | }, |
| | | // éªè¯è§å |
| | | rules: { |
| | | name: [{ required: true, message: '请è¾å
¥é¡¹ç®åç§°', trigger: 'blur' }] |
| | | }, |
| | | projectList: [] |
| | | projectList: [], |
| | | treeList: [] |
| | | } |
| | | }, |
| | | created () { |
| | |
| | | }) |
| | | }, |
| | | methods: { |
| | | open(title, target) { |
| | | this.title = title |
| | | this.visible = true |
| | | this.initData() |
| | | this.$nextTick(() => { |
| | | for (const key in this.form) { |
| | | this.form[key] = target[key] |
| | | } |
| | | this.$set(this.form, 'areaIdT', [target.provinceId, target.cityId, target.areaId,]) |
| | | // console.log(this.form) |
| | | }) |
| | | |
| | | |
| | | |
| | | }, |
| | | handleChange(e) { |
| | | if (e && e.length > 0) { |
| | | if (e.length == 3) { |
| | | this.$set(this.form, 'areaId', e[2]) |
| | | } else if (e.length == 2) { |
| | | this.$set(this.form, 'areaId', e[1]) |
| | | } else { |
| | | this.$set(this.form, 'areaId', e[0]) |
| | | } |
| | | } |
| | | }, |
| | | getDetail(id) { |
| | | detailById(id).then(res => { |
| | | this.form = res |
| | | }) |
| | | }, |
| | | initData() { |
| | | getCityTree({ |
| | | "type": 0 |
| | | }).then(res => { |
| | | this.treeList = res |
| | | }) |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | |
| | | <!-- è¡¨æ ¼åå页 --> |
| | | <template v-slot:table-wrap> |
| | | <ul class="toolbar" v-permissions="['business:ywproject:create', 'business:ywproject:delete']"> |
| | | <li><el-button type="primary" @click="$refs.operaYwProjectWindow.open('æ°å»ºé¡¹ç®')" icon="el-icon-plus" v-permissions="['business:ywproject:create']">æ°å»º</el-button></li> |
| | | <li><el-button type="primary" @click="handleEdit()" icon="el-icon-plus" v-permissions="['business:ywproject:create']">æ°å»º</el-button></li> |
| | | <li><el-button @click="deleteByIdInBatch" icon="el-icon-delete" v-permissions="['business:ywproject:delete']">å é¤</el-button></li> |
| | | </ul> |
| | | <el-table |
| | |
| | | fixed="right" |
| | | > |
| | | <template slot-scope="{row}"> |
| | | <el-button type="text" @click="$refs.operaYwProjectWindow.open('ç¼è¾é¡¹ç®', row)" icon="el-icon-edit" v-permissions="['business:ywproject:update']">ç¼è¾</el-button> |
| | | <el-button type="text" @click="handleEdit(row)" icon="el-icon-edit" v-permissions="['business:ywproject:update']">ç¼è¾</el-button> |
| | | <el-button type="text" @click="deleteById(row)" icon="el-icon-delete" v-permissions="['business:ywproject:delete']">å é¤</el-button> |
| | | </template> |
| | | </el-table-column> |
| | |
| | | 'field.main': 'id' |
| | | }) |
| | | this.search() |
| | | }, |
| | | methods: { |
| | | handleEdit(row){ |
| | | if(row && row.id){ |
| | | this.$refs.operaYwProjectWindow.open('ç¼è¾é¡¹ç®', row) |
| | | }else{ |
| | | this.$refs.operaYwProjectWindow.open('æ°å»ºé¡¹ç®') |
| | | // this.$refs.operaYwProjectWindow.open('æ°å»ºé¡¹ç®') |
| | | } |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | |
| | | <template> |
| | | <GlobalWindow width="820px" title="å·¥å详æ
" :visible.sync="visible" :confirm-working="isWorking" @close="close" |
| | | <GlobalWindow width="900px" title="å·¥å详æ
" :visible.sync="visible" :confirm-working="isWorking" @close="close" |
| | | @confirm="confirm"> |
| | | <div class="main"> |
| | | <div class="title"> |
| | |
| | | <div class="status gray" v-if="info.dealStatus == 2">å·²å¤ç</div> |
| | | </div> |
| | | </div> |
| | | <div class="main_content"> |
| | | <div class="list"> |
| | | <div class="item"> |
| | | <div class="la">ä½ç½®ç±»å</div> |
| | |
| | | <div class="value" v-if="info.fileList == null || !info.fileList.length">æ </div> |
| | | <div class="value" v-if="info.fileList != null && info.fileList.length"> |
| | | <div v-for="item in info.fileList" :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" /> |
| | | <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 class="side"> |
| | | <div class="title">å·¥åæµè½¬è®°å½å</div> |
| | | <div class="flow_list"> |
| | | <div class="item" v-for="item,i in info.logList"> |
| | | <div class="icon"> |
| | | <div class="dian"></div> |
| | | <div v-if="i < info.logList.length - 1" class="line"></div> |
| | | </div> |
| | | <div class="content"> |
| | | <div class="name">{{ item.title }}</div> |
| | | <div class="time">æä½æ¶é´ï¼{{ item.createDate }}</div> |
| | | <div class="creator">æä½äººï¼{{ item.param1 }}</div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | |
| | | </el-form-item> |
| | | <el-form-item label="ç°åºå¾ç"> |
| | | <div class="file_list"> |
| | | <el-upload class="avatar-uploader" :data="uploadData" multiple :limit="6" :auto-upload="true" :action="uploadImgUrl" |
| | | :show-file-list="false" :on-success="uploadAvatarSuccess" :on-error="uploadError" |
| | | <el-upload class="avatar-uploader" :data="uploadData" multiple :limit="6" :auto-upload="true" |
| | | :action="uploadImgUrl" :show-file-list="false" :on-success="uploadAvatarSuccess" :on-error="uploadError" |
| | | :before-upload="beforeUpload"> |
| | | <div class="upload_wrap"> |
| | | <i class="el-icon-plus avatar-uploader-icon"></i> |
| | |
| | | width: 100%; |
| | | } |
| | | } |
| | | .main_content{ |
| | | display: flex; |
| | | .side{ |
| | | width: 240px; |
| | | .title{ |
| | | font-size: 14px; |
| | | } |
| | | .flow_list{ |
| | | .item{ |
| | | display: flex; |
| | | .icon{ |
| | | width: 28px; |
| | | display: flex; |
| | | flex-direction: column; |
| | | align-items: center; |
| | | .dian{ |
| | | width: 12px; |
| | | height: 12px; |
| | | border-radius: 50%; |
| | | background-color: #e89e42; |
| | | } |
| | | .line{ |
| | | width: 1px; |
| | | height: 100%; |
| | | background-color: #e89e42; |
| | | } |
| | | } |
| | | .content{ |
| | | font-size: 12px; |
| | | color: #999999; |
| | | padding-bottom: 12px; |
| | | .name{ |
| | | font-size: 13px; |
| | | color: #333333; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | .file_list { |