From 88447bfceb5e57f9a49cf20fb13f417fdd1ca60f Mon Sep 17 00:00:00 2001
From: jiangping <jp@doumee.com>
Date: 星期一, 09 十二月 2024 22:37:12 +0800
Subject: [PATCH] 开发更新
---
admin/src/views/workorder/workorderList.vue | 211 +++++++++++++++++++++++++++++++++-------------------
1 files changed, 133 insertions(+), 78 deletions(-)
diff --git a/admin/src/views/workorder/workorderList.vue b/admin/src/views/workorder/workorderList.vue
index 7af17bb..a2b0b1e 100644
--- a/admin/src/views/workorder/workorderList.vue
+++ b/admin/src/views/workorder/workorderList.vue
@@ -2,74 +2,85 @@
<TableLayout :permissions="['business:ywworkorder:query']">
<!-- 鎼滅储琛ㄥ崟 -->
<el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline>
- <el-form-item label="鎵�灞為」鐩紪鐮侊紙鍏宠仈yw_project)" prop="projectId">
- <el-input v-model="searchForm.projectId" placeholder="璇疯緭鍏ユ墍灞為」鐩紪鐮侊紙鍏宠仈yw_project)" @keypress.enter.native="search"></el-input>
+ <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>
+ </el-select>
</el-form-item>
- <el-form-item label="鎵�灞為」鐩紪鐮侊紙鍏宠仈yw_building)" prop="buildingId">
- <el-input v-model="searchForm.buildingId" placeholder="璇疯緭鍏ユ墍灞為」鐩紪鐮侊紙鍏宠仈yw_building)" @keypress.enter.native="search"></el-input>
+ <el-form-item label="閫夋嫨椤圭洰" prop="projectId">
+ <el-select v-model="searchForm.projectId" @change="getBuild" clearable filterable>
+ <el-option v-for="item in projectList" :label="item.name" :value="item.id" />
+ </el-select>
</el-form-item>
- <el-form-item label="鎵�灞炴埧闂寸紪鐮侊紙鍏宠仈yw_room)" prop="roomId">
- <el-input v-model="searchForm.roomId" placeholder="璇疯緭鍏ユ墍灞炴埧闂寸紪鐮侊紙鍏宠仈yw_room)" @keypress.enter.native="search"></el-input>
+ <el-form-item label="閫夋嫨妤煎畤" prop="buildingId">
+ <el-select v-model="searchForm.buildingId" clearable filterable>
+ <el-option v-for="item in buildList" :label="item.name" :value="item.id" />
+ </el-select>
</el-form-item>
- <el-form-item label="宸ュ崟鍒嗙被缂栫爜(鍏宠仈category锛�" prop="cateId">
- <el-input v-model="searchForm.cateId" placeholder="璇疯緭鍏ュ伐鍗曞垎绫荤紪鐮�(鍏宠仈category锛�" @keypress.enter.native="search"></el-input>
+ <el-form-item prop="cateId" label="宸ュ崟鍒嗙被">
+ <el-cascader v-model="searchForm.areaIds" @change="changeSel" placeholder="璇烽�夋嫨宸ュ崟鍒嗙被" clearable
+ :options="cateList" :props="{
+ label: 'name',
+ value: 'id',
+ children: 'childCategoryList'
+ }"></el-cascader>
</el-form-item>
+ <el-form-item label="涓婃姤鏃堕棿">
+ <el-date-picker v-model="searchForm.selDate" @change="changeSelDate" format="yyyy-MM-dd"
+ value-format="yyyy-MM-dd" type="daterange"></el-date-picker>
+ </el-form-item>
+
<section>
<el-button type="primary" @click="search">鎼滅储</el-button>
- <el-button type="primary" :loading="isWorking.export" v-permissions="['business:ywworkorder:exportExcel']" @click="exportExcel">瀵煎嚭</el-button>
<el-button @click="reset">閲嶇疆</el-button>
</section>
</el-form>
<!-- 琛ㄦ牸鍜屽垎椤� -->
<template v-slot:table-wrap>
<ul class="toolbar" v-permissions="['business:ywworkorder:create', 'business:ywworkorder:delete']">
- <li><el-button type="primary" @click="$refs.operaYwWorkorderWindow.open('鏂板缓宸ュ崟')" icon="el-icon-plus" v-permissions="['business:ywworkorder:create']">鏂板缓</el-button></li>
- <li><el-button @click="deleteByIdInBatch" icon="el-icon-delete" v-permissions="['business:ywworkorder:delete']">鍒犻櫎</el-button></li>
+ <li><el-button type="primary" @click="$refs.operaYwWorkorderWindow.open('鏂板缓宸ュ崟')" icon="el-icon-plus"
+ v-permissions="['business:ywworkorder:create']">鏂板缓</el-button></li>
+ <el-button type="primary" :loading="isWorking.export" v-permissions="['business:ywworkorder:exportExcel']"
+ @click="exportExcel" plain>瀵煎嚭</el-button>
</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="projectId" label="鎵�灞為」鐩紪鐮侊紙鍏宠仈yw_project)" min-width="100px"></el-table-column>
- <el-table-column prop="buildingId" label="鎵�灞為」鐩紪鐮侊紙鍏宠仈yw_building)" min-width="100px"></el-table-column>
- <el-table-column prop="roomId" label="鎵�灞炴埧闂寸紪鐮侊紙鍏宠仈yw_room)" min-width="100px"></el-table-column>
- <el-table-column prop="userId" label="鎻愭姤浜虹紪鐮�" min-width="100px"></el-table-column>
- <el-table-column prop="phone" label="鑱旂郴鐢佃瘽" min-width="100px"></el-table-column>
- <el-table-column prop="submitDate" label="鎻愭姤鏃堕棿" min-width="100px"></el-table-column>
- <el-table-column prop="cateId" label="宸ュ崟鍒嗙被缂栫爜(鍏宠仈category锛�" min-width="100px"></el-table-column>
- <el-table-column prop="areaType" label="淇濅慨鍖哄煙绫诲瀷 0瀹ゅ唴缁翠慨 1鍏叡鍖哄煙" min-width="100px"></el-table-column>
-
- <el-table-column prop="dealStatus" label="澶勭悊鐘舵�� 0寰呭鐞� 1宸插垎娲� 2宸插鐞�" min-width="100px"></el-table-column>
-
- <el-table-column prop="dealUserId" label="澶勭悊浜虹紪鐮�(鍏宠仈system_user)" min-width="100px"></el-table-column>
- <el-table-column prop="dealType" label="澶勭悊鏂瑰紡 0鎸囨淳鍚庡鐞� 1鐩存帴鍥炲" min-width="100px"></el-table-column>
- <el-table-column
- v-if="containPermissions(['business:ywworkorder:update', 'business:ywworkorder:delete'])"
- label="鎿嶄綔"
- min-width="120"
- fixed="right"
- >
+ <el-table v-loading="isWorking.search" :data="tableData.list" stripe>
+ <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>
+ </template>
+ </el-table-column>
+ <el-table-column prop="" label="鎶ヤ慨鍖哄煙" min-width="100px">
+ <template v-slot="scope">
+ <span>{{ scope.row.buildingName }} / {{ scope.row.areaType == 0 ? scope.row.roomNum : scope.row.floorName
+ }}</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="80px"></el-table-column>
+ <el-table-column prop="createDate" label="涓婃姤鏃堕棿" min-width="100px"></el-table-column>
+ <el-table-column prop="dealUserName" label="澶勭悊浜�" min-width="80px"></el-table-column>
+ <el-table-column label="宸ュ崟鐘舵��" min-width="70px">
<template slot-scope="{row}">
- <el-button type="text" @click="$refs.operaYwWorkorderWindow.open('缂栬緫宸ュ崟', row)" icon="el-icon-edit" v-permissions="['business:ywworkorder:update']">缂栬緫</el-button>
- <el-button type="text" @click="deleteById(row)" icon="el-icon-delete" v-permissions="['business:ywworkorder:delete']">鍒犻櫎</el-button>
+ <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="鎿嶄綔" width="80"
+ fixed="right">
+ <template slot-scope="{row}">
+ <span @click="handleDetail(row)" class="primaryColor cu">鏌ョ湅璇︽儏</span>
</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>
+ <Detail v-if="showDetail" ref="DetailRef" @close="showDetail = false" @success="search" />
<!-- 鏂板缓/淇敼 -->
- <OperaYwWorkorderWindow ref="operaYwWorkorderWindow" @success="handlePageChange"/>
+ <OperaYwWorkorderWindow ref="operaYwWorkorderWindow" @success="handlePageChange" />
</TableLayout>
</template>
@@ -78,47 +89,32 @@
import TableLayout from '@/layouts/TableLayout'
import Pagination from '@/components/common/Pagination'
import OperaYwWorkorderWindow from './components/OperaYwWorkorderWindow'
+import Detail from './components/detail'
+import { getBuildList } from '@/api/project/ywBuilding'
+import { getProjectList } from '@/api/project/ywProject'
+import { fetchList as getCateList } from '@/api/business/category.js'
export default {
name: 'YwWorkorder',
extends: BaseTable,
- components: { TableLayout, Pagination, OperaYwWorkorderWindow },
- data () {
+ components: { TableLayout, Pagination, Detail, OperaYwWorkorderWindow },
+ data() {
return {
// 鎼滅储
+ showDetail: false,
searchForm: {
- id: '',
- creator: '',
- createDate: '',
- editor: '',
- editDate: '',
- isdeleted: '',
- title: '',
- remark: '',
- status: '',
- sortnum: '',
- content: '',
- getDate: '',
+ selDate: [],
+ areaType: '',
+ areaIds: '',
projectId: '',
buildingId: '',
- roomId: '',
- userId: '',
- phone: '',
- submitDate: '',
cateId: '',
- areaType: '',
- code: '',
- dealStatus: '',
- dispatchUserId: '',
- dispatchDate: '',
- dispatchInfo: '',
- dealUserId: '',
- dealDate: '',
- dealInfo: '',
- dealType: ''
- }
+ },
+ projectList: [],
+ buildList: [],
+ cateList: [],
}
},
- created () {
+ created() {
this.config({
module: '杩愮淮宸ュ崟淇℃伅琛�',
api: '/workorder/ywWorkorder',
@@ -126,6 +122,65 @@
'field.main': 'id'
})
this.search()
+ this.initData()
+ },
+ methods: {
+ handleDetail(row) {
+ this.showDetail = true
+ this.$nextTick(() => {
+ this.$refs.DetailRef.visible = true
+ this.$refs.DetailRef.id = row.id
+ this.$refs.DetailRef.getDetail()
+
+ })
+ },
+ initData() {
+ getProjectList({}).then(res => {
+ this.projectList = res
+ })
+ getCateList({
+ model: { type: 3 },
+ capacity: 1000,
+ page: 1,
+ }).then(res => {
+ this.cateList = res.records || []
+ })
+ },
+ getBuild(projectId) {
+ this.$set(this.searchForm, 'buildingId', '')
+ getBuildList({ projectId }).then(res => {
+ this.buildList = res
+ })
+ },
+ changeSel(e) {
+ if (e && e.length == 2) {
+ this.$set(this.searchForm, 'cateId', e[1])
+ } else {
+ this.$set(this.searchForm, 'cateId', '')
+ }
+ },
+ reset() {
+ this.searchForm = {
+ selDate: [],
+ areaType: '',
+ areaIds: '',
+ projectId: '',
+ buildingId: '',
+ cateId: '',
+ }
+ this.buildList = []
+ this.search()
+ },
+ changeSelDate(e) {
+ if (e && e.length > 0) {
+ this.$set(this.searchForm, 'queryStartTime', e[0] + ' 00:00:00')
+ this.$set(this.searchForm, 'queryEndTime', e[1] + ' 23:59:59')
+ } else {
+ this.$set(this.searchForm, 'queryStartTime', '')
+ this.$set(this.searchForm, 'queryEndTime', '')
+ }
+
+ },
}
}
</script>
--
Gitblit v1.9.3