From ccf28d1fed1aa2e5437dbe64b5133ba1cbde6ec7 Mon Sep 17 00:00:00 2001
From: renkang <8417338+k94314517@user.noreply.gitee.com>
Date: 星期五, 03 一月 2025 15:30:52 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'
---
admin/src/views/contract/components/contractEdit.vue | 235 ++++++++------
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwPatrolTaskRecord.java | 2
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/AreasServiceImpl.java | 3
h5/pages/polling/detail.vue | 54 ++
h5/pages/workOrder/edit.vue | 9
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwPatrolTaskRecordServiceImpl.java | 45 +-
admin/src/views/Inspection/task.vue | 2
h5/pages/operation/device.vue | 20 +
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/erp/ErpSyncServiceImpl.java | 14
h5/pages/index.vue | 26
h5/pages/login.vue | 2
admin/src/views/contract/components/contractDetail.vue | 4
admin/src/views/workorder/components/detail.vue | 72 +++-
h5/pages/polling/task.vue | 21 +
h5/static/plan_ic_finish@2x.png | 0
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/CompanyCloudController.java | 7
h5/pages/workOrder/detail.vue | 153 +++++++-
h5/pages/polling/point.vue | 74 ++--
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwPatrolTaskServiceImpl.java | 8
admin/src/views/workorder/workorderList.vue | 1
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwPatrolScheme.java | 11
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/CompanyService.java | 2
admin/src/views/Inspection/components/taskDetail.vue | 17
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwPatrolSchemeServiceImpl.java | 12
admin/src/views/business/areas.vue | 3
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwContractBill.java | 1
admin/.env.development | 7
admin/src/views/project/components/OperaYwRoomWindow.vue | 13
h5/utils/config.js | 4
admin/src/components/business/OperaAreasWindow.vue | 8
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java | 2
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwWorkorder.java | 9
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwProjectServiceImpl.java | 3
admin/src/views/Inspection/plan.vue | 44 +
h5/pages/workOrder/list.vue | 6
admin/.env.test | 4
h5/static/play.png | 0
admin/src/api/company.js | 4
admin/src/views/project/components/OperaYwBuildingWindow.vue | 12
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/CompanyServiceImpl.java | 12
admin/src/views/workorder/components/OperaYwWorkorderWindow.vue | 14
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwWorkorderServiceImpl.java | 20 +
42 files changed, 646 insertions(+), 314 deletions(-)
diff --git a/admin/.env.development b/admin/.env.development
index e812482..dbb3c07 100644
--- a/admin/.env.development
+++ b/admin/.env.development
@@ -4,7 +4,10 @@
VUE_APP_CONTEXT_PATH = './'
# VUE_APP_API_URL = 'http://localhost:10010'
-# VUE_APP_API_URL = 'http://192.168.0.163:10010'
-VUE_APP_API_URL = 'https://dmtest.ahapp.net/fn_admin'
+
+VUE_APP_API_URL = 'http://192.168.0.137:10010'
+
+# VUE_APP_API_URL = 'https://dmtest.ahapp.net/fn_admin'
+
# VUE_APP_API_URL = 'http://10.50.250.253:8088/gateway_interface'
diff --git a/admin/.env.test b/admin/.env.test
index 3201150..4da080a 100644
--- a/admin/.env.test
+++ b/admin/.env.test
@@ -4,10 +4,10 @@
# VUE_APP_API_URL = 'http://192.168.5.13/gateway_interface'
# 浠诲悍
-# VUE_APP_API_URL = 'http://192.168.0.163:10010/'
+VUE_APP_API_URL = 'http://192.168.0.137:10010/'
# 钀嶅
# VUE_APP_API_URL = 'http://192.168.0.108:10010/'
# 娴嬭瘯鏈嶅姟
-VUE_APP_API_URL = 'https://dmtest.ahapp.net/gateway_interface'
+# VUE_APP_API_URL = 'https://dmtest.ahapp.net/gateway_interface'
diff --git a/admin/src/api/company.js b/admin/src/api/company.js
index 832abb0..ad54d7a 100644
--- a/admin/src/api/company.js
+++ b/admin/src/api/company.js
@@ -11,3 +11,7 @@
export function companyList (data) {
return request.post('/visitsAdmin/cloudService/business/company/list', data)
}
+// 鍒楄〃
+export function companyListConstract (data) {
+ return request.post('/visitsAdmin/cloudService/business/company/listForConstract', data)
+}
diff --git a/admin/src/components/business/OperaAreasWindow.vue b/admin/src/components/business/OperaAreasWindow.vue
index 2458dad..5cdd9cc 100644
--- a/admin/src/components/business/OperaAreasWindow.vue
+++ b/admin/src/components/business/OperaAreasWindow.vue
@@ -9,9 +9,12 @@
<el-form-item :label="form.type==1?'甯傚悕绉�':'鍘垮尯鍚嶇О'" prop="name">
<el-input v-model="form.name" :placeholder="form.type==1?'杈撳叆甯傚悕绉�':'杈撳叆鍘垮尯鍚嶇О'" v-trim/>
</el-form-item>
- <el-form-item label="鎺掑簭鐮�" prop="sortnum">
- <el-input v-model="form.sortnum" placeholder="璇疯緭鍏ユ帓搴忕爜" v-trim/>
+ <el-form-item label="琛屾斂鍖轰唬鐮�" prop="code">
+ <el-input v-model="form.code" placeholder="璇疯緭鍏ユ帓搴忕爜" v-trim/>
</el-form-item>
+<!-- <el-form-item label="鎺掑簭鐮�" prop="sortnum">
+ <el-input v-model="form.sortnum" placeholder="璇疯緭鍏ユ帓搴忕爜" v-trim/>
+ </el-form-item>-->
</el-form>
</GlobalAlertWindow>
</template>
@@ -30,6 +33,7 @@
id: null,
parentId: null,
name: null,
+ code:null,
sortnum: '0',
type: null
},
diff --git a/admin/src/views/Inspection/components/taskDetail.vue b/admin/src/views/Inspection/components/taskDetail.vue
index 54b30a5..a357861 100644
--- a/admin/src/views/Inspection/components/taskDetail.vue
+++ b/admin/src/views/Inspection/components/taskDetail.vue
@@ -1,5 +1,5 @@
<template>
- <GlobalWindow title="宸℃浠诲姟璇︽儏" :showConfirm="false" :visible.sync="isShowModal">
+ <GlobalWindow title="宸℃浠诲姟璇︽儏" width="800px" :showConfirm="false" :visible.sync="isShowModal">
<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 />
@@ -11,12 +11,25 @@
</el-table-column>
<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>
+ <el-table-column prop="files" label="宸℃缁撴灉" min-width="100" show-overflow-tooltip >
<template v-slot="{ row }">
<span class="gray" v-if="row.dealStatus == 0">姝e父</span>
<span class="red" v-if="row.dealStatus == 1">寮傚父</span>
</template>
</el-table-column>
+ <el-table-column prop="" label="宸℃闄勪欢" min-width="100" show-overflow-tooltip>
+ <template v-slot="{ row }">
+ <div class="value" v-if="row.multifileList != null && row.multifileList.length">
+ <div v-for="item in row.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: 60px;height: 60px;object-fit: contain;" :src="item.fileurlFull" />
+ <el-image v-else-if="item.fileurlFull" style="width:60px; height: 60px" :src="item.fileurlFull"
+ :preview-src-list="[item.fileurlFull]">
+ </el-image>
+ </div>
+ </div>
+ </template>
+ </el-table-column>
<el-table-column prop="dealInfo" label="宸℃璇存槑" min-width="100" show-overflow-tooltip />
</el-table>
<div class="mt20">
diff --git a/admin/src/views/Inspection/plan.vue b/admin/src/views/Inspection/plan.vue
index 421f804..31bd4c2 100644
--- a/admin/src/views/Inspection/plan.vue
+++ b/admin/src/views/Inspection/plan.vue
@@ -2,14 +2,17 @@
<TableLayout :permissions="['business:ywpatrolscheme:query']">
<!-- 鎼滅储琛ㄥ崟 -->
<el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline>
+ <el-form-item label="寮�濮嬫棩鏈�" prop="selDate">
+ <el-date-picker type="daterange" v-model="searchForm.selDate" @change="changeSelDate" clearable value-format="yyyy-MM-dd"
+ />
+ </el-form-item>
+ <el-form-item label="缁撴潫鏃ユ湡" prop="selDateSec">
+ <el-date-picker type="daterange" v-model="searchForm.selDateSec" @change="changeSelDateSec" clearable value-format="yyyy-MM-dd"
+ />
+ </el-form-item>
<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="selDate">
- <el-date-picker type="daterange" v-model="searchForm.selDate" clearable value-format="yyyy-MM-dd"
- @change="changeDate" />
- </el-form-item>
-
<section>
<el-button type="primary" @click="search">鎼滅储</el-button>
<el-button @click="reset">閲嶇疆</el-button>
@@ -90,7 +93,9 @@
return {
// 鎼滅储
searchForm: {
- title: ''
+ title: '',
+ selDate:[],
+ selDateSec:[]
}
}
},
@@ -113,16 +118,7 @@
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()
@@ -137,6 +133,24 @@
this.$refs.operaYwPatrolSchemeWindow.initData()
},
+ changeSelDate(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', '')
+ }
+ },
+ changeSelDateSec(e) {
+ if (e && e.length > 0) {
+ this.$set(this.searchForm, 'startDateSec', e[0] )
+ this.$set(this.searchForm, 'endDateSec', e[1] )
+ } else {
+ this.$set(this.searchForm, 'startDateSec', '')
+ this.$set(this.searchForm, 'endDateSec', '')
+ }
+ },
}
}
</script>
diff --git a/admin/src/views/Inspection/task.vue b/admin/src/views/Inspection/task.vue
index b9fe645..7084b40 100644
--- a/admin/src/views/Inspection/task.vue
+++ b/admin/src/views/Inspection/task.vue
@@ -5,7 +5,7 @@
<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 label="浠诲姟鐘舵��">
+ <el-form-item label="浠诲姟鐘舵��" prop="status">
<el-select v-model="searchForm.status" label="浠诲姟鐘舵��" filterable clearable>
<el-option value="0" label="寰呭紑濮�"></el-option>
<el-option value="1" label="杩涜涓�"></el-option>
diff --git a/admin/src/views/business/areas.vue b/admin/src/views/business/areas.vue
index 0908620..d308427 100644
--- a/admin/src/views/business/areas.vue
+++ b/admin/src/views/business/areas.vue
@@ -17,8 +17,11 @@
@selection-change="handleSelectionChange"
>
<el-table-column prop="name" label="鍦板尯鍚嶇О" min-width="100px"></el-table-column>
+ <el-table-column prop="code" label="琛屾斂鍖轰唬鐮�" align="center" min-width="140px"></el-table-column>
<el-table-column prop="createDate" label="鍒涘缓鏃堕棿" align="center" min-width="140px"></el-table-column>
+<!--
<el-table-column prop="sortnum" label="鎺掑簭鐮�" align="center" min-width="140px"></el-table-column>
+-->
<el-table-column
v-if="containPermissions(['business:areas:update', 'business:areas:create', 'business:areas:delete'])"
label="鎿嶄綔"
diff --git a/admin/src/views/contract/components/contractDetail.vue b/admin/src/views/contract/components/contractDetail.vue
index a9c43db..3b49554 100644
--- a/admin/src/views/contract/components/contractDetail.vue
+++ b/admin/src/views/contract/components/contractDetail.vue
@@ -235,7 +235,7 @@
label="璐﹀崟鏉ユ簮">
<template slot-scope="{row}">
<span v-if="row.type === 0">鍚堝悓璐﹀崟</span>
- <span v-if="row.type === 1">鑷缓璐﹀崟</span>
+ <span v-else>鑷缓璐﹀崟</span>
</template>
</el-table-column>
<el-table-column
@@ -345,7 +345,7 @@
page: 1,
total: 0,
tableData: [],
-
+
loading: false
}
},
diff --git a/admin/src/views/contract/components/contractEdit.vue b/admin/src/views/contract/components/contractEdit.vue
index a441200..84a9fe8 100644
--- a/admin/src/views/contract/components/contractEdit.vue
+++ b/admin/src/views/contract/components/contractEdit.vue
@@ -1,12 +1,6 @@
<template>
- <GlobalWindow
- width="100%"
- :title="title"
- :withFooter="false"
- :visible.sync="visible"
- :confirm-working="isWorking"
- @confirm="confirm"
- @close="close">
+ <GlobalWindow width="100%" :title="title" :withFooter="false" :visible.sync="visible" :confirm-working="isWorking"
+ @confirm="confirm" @close="close">
<div class="tabs fixed">
<div class="tab" :class="{ active: activeTabs === 0 }">1銆佸熀鏈俊鎭�</div>
<div class="tab" :class="{ active: activeTabs === 1 }">2銆佽垂鐢ㄦ潯娆�</div>
@@ -19,7 +13,8 @@
<div class="list">
<el-form-item label="鍚堝悓绫诲瀷" prop="type">
<el-select v-model="form.type" placeholder="璇烽�夋嫨" @change="changeType">
- <el-option v-for="(item, index) in types" :key="index" :value="item.value" :label="item.name"></el-option>
+ <el-option v-for="(item, index) in types" :key="index" :value="item.value"
+ :label="item.name"></el-option>
</el-select>
</el-form-item>
<el-form-item label="鍚堝悓缂栧彿" prop="code">
@@ -27,21 +22,26 @@
</el-form-item>
<el-form-item label="缁忓姙浜�" prop="userId">
<el-select v-model="form.userId" filterable placeholder="璇烽�夋嫨">
- <el-option v-for="(item, index) in agentList" :key="index" :value="item.id" :label="item.realname"></el-option>
+ <el-option v-for="(item, index) in agentList" :key="index" :value="item.id"
+ :label="item.realname"></el-option>
</el-select>
</el-form-item>
<el-form-item label="鍚堝悓绛捐鏃ユ湡" prop="signDate">
- <el-date-picker type="date" v-model="form.signDate" value-format="yyyy-MM-dd" :clearable="false" placeholder="璇烽�夋嫨" />
+ <el-date-picker type="date" v-model="form.signDate" value-format="yyyy-MM-dd" :clearable="false"
+ placeholder="璇烽�夋嫨" />
</el-form-item>
<el-form-item label="鍚堝悓寮�濮嬫棩鏈�" prop="startDate">
- <el-date-picker type="date" v-model="form.startDate" @change="getHouseData" :clearable="false" value-format="yyyy-MM-dd" placeholder="璇烽�夋嫨" />
+ <el-date-picker type="date" v-model="form.startDate" @change="getHouseData" :clearable="false"
+ value-format="yyyy-MM-dd" placeholder="璇烽�夋嫨" />
</el-form-item>
<el-form-item label="鍚堝悓缁撴潫鏃ユ湡" prop="endDate">
- <el-date-picker type="date" v-model="form.endDate" @change="getHouseData" :clearable="false" value-format="yyyy-MM-dd" placeholder="璇烽�夋嫨" />
+ <el-date-picker type="date" v-model="form.endDate" @change="getHouseData" :clearable="false"
+ value-format="yyyy-MM-dd" placeholder="璇烽�夋嫨" />
</el-form-item>
<el-form-item label="褰掑睘椤圭洰" prop="projectId">
<el-select v-model="form.projectId" @change="getHouseTree" placeholder="璇烽�夋嫨">
- <el-option v-for="(item, index) in projectList" :key="index" :value="item.id" :label="item.name"></el-option>
+ <el-option v-for="(item, index) in projectList" :key="index" :value="item.id"
+ :label="item.name"></el-option>
</el-select>
</el-form-item>
<el-form-item label="缁撴灉鍙栨暣(鍥涜垗浜斿叆)" prop="roundedUp">
@@ -52,7 +52,8 @@
</el-form-item>
<el-form-item label="鎵�灞炲叕鍙�" prop="companyId">
<el-select v-model="form.companyId" placeholder="璇烽�夋嫨">
- <el-option v-for="(item, index) in comparyList" :key="index" :value="item.id" :label="item.name"></el-option>
+ <el-option v-for="(item, index) in comparyList" :key="index" :value="item.id"
+ :label="item.name"></el-option>
</el-select>
</el-form-item>
</div>
@@ -65,24 +66,21 @@
</el-form-item>
<el-form-item label="鑱旂郴浜�" prop="memberId">
<el-select v-model="form.memberId" placeholder="璇烽�夋嫨">
- <el-option v-for="(item, index) in contactsList" :key="index" :value="item.id" :label="item.name"></el-option>
+ <el-option v-for="(item, index) in contactsList" :key="index" :value="item.id"
+ :label="item.name"></el-option>
</el-select>
-<!-- <el-input v-model="form.memberName" readonly placeholder="璇风偣鍑婚�夋嫨绉熷" />-->
+ <!-- <el-input v-model="form.memberName" readonly placeholder="璇风偣鍑婚�夋嫨绉熷" />-->
</el-form-item>
</div>
</el-form>
</div>
<div class="main_house">
<div class="title">璇烽�夋嫨鎴挎簮</div>
- <el-tree
- :data="houseList"
- show-checkbox
- node-key="idd"
- @check="checkHouseRoom"
- :default-expanded-keys="ids"
- :default-checked-keys="ids"
- :props="{ children: 'projectDataVOList', label: 'name' }">
- <span class="custom-tree-node" style="width: 100%; display: flex; align-items: center; justify-content: space-between;" slot-scope="{ node, data }">
+ <el-tree :data="houseList" show-checkbox node-key="idd" @check="checkHouseRoom" :default-expanded-keys="ids"
+ :default-checked-keys="ids" :props="{ children: 'projectDataVOList', label: 'name' }">
+ <span class="custom-tree-node"
+ style="width: 100%; display: flex; align-items: center; justify-content: space-between;"
+ slot-scope="{ node, data }">
<span>{{ data.name }}</span>
<span style="color: #2080f7;" v-if="data.lv === 3">
{{ data.area }}銕�
@@ -113,8 +111,12 @@
</div>
<div v-show="activeTabs === 1">
<div class="tabs cost_tabs">
- <div class="tab" :class="{ active: cactiveTabs === 0 }" @click="ctabsClick(0)" v-if="[0,2].includes(form.type)">绉熻祦鏉℃</div>
- <div class="tab" :class="{ active: cactiveTabs === 1 }" @click="ctabsClick(1)" v-if="[0,1].includes(form.type)">鐗╀笟鏉℃</div>
+ <div class="tab" :class="{ active: cactiveTabs === 0 }" @click="ctabsClick(0)" v-if="[0, 2].includes(form.type)">
+ 绉熻祦鏉℃
+ </div>
+ <div class="tab" :class="{ active: cactiveTabs === 1 }" @click="ctabsClick(1)" v-if="[0, 1].includes(form.type)">
+ 鐗╀笟鏉℃
+ </div>
</div>
<!-- 绉熻祦鏉℃ -->
<div v-show="cactiveTabs === 0">
@@ -128,7 +130,8 @@
</el-form-item>
<el-form-item label="浠樻鏂瑰紡" prop="zlPayType">
<el-select v-model="form.zlPayType" @change="changePayType" placeholder="璇烽�夋嫨">
- <el-option v-for="(item, index) in payMethods" :key="index" :value="item.value" :label="item.name"></el-option>
+ <el-option v-for="(item, index) in payMethods" :key="index" :value="item.value"
+ :label="item.name"></el-option>
</el-select>
</el-form-item>
<el-form-item label="鍏嶇鏈�" prop="zlDate">
@@ -141,18 +144,22 @@
<el-button type="text" size="medium" @click="addZl">澧炲姞</el-button>
</div>
<div class="list">
- <div style="width: 100%; display: flex; flex-wrap: wrap;" v-for="(zlDetailList, index) in form.zlDetailList" :key="index">
+ <div style="width: 100%; display: flex; flex-wrap: wrap;"
+ v-for="(zlDetailList, index) in form.zlDetailList" :key="index">
<el-form-item label="璧峰鏃ユ湡" :prop="'zlDetailList.' + index + '.time'" :rules="{
required: true, message: '璇烽�夋嫨', trigger: 'blur'
}">
- <el-date-picker type="daterange" v-model="zlDetailList.time" @change="getDate1($event, index)" value-format="yyyy-MM-dd" placeholder="璇烽�夋嫨" />
+ <el-date-picker type="daterange" v-model="zlDetailList.time" @change="getDate1($event, index)"
+ value-format="yyyy-MM-dd" placeholder="璇烽�夋嫨" />
</el-form-item>
<el-form-item label="鍚堝悓鍗曚环" :prop="'zlDetailList.' + index + '.price'" :rules="{
required: true, message: '璇疯緭鍏�', trigger: 'blur'
}">
<el-input placeholder="璇疯緭鍏�" v-model="zlDetailList.price" @input="clearzl" class="input-with-select">
- <el-select v-model="zlDetailList.circleType" @change="clearzl" style="width: 150px;" slot="append" placeholder="璇烽�夋嫨">
- <el-option v-for="(item, index) in unitOps" :key="index" :value="item.value" :label="item.name"></el-option>
+ <el-select v-model="zlDetailList.circleType" @change="clearzl" style="width: 150px;" slot="append"
+ placeholder="璇烽�夋嫨">
+ <el-option v-for="(item, index) in unitOps" :key="index" :value="item.value"
+ :label="item.name"></el-option>
</el-select>
</el-input>
</el-form-item>
@@ -161,7 +168,8 @@
}">
<div style="display: flex; align-items: center; justify-content: space-between;">
<el-input v-model="zlDetailList.advanceDays" @input="clearzl" placeholder="璇疯緭鍏�" v-trim />
- <el-link :underline="false" type="danger" @click="deleZl(index)" style="margin-left: 20px; flex-shrink: 0;">鍒犻櫎</el-link>
+ <el-link :underline="false" type="danger" @click="deleZl(index)"
+ style="margin-left: 20px; flex-shrink: 0;">鍒犻櫎</el-link>
</div>
</el-form-item>
</div>
@@ -185,24 +193,24 @@
</el-table-column>
<el-table-column label="鏈熸暟" align="center" show-overflow-tooltip>
<template slot-scope="{row}">
- <el-tag type="success" v-if="row.sortnum > 0">{{row.sortnum}}</el-tag>
+ <el-tag type="success" v-if="row.sortnum > 0">{{ row.sortnum }}</el-tag>
</template>
</el-table-column>
<el-table-column label="鍖洪棿" align="center" show-overflow-tooltip>
<template slot-scope="{row}">
- {{row.startDate}} ~ {{row.endDate}}
+ {{ row.startDate }} ~ {{ row.endDate }}
</template>
</el-table-column>
<el-table-column prop="planPayDate" label="浠樻鏃�" align="center" show-overflow-tooltip />
<el-table-column label="搴旀敹" align="center" show-overflow-tooltip>
<template slot-scope="{row}">
- {{row.receivableFee}}鍏�
+ {{ row.receivableFee }}鍏�
</template>
</el-table-column>
</el-table>
<div class="total">
<span>鎬昏</span>
- <div>璐圭敤搴旀敹鎬昏锛歿{zlPrice}}鍏冿紝鎶奸噾搴旀敹鎬昏锛歿{form.zlDeposit}}鍏�</div>
+ <div>璐圭敤搴旀敹鎬昏锛歿{ zlPrice }}鍏冿紝鎶奸噾搴旀敹鎬昏锛歿{ form.zlDeposit }}鍏�</div>
</div>
</div>
<!-- 鐗╀笟鏉℃ -->
@@ -217,7 +225,8 @@
</el-form-item>
<el-form-item label="浠樻鏂瑰紡" prop="wyPayType">
<el-select v-model="form.wyPayType" @change="changePayType1" placeholder="璇烽�夋嫨">
- <el-option v-for="(item, index) in payMethods" :key="index" :value="item.value" :label="item.name"></el-option>
+ <el-option v-for="(item, index) in payMethods" :key="index" :value="item.value"
+ :label="item.name"></el-option>
</el-select>
</el-form-item>
<el-form-item label="鍏嶇鏈�" prop="wyDate">
@@ -230,18 +239,22 @@
<el-button type="text" size="medium" @click="addWy">澧炲姞</el-button>
</div>
<div class="list">
- <div style="width: 100%; display: flex; flex-wrap: wrap;" v-for="(wyDetailList, index) in form.wyDetailList" :key="index">
+ <div style="width: 100%; display: flex; flex-wrap: wrap;"
+ v-for="(wyDetailList, index) in form.wyDetailList" :key="index">
<el-form-item label="璧峰鏃ユ湡" :prop="'wyDetailList.' + index + '.time'" :rules="{
required: true, message: '璇疯緭鍏�', trigger: 'blur'
}">
- <el-date-picker type="daterange" v-model="wyDetailList.time" @change="getDate2($event, index)" value-format="yyyy-MM-dd" placeholder="璇烽�夋嫨" />
+ <el-date-picker type="daterange" v-model="wyDetailList.time" @change="getDate2($event, index)"
+ value-format="yyyy-MM-dd" placeholder="璇烽�夋嫨" />
</el-form-item>
<el-form-item label="鍚堝悓鍗曚环" :prop="'wyDetailList.' + index + '.price'" :rules="{
required: true, message: '璇疯緭鍏�', trigger: 'blur'
}">
<el-input placeholder="璇疯緭鍏�" @input="clearwy" v-model="wyDetailList.price">
- <el-select v-model="wyDetailList.circleType" @change="clearwy" style="width: 150px;" slot="append" placeholder="璇烽�夋嫨">
- <el-option v-for="(item, index) in unitOps1" :key="index" :value="item.value" :label="item.name"></el-option>
+ <el-select v-model="wyDetailList.circleType" @change="clearwy" style="width: 150px;" slot="append"
+ placeholder="璇烽�夋嫨">
+ <el-option v-for="(item, index) in unitOps1" :key="index" :value="item.value"
+ :label="item.name"></el-option>
</el-select>
</el-input>
</el-form-item>
@@ -250,7 +263,8 @@
}">
<div style="display: flex; align-items: center; justify-content: space-between;">
<el-input v-model="wyDetailList.advanceDays" @input="clearwy" placeholder="璇疯緭鍏�" v-trim />
- <el-link :underline="false" type="danger" @click="deleWy(index)" style="margin-left: 20px; flex-shrink: 0;">鍒犻櫎</el-link>
+ <el-link :underline="false" type="danger" @click="deleWy(index)"
+ style="margin-left: 20px; flex-shrink: 0;">鍒犻櫎</el-link>
</div>
</el-form-item>
</div>
@@ -274,32 +288,33 @@
</el-table-column>
<el-table-column label="鏈熸暟" align="center" show-overflow-tooltip>
<template slot-scope="{row}">
- <el-tag type="success" v-if="row.sortnum > 0">{{row.sortnum}}</el-tag>
+ <el-tag type="success" v-if="row.sortnum > 0">{{ row.sortnum }}</el-tag>
</template>
</el-table-column>
<el-table-column label="鍖洪棿" align="center" show-overflow-tooltip>
<template slot-scope="{row}">
- {{row.startDate}} ~ {{row.endDate}}
+ {{ row.startDate }} ~ {{ row.endDate }}
</template>
</el-table-column>
<el-table-column prop="planPayDate" label="浠樻鏃�" align="center" show-overflow-tooltip />
<el-table-column prop="receivableFee" label="搴旀敹" align="center" show-overflow-tooltip>
<template slot-scope="{row}">
- {{row.receivableFee}}鍏�
+ {{ row.receivableFee }}鍏�
</template>
</el-table-column>
</el-table>
<div class="total">
<span>鎬昏</span>
- <div>璐圭敤搴旀敹鎬昏锛歿{wyPrice}}鍏冿紝鎶奸噾搴旀敹鎬昏锛歿{form.wyDeposit}}鍏�</div>
+ <div>璐圭敤搴旀敹鎬昏锛歿{ wyPrice }}鍏冿紝鎶奸噾搴旀敹鎬昏锛歿{ form.wyDeposit }}鍏�</div>
</div>
</div>
</div>
<div class="window__footer">
<slot name="footer">
- <el-button @click="confirm" :loading="confirmWorking" type="primary">{{activeTabs === 0 ? '涓嬩竴姝�' : '鎻愪氦'}}</el-button>
+ <el-button @click="confirm" :loading="confirmWorking" type="primary">{{ activeTabs === 0 ? '涓嬩竴姝�' :
+ '鎻愪氦'}}</el-button>
<slot name="btns" />
- <el-button @click="close">{{activeTabs === 0 ? '杩斿洖' : '涓婁竴姝�'}}</el-button>
+ <el-button @click="close">{{ activeTabs === 0 ? '杩斿洖' : '涓婁竴姝�' }}</el-button>
</slot>
</div>
<!-- 閫夋嫨绉熷 -->
@@ -316,7 +331,7 @@
import { ywList } from '@/api/customer'
import { getUserList } from '@/api/system/user'
import { getProjectList, tree } from '@/api/project/ywProject'
-import { companyList } from '@/api/company'
+import {companyListConstract as companyList } from '@/api/company'
import { Message, Loading } from 'element-ui'
import { mapState } from 'vuex'
export default {
@@ -328,7 +343,7 @@
computed: {
...mapState(['userInfo'])
},
- data () {
+ data() {
return {
title: '鍒涘缓鍚堝悓',
activeTabs: 0,
@@ -347,7 +362,7 @@
memberId: '',
memberName: '',
fileList: [],
-
+
zlDeposit: '',
zlPayType: '',
zlFreeStartDate: '',
@@ -363,7 +378,8 @@
advanceDays: ''
}
],
-
+
+
wyDeposit: '',
wyPayType: '',
wyFreeStartDate: '',
@@ -379,17 +395,17 @@
advanceDays: ''
}
],
-
+
roomIds: []
},
-
+
ids: [],
-
+
zlList: [],
wyList: [],
-
+
rules,
-
+
contactsList: [],
loadingInstance: null,
@@ -432,12 +448,13 @@
{ name: '鍏�/m虏路骞�', value: 2 },
{ name: '鍏�/鍦�', value: 6 },
],
-
+
+
houseLvThree: []
}
},
methods: {
- open (title, target) {
+ open(title, target) {
this.title = title
this.ids = []
this.houseList = []
@@ -486,7 +503,7 @@
// this.getHouseTree()
})
},
- changePayType (e) {
+ changePayType(e) {
if (e === 0) {
this.unitOps = [
{ name: '鍏�/m虏路澶�', value: 0 },
@@ -514,7 +531,7 @@
}
this.clearzl()
},
- changePayType1 (e) {
+ changePayType1(e) {
if (e === 0) {
this.unitOps1 = [
{ name: '鍏�/m虏路澶�', value: 0 },
@@ -543,14 +560,14 @@
this.clearwy()
},
// 鑾峰彇鑱旂郴浜�
- getYwList () {
+ getYwList() {
ywList({
customerId: this.form.renterId
}).then(res => {
this.contactsList = res
})
},
- getHouseData () {
+ getHouseData() {
if (this.form.startDate && this.form.endDate) {
this.getHouseTree()
if (this.form.zlDetailList.length === 1) {
@@ -565,33 +582,33 @@
}
}
},
- changeType (e) {
+ changeType(e) {
if (e === 0 || e === 2) {
this.cactiveTabs = 0
} else if (e === 0 || e === 1) {
this.cactiveTabs = 1
}
},
- getDayTime (num) {
- const today = new Date();
- const year = today.getFullYear();
- const month = today.getMonth() + 1;
- const day = today.getDate();
+ getDayTime(num) {
+ const today = new Date()
+ const year = today.getFullYear()
+ const month = today.getMonth() + 1
+ const day = today.getDate()
if (!num) {
- return `${year}-${month < 10 ? '0' + month : month}-${day < 10 ? '0' + day : day}`;
+ return `${year}-${month < 10 ? '0' + month : month}-${day < 10 ? '0' + day : day}`
} else {
- return `${year + 1}-${month < 10 ? '0' + month : month}-${day < 10 ? '0' + day - 1 : day - 1}`;
+ return `${year + 1}-${month < 10 ? '0' + month : month}-${day < 10 ? '0' + day - 1 : day - 1}`
}
},
- clearzl () {
+ clearzl() {
this.zlList = []
this.zlPrice = ''
},
- clearwy () {
+ clearwy() {
this.wyList = []
this.wyPrice = ''
},
- confirm () {
+ confirm() {
var that = this
if (this.activeTabs === 0) {
this.$refs.form.validate((valid) => {
@@ -633,7 +650,7 @@
}
}
},
- submit () {
+ submit() {
// 璋冪敤鏂板缓鎺ュ彛
this.isWorking = true
create({ ...this.form })
@@ -646,26 +663,26 @@
this.isWorking = false
})
},
- getDate1 (e, index) {
+ getDate1(e, index) {
this.form.zlDetailList[index].startDate = e[0]
this.form.zlDetailList[index].endDate = e[1]
this.clearzl()
},
- getDate2 (e, index) {
+ getDate2(e, index) {
this.form.wyDetailList[index].startDate = e[0]
this.form.wyDetailList[index].endDate = e[1]
this.clearwy()
},
- checkHouseRoom (a, b) {
+ checkHouseRoom(a, b) {
this.ids = b.checkedKeys
let arr = b.checkedKeys.map(item => {
if (item.split('-')[0] == 3) {
return Number(item.split('-')[1])
}
})
- this.form.roomIds = arr.filter(item => item !== undefined);
+ this.form.roomIds = arr.filter(item => item !== undefined)
},
- getHouseTree () {
+ getHouseTree() {
tree({
startDate: this.form.startDate,
endDate: this.form.endDate,
@@ -681,14 +698,14 @@
},
addParamToArray(arr) {
for (let i = 0; i < arr.length; i++) {
- const currentItem = arr[i].projectDataVOList;
+ const currentItem = arr[i].projectDataVOList
arr[i].idd = arr[i].lv + '-' + arr[i].id
if (currentItem.length > 0) {
- this.addParamToArray(currentItem);
+ this.addParamToArray(currentItem)
}
}
},
- generateZL () {
+ generateZL() {
getBillList({ ...this.form, billType: 0 })
.then(res => {
let zlPrice = 0
@@ -703,7 +720,7 @@
this.zlList = arr
})
},
- generateWY () {
+ generateWY() {
getBillList({ ...this.form, billType: 1 })
.then(res => {
this.wy = true
@@ -719,7 +736,7 @@
this.wyList = arr
})
},
- addZl () {
+ addZl() {
this.form.zlDetailList.push({
circleType: 0,
startDate: this.form.startDate,
@@ -729,7 +746,7 @@
advanceDays: ''
})
},
- addWy () {
+ addWy() {
this.form.wyDetailList.push({
circleType: 0,
startDate: this.form.startDate,
@@ -749,62 +766,66 @@
this.form.wyDetailList.splice(index, 1)
this.clearwy()
},
- getZLDate (e) {
+ getZLDate(e) {
this.form.zlFreeStartDate = e[0]
this.form.zlFreeEndDate = e[1]
this.clearzl()
},
- getWYDate (e) {
+ getWYDate(e) {
this.form.wyFreeStartDate = e[0]
this.form.wyFreeEndDate = e[1]
this.clearwy()
},
- getTenant (row) {
+ getTenant(row) {
this.form.renterId = row.id
this.form.renterName = row.name
this.form.memberId = ''
this.form.memberName = ''
this.getYwList()
},
- dele (imgaddr) {
+ dele(imgaddr) {
this.form.fileList.forEach((item, index) => {
if (imgaddr === item.imgaddr) {
this.form.fileList.splice(index, 1)
}
})
},
- getUser () {
+ getUser() {
getUserList({})
.then(res => {
this.agentList = res
})
},
- getProject () {
+ getProject() {
getProjectList({})
.then(res => {
- this.projectList = res
+ this.projectList = res || []
+ if (this.projectList.length > 0) {
+ this.$set(this.form, 'projectId', this.projectList[0].id)
+ this.getHouseTree()
+ }
})
},
- getCompany () {
+ getCompany() {
companyList({ type: 2 })
.then(res => {
this.comparyList = res
this.form.companyId = res[0].id
})
},
- tabsClick (val) {
+ tabsClick(val) {
this.activeTabs = val
},
- ctabsClick (val) {
+ ctabsClick(val) {
this.cactiveTabs = val
},
- handleRent () {
+ handleRent() {
this.$refs.MemberSearchRef.open()
},
- houseChange (e) {
+ houseChange(e) {
console.log(e)
},
- beforeUpload (file) {
+ beforeUpload(file) {
this.loadingInstance = Loading.service({
lock: true,
text: 'Loading',
@@ -812,14 +833,14 @@
background: 'rgba(0, 0, 0, 0.7)'
})
},
- uploadError () {
+ uploadError() {
this.$nextTick(() => { // 浠ユ湇鍔$殑鏂瑰紡璋冪敤鐨� Loading 闇�瑕佸紓姝ュ叧闂�
if (this.loadingInstance) {
this.loadingInstance.close()
}
})
},
- getDay () {
+ getDay() {
const now = new Date()
const year = now.getFullYear()
const month = now.getMonth() + 1 // 鍔�1浣垮叾浠�1寮�濮�
@@ -827,9 +848,9 @@
const hours = now.getHours()
const minutes = now.getMinutes()
const seconds = now.getSeconds()
- return `${year}-${month.toString().padStart(2, '0')}-${day.toString().padStart(2, '0')} ${hours.toString().padStart(2, '0')}:${minutes.toString().padStart(2, '0')}:${seconds.toString().padStart(2, '0')}`;
+ return `${year}-${month.toString().padStart(2, '0')}-${day.toString().padStart(2, '0')} ${hours.toString().padStart(2, '0')}:${minutes.toString().padStart(2, '0')}:${seconds.toString().padStart(2, '0')}`
},
- uploadAvatarSuccess (file) {
+ uploadAvatarSuccess(file) {
this.$nextTick(() => {
if (this.loadingInstance) {
this.loadingInstance.close()
@@ -838,7 +859,7 @@
const item = file.data[0]
this.form.fileList.push({ ...item, fileurl: item.imgaddr, name: item.originname, userName: this.userInfo.realname, createTime: this.getDay() })
},
- close () {
+ close() {
if (this.activeTabs === 0) {
this.$emit('close')
this.visible = false
@@ -854,6 +875,7 @@
<style lang="scss" scoped>
@import '@/assets/style/variables.scss';
+
.fixed {
background: #ffffff;
position: sticky;
@@ -976,6 +998,7 @@
display: flex;
align-items: center;
justify-content: space-between;
+
span {
font-weight: 500;
font-size: 14px;
diff --git a/admin/src/views/project/components/OperaYwBuildingWindow.vue b/admin/src/views/project/components/OperaYwBuildingWindow.vue
index 83fecbe..f1387b7 100644
--- a/admin/src/views/project/components/OperaYwBuildingWindow.vue
+++ b/admin/src/views/project/components/OperaYwBuildingWindow.vue
@@ -89,7 +89,7 @@
})
},
methods: {
- open (title, target,type) {
+ open(title, target, type) {
this.title = title
this.visible = true
this.getProject()
@@ -98,14 +98,14 @@
this.$nextTick(() => {
this.$refs.form.resetFields()
this.form[this.configData['field.id']] = null
- this.form.type=type
+ this.form.type = type
})
return
}
// 缂栬緫
this.$nextTick(() => {
- console.log('----');
-
+ console.log('----')
+
this.getDetail(target.id)
})
},
@@ -117,6 +117,10 @@
getProject() {
getProjectList({}).then(res => {
this.projectList = res || []
+ if (this.projectList.length > 0) {
+ this.$set(this.form, 'projectId', this.projectList[0].id)
+ // this.changeProject(this.projectList[0].id)
+ }
})
}
}
diff --git a/admin/src/views/project/components/OperaYwRoomWindow.vue b/admin/src/views/project/components/OperaYwRoomWindow.vue
index dc0c159..1ed0a57 100644
--- a/admin/src/views/project/components/OperaYwRoomWindow.vue
+++ b/admin/src/views/project/components/OperaYwRoomWindow.vue
@@ -101,6 +101,8 @@
this.title = title
this.visible = true
this.getProject()
+ this.buildList = []
+ this.floorList = []
// 鏂板缓缁勭粐
if (target == null) {
this.$nextTick(() => {
@@ -115,8 +117,8 @@
this.getDetail(target.id)
})
},
- confirm () {
- if(!this.form.feeArea){
+ confirm() {
+ if (!this.form.feeArea) {
this.form.feeArea = this.form.rentArea
}
if (this.form.id == null || this.form.id === '') {
@@ -143,6 +145,10 @@
getProject() {
getProjectList({}).then(res => {
this.projectList = res || []
+ if (this.projectList.length > 0) {
+ this.$set(this.form, 'projectId', this.projectList[0].id)
+ this.changeProject(this.projectList[0].id)
+ }
})
},
@@ -150,6 +156,9 @@
this.form.buildingId = ''
getBuildList({ projectId: e }).then(res => {
this.buildList = res || []
+ // if(this.buildList.length > 0){
+ // this.form.buildingId = this.buildList[0].id
+ // }
})
},
changeBuild(e) {
diff --git a/admin/src/views/workorder/components/OperaYwWorkorderWindow.vue b/admin/src/views/workorder/components/OperaYwWorkorderWindow.vue
index 4f8ce99..c97fbf4 100644
--- a/admin/src/views/workorder/components/OperaYwWorkorderWindow.vue
+++ b/admin/src/views/workorder/components/OperaYwWorkorderWindow.vue
@@ -140,7 +140,7 @@
this.visible = true
this.getProject()
this.getCate()
- // 鏂板缓
+ // 鏂板缓
if (target == null) {
this.form = {
id: null,
@@ -192,7 +192,11 @@
},
getProject() {
getProjectList({}).then(res => {
- this.projectList = res
+ this.projectList = res || []
+ if(this.projectList.length > 0){
+ this.$set(this.form, 'projectId', this.projectList[0].id)
+ this.getBuild(this.projectList[0].id)
+ }
})
},
getBuild(projectId) {
@@ -200,7 +204,11 @@
this.$set(this.form, 'floorId', '')
this.$set(this.form, 'roomId', '')
getBuildList({ projectId }).then(res => {
- this.buildList = res
+ this.buildList = res || []
+ // if(projectId && this.buildList.length > 0){
+ // this.$set(this.form, 'buildingId', this.buildList[0].id)
+ // this.changeBuild(this.buildList[0].id)
+ // }
})
},
changeBuild(e) {
diff --git a/admin/src/views/workorder/components/detail.vue b/admin/src/views/workorder/components/detail.vue
index a6908d4..f2e7d5f 100644
--- a/admin/src/views/workorder/components/detail.vue
+++ b/admin/src/views/workorder/components/detail.vue
@@ -49,11 +49,21 @@
<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" />
- <el-image v-else-if="item.fileurlFull" style="width:80px; height: 80px" :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-if="item.type == 0" style="width:80px; height: 80px" :src="item.fileurlFull"
:preview-src-list="[item.fileurlFull]">
</el-image>
+ </div>
+ </div>
+ </div>
+ <div v-if="info.fileList && info.fileList.length > 0 && info.fileList.filter(i => i.type == 1).length > 0"
+ class="item max">
+ <div class="la">闂瑙嗛</div>
+ <div class="value">
+ <div v-for="item in info.fileList" :key="item.id" style="display: inline;margin-right: 20px">
+ <video v-if="item.type == 1" ref="videoRef" controls preload="auto"
+ style="width: 240px;height: 160px;object-fit: contain;" :src="item.fileurlFull" />
</div>
</div>
</div>
@@ -61,7 +71,7 @@
<div class="side">
<div class="title">宸ュ崟娴佽浆璁板綍</div>
<div class="flow_list">
- <div class="item" v-for="item,i in info.logList">
+ <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>
@@ -76,7 +86,9 @@
</div>
</div>
</div>
- <div class="title">{{ info.dealStatus == 0 || info.dealStatus == 1 ? '宸ュ崟澶勭悊' : '澶勭悊缁撴灉' }}</div>
+ <div class="title"
+ v-if="info.dealStatus == 2 || info.dealStatus == 0 || (info.dealStatus == 1 && info.dealUserId === userInfo.id)">
+ {{ info.dealStatus == 0 || info.dealStatus == 1 ? '宸ュ崟澶勭悊' : '澶勭悊缁撴灉' }}</div>
<el-form :model="param" ref="form" :rules="rules">
<template v-if="info.dealStatus == 0 || info.dealStatus == null">
<el-form-item label="澶勭悊鏂瑰紡" prop="dealType">
@@ -84,7 +96,7 @@
<el-radio v-model="param.dealType" :label="0">鎸囨淳</el-radio>
<el-radio v-model="param.dealType" :label="1">鐩存帴鍥炲</el-radio>
</div>
- </el-form-item>
+ </el-form-item>
<el-form-item v-if="param.dealType == 0" label="鎸囨淳缁�" prop="dealUserId">
<el-select v-model="param.dealUserId" clearable filterable class="w400">
<el-option v-for="item in staffList" :label="item.realname" :value="item.id"></el-option>
@@ -104,8 +116,8 @@
</el-form-item>
<el-form-item label="鐜板満鍥剧墖">
<div class="file_list">
- <el-upload class="avatar-uploader" :data="uploadData" :auto-upload="true"
- :action="uploadImgUrl" :show-file-list="false" :on-success="uploadAvatarSuccess" :on-error="uploadError"
+ <el-upload class="avatar-uploader" :data="uploadData" :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>
@@ -223,8 +235,8 @@
const { id } = this
detailById(id).then(res => {
this.info = res
- if(this.info.dealStatus == 1){
- this.$set(this.param, 'getDate',dayjs().format('YYYY-MM-DD HH:mm:ss') )
+ if (this.info.dealStatus == 1) {
+ this.$set(this.param, 'getDate', dayjs().format('YYYY-MM-DD HH:mm:ss'))
}
})
},
@@ -316,13 +328,15 @@
}
.primaryColor {
- border: 1px solid rgba(63, 126, 239,.2);
- background-color: rgba(63, 126, 239,.2);
+ border: 1px solid rgba(63, 126, 239, .2);
+ background-color: rgba(63, 126, 239, .2);
}
- .green{
+
+ .green {
background-color: rgba(83, 183, 148, .2);
border: 1px solid rgba(83, 183, 148, .2);
}
+
.gray {
color: #333333;
background-color: rgba(128, 128, 128, .2);
@@ -352,7 +366,8 @@
width: 100%;
display: flex;
align-items: center;
- .la{
+
+ .la {
margin-bottom: 0;
width: 72px;
}
@@ -362,38 +377,47 @@
width: 100%;
}
}
- .main_content{
+
+ .main_content {
display: flex;
- .side{
+
+ .side {
width: 370px;
- .title{
+
+ .title {
font-size: 14px;
}
- .flow_list{
- .item{
+
+ .flow_list {
+ .item {
display: flex;
- .icon{
+
+ .icon {
width: 28px;
display: flex;
flex-direction: column;
align-items: center;
- .dian{
+
+ .dian {
width: 12px;
height: 12px;
border-radius: 50%;
background-color: #e89e42;
}
- .line{
+
+ .line {
width: 1px;
height: 100%;
background-color: #e89e42;
}
}
- .content{
+
+ .content {
font-size: 12px;
color: #999999;
padding-bottom: 12px;
- .name{
+
+ .name {
font-size: 13px;
color: #333333;
}
diff --git a/admin/src/views/workorder/workorderList.vue b/admin/src/views/workorder/workorderList.vue
index a2b0b1e..f3ad3de 100644
--- a/admin/src/views/workorder/workorderList.vue
+++ b/admin/src/views/workorder/workorderList.vue
@@ -103,7 +103,6 @@
showDetail: false,
searchForm: {
selDate: [],
- areaType: '',
areaIds: '',
projectId: '',
buildingId: '',
diff --git a/h5/pages/index.vue b/h5/pages/index.vue
index 9d3409d..81b4ef6 100644
--- a/h5/pages/index.vue
+++ b/h5/pages/index.vue
@@ -1,6 +1,6 @@
<template>
<view class="main_app">
- <view class="hone_name title">{{ userInfo.realname }}锛屾杩庣櫥褰�</view>
+ <view class="hone_name title">{{ userInfo.realname }}锛屾杩庣櫥褰曪綖</view>
<view class="home_con">
<image class="bg" src="@/static/home/home_bg.jpg" mode=""></image>
<view class="h1">闃滃畞鏂囦綋涓績</view>
@@ -24,14 +24,15 @@
</view>
</template>
-<script>
- import { logoutPost } from '@/api'
+<script>
+ import {
+ logoutPost
+ } from '@/api'
export default {
data() {
return {
userInfo: uni.getStorageSync('userInfo') || {},
- list1: [
- {
+ list1: [{
name: '鏂板宸ュ崟',
url: '/pages/workOrder/edit',
img: require('@/static/home/ic_xinzenggongdan@2x.png'),
@@ -74,12 +75,15 @@
url: item.url
})
},
- loginOut() {
- logoutPost()
- this.$store.commit('empty')
- uni.redirectTo({
- url: '/pages/login'
- })
+ loginOut() {
+ logoutPost().then(res => {
+ this.$store.commit('empty')
+ setTimeout(() => {
+ uni.redirectTo({
+ url: '/pages/login'
+ })
+ }, 300)
+ })
// window.location.href= 'https://zhcg.fnwtzx.com/fn_h5'
},
diff --git a/h5/pages/login.vue b/h5/pages/login.vue
index 81323ed..b742a89 100644
--- a/h5/pages/login.vue
+++ b/h5/pages/login.vue
@@ -45,7 +45,7 @@
code: ''
},
downTime: 0,
- code: ''
+ code: '111'
// code: ''
}
},
diff --git a/h5/pages/operation/device.vue b/h5/pages/operation/device.vue
index 9377ebb..414be7b 100644
--- a/h5/pages/operation/device.vue
+++ b/h5/pages/operation/device.vue
@@ -83,7 +83,8 @@
import {
uploadUrl,
ywDevicePost,
- ywDeviceCreate
+ ywDeviceCreate,
+ getPointRecordByCode
} from '@/api'
import dayjs from 'dayjs';
import {
@@ -122,7 +123,7 @@
},
handleP() {
const {
- param,
+ param,
fileList
} = this
ywDeviceCreate({
@@ -285,8 +286,19 @@
},
(decodeText, decodeResult) => {
if (decodeText) { //杩欓噷decodeText灏辨槸閫氳繃鎵弿浜岀淮鐮佸緱鍒扮殑鍐呭
- this.$set(this.param, 'deviceCode', decodeText)
- this.stopScan(); //鍏抽棴鎵爜鍔熻兘
+ this.$set(this.param, 'deviceCode', decodeText)
+ this.stopScan(); //鍏抽棴鎵爜鍔熻兘
+ getPointRecordByCode({
+ // taskId: this.id,
+ pointCode: decodeText
+ }).then(ress => {
+ if (ress.data) {
+ console.log('ress', ress.data);
+ } else {
+ this.showToast('鏈尮閰嶅埌宸℃鐐�,璇烽噸鏂版壂鎻�')
+ }
+ })
+
}
},
(err) => {
diff --git a/h5/pages/polling/detail.vue b/h5/pages/polling/detail.vue
index 383395d..45ad7fb 100644
--- a/h5/pages/polling/detail.vue
+++ b/h5/pages/polling/detail.vue
@@ -34,7 +34,10 @@
<view class="content">
<view class="head">
<view>{{item.pointName}}</view>
- <view class="status" :class="{ gray: item.status == 1 }">{{ item.status == 1 ? '宸插贰妫�' : '寰呭贰妫�' }}</view>
+ <view class="status" :class="{ gray: item.status == 1 }">
+ <image v-if="item.status == 1" src="@/static/plan_ic_finish@2x.png" class="icon" mode=""></image>
+ <text>{{ item.status == 1 ? '宸插贰妫�' : '寰呭贰妫�' }}</text>
+ </view>
</view>
<template v-if="item.status == 1">
<view class="line">
@@ -43,7 +46,10 @@
</view>
<view class="line">
<view class="la">宸℃鏃堕棿锛�</view>
- <view class="val">{{item.dealDate}}</view>
+ <view class="val">
+ <text>{{item.dealDate}}</text>
+ <text v-if="item.status == 1" class="detail">鏌ョ湅璇︽儏</text>
+ </view>
</view>
</template>
<view class="desc" v-else>{{item.content}}</view>
@@ -100,11 +106,11 @@
},
onLoad(option) {
this.id = option.id
+ // this.getDetail()
+ },
+ onShow() {
this.getDetail()
},
- // onShow() {
- // this.getDetail()
- // },
methods: {
openSc() {
this.isScaning = true;
@@ -164,7 +170,7 @@
this.info = res.data
let time = new Date(res.data.startDate).getTime()
console.log('res.data.startDate', new Date().getTime());
- this.flag = new Date().getTime() > time
+ this.flag = new Date().getTime() > time && (this.info.status == 0 || this.info.status == 1)
})
ywPatrolTaskRecord({
capacity: 999,
@@ -268,14 +274,15 @@
margin-bottom: 20rpx;
.la {
- color: #666666;
+ color: #666666;
+
}
}
.list {
- height: calc(100vh - 720rpx);
- overflow: auto;
-
+ height: calc(100vh - 490rpx);
+ overflow: auto;
+ padding-bottom: 160rpx;
.item {
width: 690rpx;
height: 188rpx;
@@ -288,7 +295,18 @@
margin-bottom: 20rpx;
.line {
- margin-bottom: 10rpx;
+ margin-bottom: 10rpx;
+ width: 100%;
+ .val{
+ display: flex;
+ justify-content: space-between;
+ align-items: center;
+ flex: 1;
+ .detail{
+ color: $primaryColor;
+ font-size: 26rpx;
+ }
+ }
}
.icon {
@@ -311,9 +329,19 @@
margin-bottom: 16rpx;
.status {
- offset-anchor: 28rpx;
+ font-size: 28rpx;
color: $primaryColor;
- font-weight: 400;
+ font-weight: 400;
+ display: flex;
+ align-items: center;
+ .icon{
+ width: 40rpx;
+ height: 40rpx;
+ // border-radius: 50%;
+ // overflow: hidden;
+ background: none;
+ }
+
}
.gray {
diff --git a/h5/pages/polling/point.vue b/h5/pages/polling/point.vue
index 4711fbc..1288d07 100644
--- a/h5/pages/polling/point.vue
+++ b/h5/pages/polling/point.vue
@@ -31,7 +31,7 @@
<video v-if="item.type == 1" :src="item.fileurlFull" :controls="false"></video>
</view>
</view>
- <view class="desc">{{ info.dealInfo }}</view>
+ <view v-if="info.dealInfo" class="desc">{{ info.dealInfo }}</view>
<view class="line line_s">
<view class="la">宸℃浜猴細</view>
<view class="val">{{ info.realname }}</view>
@@ -78,11 +78,12 @@
</view>
</view>
- <view class="label">澶勭悊璇存槑</view>
- <textarea v-model="handleParam.dealInfo" placeholder="璇峰~鍐欏鐞嗚鏄�" placeholder-class="placeholder9" />
+ <view class="label" style="margin-bottom: 10rpx;">澶勭悊璇存槑</view>
+ <textarea v-model="handleParam.dealInfo" :maxlength="-1" placeholder="璇峰~鍐欏鐞嗚鏄�"
+ placeholder-class="placeholder9" />
</view>
</view>
- <view class="sub_btn" @click="onSubmit">纭宸℃</view>
+ <view v-if="info.status == 0" class="sub_btn" @click="onSubmit">纭宸℃</view>
<!-- -->
<u-popup :show="showUpload" @close="showUpload = false" closeOnClickOverlay>
<view class="sel_upload_wrap">
@@ -149,34 +150,38 @@
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()
- })
+ patrolData({
+ ...handleParam,
+ multifileList: fileList,
+ id,
+ }).then(res => {
+ if (handleParam.dealStatus == 1) {
+ return uni.showModal({
+ title: '娓╅Θ鎻愮ず',
+ content: '宸℃缁撴灉寮傚父锛屾槸鍚﹀墠寰�鎻愪氦宸ュ崟锛�',
+ success: (res) => {
+ if (res.confirm) {
+ this.showToast('鎿嶄綔鎴愬姛')
+ setTimeout(() => {
+ uni.redirectTo({
+ url: '/pages/workOrder/edit'
+ })
+ }, 300)
+ }else{
+ this.showToast('鎿嶄綔鎴愬姛')
+ setTimeout(() => {
+ uni.navigateBack()
+ }, 300)
+ }
}
- }
- });
- } else {
- patrolData({
- ...handleParam,
- multifileList: fileList,
- id,
- }).then(res => {
+ });
+ } else {
this.showToast('鎿嶄綔鎴愬姛')
- uni.navigateBack()
- })
- }
-
+ setTimeout(() => {
+ uni.navigateBack()
+ }, 300)
+ }
+ })
},
getDetail() {
const {
@@ -360,10 +365,11 @@
}
.sub_btn {
- position: fixed;
- bottom: 68rpx;
- left: 40rpx;
+ // position: fixed;
+ // bottom: 68rpx;
+ // left: 40rpx;
width: 670rpx;
+ margin-top: 60rpx;
height: 88rpx;
background: $primaryColor;
box-shadow: 0rpx 8rpx 20rpx 0rpx rgba(0, 104, 255, 0.3);
@@ -417,7 +423,7 @@
textarea {
box-sizing: border-box;
width: 690rpx;
- min-height: 200rpx;
+ min-height: 140rpx;
background-color: #f7f7f7;
font-size: 28rpx;
color: #333333;
diff --git a/h5/pages/polling/task.vue b/h5/pages/polling/task.vue
index 6ba466e..0e72898 100644
--- a/h5/pages/polling/task.vue
+++ b/h5/pages/polling/task.vue
@@ -44,13 +44,17 @@
<view class="line" @click="itemClick(item)">鎵ц鏃堕棿锛歿{ item.startDate.slice(11, 16) }} 鑷� {{ item.endDate.slice(11, 16) }}</view>
<view class="line">
<view @click="itemClick(item)">瀹屾垚鎯呭喌锛歿{item.finishNum || 0}}/{{item.patrolNum}}</view>
- <view v-if="param.queryStatus == '0,1'" class="btn" @click="openSc(item)">
+ <view v-if="param.queryStatus == '0,1' && item.flag && (item.status == 0 || item.status == 1)" class="btn" @click="openSc(item)">
<image src="@/static/side/ic_saoma@2x.png" class="saoma" mode=""></image>
<view>鎵爜宸℃</view>
</view>
</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>
@@ -93,7 +97,9 @@
// activeItem: {}
};
},
- onLoad() {
+ onShow() {
+ this.page = 1
+ this.list = []
this.getList()
},
methods: {
@@ -184,7 +190,11 @@
page,
capacity: 10
}).then(res => {
- this.list = [...this.list, ...res.data.records]
+ this.list = [...this.list, ...res.data.records]
+ this.list.forEach(item => {
+ let time = new Date(item.startDate).getTime()
+ item.flag = new Date().getTime() > time
+ })
this.total = res.data.total
})
}
@@ -272,10 +282,11 @@
}
.scroll_Y {
- height: calc(100vh - 230rpx);
+ height: calc(100vh - 130rpx);
}
- .list {
+ .list {
+
.item {
display: flex;
// height: 290rpx;
diff --git a/h5/pages/workOrder/detail.vue b/h5/pages/workOrder/detail.vue
index f26e85c..c112a22 100644
--- a/h5/pages/workOrder/detail.vue
+++ b/h5/pages/workOrder/detail.vue
@@ -11,7 +11,12 @@
<view class="file_list">
<view class="file" v-for="(item,index) in info.fileList">
<image v-if="item.type == 0" :src="item.fileurlFull" mode="aspectFill"></image>
- <video v-if="item.type == 1" :src="item.fileurlFull" :controls="false"></video>
+ <!-- <video v-if="item.type == 1" :src="item.fileurlFull" :controls="false"></video> -->
+ <view v-if="item.type == 1" @click="videoClick(item)" class="video_wrap">
+ <video :src="item.fileurlFull" initial-time="0.01" :show-center-play-btn="false" :controls="false"
+ class="video" :enable-progress-gesture="false" autoplay muted />
+ <image src="@/static/play.png" class="play" mode=""></image>
+ </view>
</view>
</view>
<view class="content">
@@ -23,7 +28,7 @@
<view class="la">涓婃姤浜猴細</view>
<view class="val">{{ info.creatorName }}{{info.creatorCompany ? '-' + info.creatorCompany : ''}}</view>
</view>
- <view class="line" v-if="info.creatorPhone || info.creatorMobile">
+ <view class="line" v-if="info.creatorPhone || info.creatorMobile">
<view class="la">鑱旂郴鐢佃瘽锛�</view>
<view class="val">{{ info.creatorMobile || info.creatorPhone }}</view>
</view>
@@ -63,7 +68,7 @@
<image src="@/static/side/phoneed.png" class="icon"></image>
<text>涓婃姤浜�</text>
</view>
- <view class="btn active" @click="isShowHandle = true">鍘诲鐞�</view>
+ <view class="btn active" @click="handleOpen">鍘诲鐞�</view>
</view>
<!-- -->
<u-popup :show="showUpload" @close="showUpload = false" zIndex="10076" closeOnClickOverlay>
@@ -74,8 +79,8 @@
</u-popup>
<!-- -->
<!-- 宸ュ崟澶勭悊 -->
- <u-popup :show="isShowHandle" :round="10" :safeAreaInsetBottom="true" mode="bottom" closeable
- @close="isShowHandle = false">
+ <u-popup :show="isShowHandle" :round="10" :safeAreaInsetTop="true" :safeAreaInsetBottom="true" mode="bottom"
+ closeable @close="isShowHandle = false">
<view class="appr_modal">
<view class="title">宸ュ崟澶勭悊</view>
<view class="df_sb">
@@ -118,13 +123,18 @@
<u-datetime-picker :minDate="new Date().getTime()" :show="isShowHandleDate" @confirm="confirmHandleDate"
@cancel="isShowHandleDate = false" mode="datetime"></u-datetime-picker>
<!-- -->
+ <view v-if="videoPlay" class="video_app">
+ <video controls autoplay muted x5-video-player-type="h5" x5-video-player-fullscreen="true" id="myvideo"
+ :src="videoUrl" @fullscreenchange="screenChange"></video>
+ <view class="bg" @click="closeVideo"></view>
+ </view>
</view>
</template>
<script>
import {
uploadUrl,
- ywWorkorderD,
+ ywWorkorderD,
ywWorkorderDeal
} from '@/api'
import dayjs from 'dayjs';
@@ -135,10 +145,14 @@
info: {},
showUpload: false,
isShowHandle: false,
- isShowHandleDate: false,
+ isShowHandleDate: false,
userInfo: uni.getStorageSync('userInfo') || {},
handleParam: {},
- dealFileList: []
+ dealFileList: [],
+
+ videoPlay: false,
+ videoContext: null,
+ videoUrl: ''
};
},
onLoad(option) {
@@ -147,25 +161,55 @@
this.getDetail()
},
methods: {
- onSubmit() {
- const { handleParam, dealFileList, id } = this
- if (!handleParam.dealTime) return this.showToast('澶勭悊鏃堕棿涓嶈兘涓虹┖')
- ywWorkorderDeal({
- ...handleParam,
- id,
- dealFileList
- }).then(res => {
- if(res.code == 200){
- this.showToast('鎿嶄綔鎴愬姛')
- uni.navigateBack()
- }
+ handleOpen() {
+ this.isShowHandle = true
+ this.$set(this.handleParam, 'dealTime', dayjs().format('YYYY-MM-DD HH:mm:ss'));
+ },
+ videoClick(item) {
+ this.videoPlay = true;
+ this.videoContext = uni.createVideoContext("myvideo", this); // this杩欎釜鏄疄渚嬪璞� 蹇呬紶
+ this.videoUrl = item.fileurlFull;
+ this.videoContext.requestFullScreen();
+ this.$nextTick(() => {
+ this.videoContext.play();
})
- },
- handleCall() {
- const { info } = this
- uni.makePhoneCall({
- phoneNumber: info.creatorMobile
- });
+ },
+ screenChange(e) {
+ let fullScreen = e.detail.fullScreen // 鍊紅rue涓鸿繘鍏ュ叏灞忥紝false涓洪��鍑哄叏灞�
+ if (!fullScreen) {
+ //閫�鍑哄叏灞�
+ this.videoPlay = false // 闅愯棌鎾斁鐩掑瓙
+ }
+ },
+ closeVideo() {
+ this.videoPlay = false
+ this.videoContext = null
+ },
+ onSubmit() {
+ const {
+ handleParam,
+ dealFileList,
+ id
+ } = this
+ if (!handleParam.dealTime) return this.showToast('澶勭悊鏃堕棿涓嶈兘涓虹┖')
+ ywWorkorderDeal({
+ ...handleParam,
+ id,
+ dealFileList
+ }).then(res => {
+ if (res.code == 200) {
+ this.showToast('鎿嶄綔鎴愬姛')
+ uni.navigateBack()
+ }
+ })
+ },
+ handleCall() {
+ const {
+ info
+ } = this
+ uni.makePhoneCall({
+ phoneNumber: info.creatorMobile
+ });
},
getDetail() {
ywWorkorderD(this.id).then(res => {
@@ -323,7 +367,7 @@
image,
video {
- width: 156rpx;
+ width: 156rpx;
height: 156rpx;
}
}
@@ -488,28 +532,37 @@
display: flex;
flex-wrap: wrap;
margin-bottom: 30rpx;
+ max-height: 362rpx;
+ overflow-y: auto;
+ margin-right: -30rpx;
}
.adduser_list_item_ipt1_upload {
margin-top: 24rpx;
width: 156rpx;
height: 156rpx;
- margin-right: 24rpx;
- border: 2rpx solid #e5e5e5;
+ margin-right: 22rpx;
+ border: 1rpx solid #e5e5e5;
background: #f7f7f7;
color: #666666;
font-size: 22rpx;
+ box-sizing: border-box;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
position: relative;
+ &:nth-of-type(4n) {
+ margin-right: 0;
+ }
+
.close {
position: absolute;
right: -20rpx;
top: -20rpx;
z-index: 9999;
+ background-color: #fff;
}
image {
@@ -523,4 +576,46 @@
}
}
}
+
+ .video_wrap {
+ position: relative;
+ border: 1px solid;
+ width: 156rpx;
+ height: 156rpx;
+ border-radius: 4rpx;
+
+ .play {
+ width: 60rpx !important;
+ height: 60rpx !important;
+ position: absolute;
+ top: 50%;
+ left: 50%;
+ transform: translate(-50%, -50%);
+ }
+ }
+
+ .video_app {
+ overflow: hidden;
+ position: fixed;
+ left: 0;
+ top: 0;
+ width: 100vw;
+ height: 100vh;
+ display: flex;
+ align-items: center;
+ z-index: 9990;
+
+ .bg {
+ background-color: rgba(0, 0, 0, .6);
+ position: absolute;
+ width: 100%;
+ height: 100%;
+ z-index: -1;
+ }
+
+ video {
+ width: 100%;
+ height: 42vh;
+ }
+ }
</style>
\ No newline at end of file
diff --git a/h5/pages/workOrder/edit.vue b/h5/pages/workOrder/edit.vue
index 3e0c34d..ff72df9 100644
--- a/h5/pages/workOrder/edit.vue
+++ b/h5/pages/workOrder/edit.vue
@@ -51,7 +51,7 @@
<u-icon class="close" size="20" name="close-circle-fill" color="red"
@click="fileDel('fileList', i)"></u-icon>
<image v-if="item.type == 0" :src="item.fileurlFull" mode="widthFix"></image>
- <video v-if="item.type == 1" :src="item.fileurlFull" :controls="false"></video>
+ <video v-if="item.type == 1" :show-center-play-btn="false" :src="item.fileurlFull" :controls="false"></video>
</view>
</view>
</view>
@@ -116,7 +116,7 @@
showCate2: false,
areaType: [
[{
- name: '瀹ゅ唴瑁呬慨',
+ name: '瀹ゅ唴缁翠慨',
id: 0
},
{
@@ -431,7 +431,10 @@
position: absolute;
right: -20rpx;
top: -20rpx;
- z-index: 9999;
+ z-index: 9999;
+ background-color: #fff;
+ border-radius: 50%;
+ overflow: hidden;
}
image {
diff --git a/h5/pages/workOrder/list.vue b/h5/pages/workOrder/list.vue
index 2da419f..7d8e1d2 100644
--- a/h5/pages/workOrder/list.vue
+++ b/h5/pages/workOrder/list.vue
@@ -32,7 +32,7 @@
<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-if="item.dealStatus == 0 || item.dealStatus == 1" 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">
@@ -216,7 +216,7 @@
}
.scroll_Y{
- height: calc(100vh - 320rpx);
+ height: calc(100vh - 250rpx);
}
.list {
.item {
@@ -224,7 +224,7 @@
// height: 290rpx;
padding: 30rpx 0;
border-bottom: 2rpx solid #E5E5E5;
-
+
.icon {
width: 80rpx;
height: 80rpx;
diff --git a/h5/static/plan_ic_finish@2x.png b/h5/static/plan_ic_finish@2x.png
new file mode 100644
index 0000000..01fafcc
--- /dev/null
+++ b/h5/static/plan_ic_finish@2x.png
Binary files differ
diff --git a/h5/static/play.png b/h5/static/play.png
new file mode 100644
index 0000000..1b4b225
--- /dev/null
+++ b/h5/static/play.png
Binary files differ
diff --git a/h5/utils/config.js b/h5/utils/config.js
index 450773b..49ff135 100644
--- a/h5/utils/config.js
+++ b/h5/utils/config.js
@@ -1,6 +1,6 @@
- // export const baseUrl = 'gateway_interface/'
+ export const baseUrl = 'gateway_interface/'
// export const baseUrl = 'http://192.168.0.173/gateway_interface/'
-export const baseUrl = 'https://zhcg.fnwtzx.com/gateway_interface/'
+// export const baseUrl = 'https://zhcg.fnwtzx.com/gateway_interface/'
export const uploadAvatar = `${baseUrl}visitsAdmin/cloudService/web/public/uploadFtp.do`
export const uploadUrl = `${baseUrl}visitsAdmin/cloudService/public/uploadBatch`
diff --git a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/CompanyCloudController.java b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/CompanyCloudController.java
index 2efd887..42c3b1f 100644
--- a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/CompanyCloudController.java
+++ b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/CompanyCloudController.java
@@ -1,6 +1,5 @@
package com.doumee.cloud.admin;
-import com.baomidou.mybatisplus.annotation.TableField;
import com.doumee.api.BaseController;
import com.doumee.config.DataSyncConfig;
import com.doumee.config.annotation.CloudRequiredPermission;
@@ -123,6 +122,12 @@
public ApiResponse<List<Company>> list (@RequestBody Company company,@RequestHeader(Constants.HEADER_USER_TOKEN) String token){
return ApiResponse.success(companyService.findList(company));
}
+ @ApiOperation("鏂板缓鍚堝悓鎵�灞炲叕鍙哥瓫閫�")
+ @PostMapping("/listForConstract")
+ @CloudRequiredPermission("business:company:query")
+ public ApiResponse<List<Company>> listForConstract (@RequestBody Company company,@RequestHeader(Constants.HEADER_USER_TOKEN) String token){
+ return ApiResponse.success(companyService.listForConstract(company));
+ }
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwContractBill.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwContractBill.java
index 2e1e381..1d28bbf 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwContractBill.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwContractBill.java
@@ -105,7 +105,6 @@
@ApiModelProperty(value = "璐圭敤绫诲瀷锛�0=鍛ㄦ湡璐圭敤锛�1=涓�娆℃�ц垂鐢�")
@TableField(exist = false)
private Integer feeType;
-
@ApiModelProperty(value = "鎵�灞炲叕鍙�", example = "1")
private Integer companyId;
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwPatrolScheme.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwPatrolScheme.java
index a7c167c..bc6ea4b 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwPatrolScheme.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwPatrolScheme.java
@@ -122,4 +122,15 @@
@ApiModelProperty(value = "瓒呮湡浠诲姟鏁�")
@TableField(exist = false)
private Integer timeOutTaskNum;
+
+ @ApiModelProperty(value = "寮�濮嬫棩鏈燂紙鎼滅储鎴鏃ユ湡锛�")
+ @TableField(exist = false)
+ @JsonFormat(pattern = "yyyy-MM-dd")
+ private Date startDateSec;
+
+ @ApiModelProperty(value = "缁撴潫鏃ユ湡锛堟悳绱㈡埅姝㈡棩鏈燂級")
+ @TableField(exist = false)
+ @JsonFormat(pattern = "yyyy-MM-dd")
+ private Date endDateSec;
+
}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwPatrolTaskRecord.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwPatrolTaskRecord.java
index e3905db..d6ff2a8 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwPatrolTaskRecord.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwPatrolTaskRecord.java
@@ -35,7 +35,6 @@
@ApiModelProperty(value = "鍒涘缓鏃堕棿")
@ExcelColumn(name="鍒涘缓鏃堕棿")
- @JsonFormat(pattern = "yyyy-MM-dd")
private Date createDate;
@ApiModelProperty(value = "鏇存柊浜虹紪鐮�", example = "1")
@@ -44,7 +43,6 @@
@ApiModelProperty(value = "鏇存柊鏃堕棿")
@ExcelColumn(name="鏇存柊鏃堕棿")
- @JsonFormat(pattern = "yyyy-MM-dd")
private Date editDate;
@ApiModelProperty(value = "鏄惁鍒犻櫎0鍚� 1鏄�", example = "1")
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwWorkorder.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwWorkorder.java
index 52b009b..8b9b37c 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwWorkorder.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwWorkorder.java
@@ -33,6 +33,7 @@
@ApiModelProperty(value = "鍒涘缓鏃堕棿")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ @ExcelColumn(name="涓婃姤鏃堕棿",index = 5,width = 16,dateFormat = "yyyy-MM-dd HH:mm:ss")
private Date createDate;
@ApiModelProperty(value = "鏇存柊浜虹紪鐮�", example = "1")
@@ -83,7 +84,6 @@
@ApiModelProperty(value = "鎻愭姤鏃堕棿")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
- @ExcelColumn(name="涓婃姤鏃堕棿",index = 5,width = 16,dateFormat = "yyyy-MM-dd HH:mm:ss")
private Date submitDate;
@ApiModelProperty(value = "宸ュ崟鍒嗙被缂栫爜(鍏宠仈category锛�", example = "1")
@@ -97,7 +97,7 @@
private String code;
@ApiModelProperty(value = "澶勭悊鐘舵�� 0寰呭鐞� 1宸插垎娲� 2宸插鐞�", example = "1")
- @ExcelColumn(name="宸ュ崟鐘舵��",index = 7,width = 10,valueMapping = "0=寰呭鐞�;1=宸插垎娲�;1=宸插鐞�;")
+ @ExcelColumn(name="宸ュ崟鐘舵��",index = 7,width = 10,valueMapping = "0=寰呭鐞�;1=宸插垎娲�;2=宸插鐞�;")
private Integer dealStatus;
@ApiModelProperty(value = "鍒嗘淳浜虹紪鐮�(鍏宠仈system_user)", example = "1")
@@ -136,9 +136,12 @@
@TableField(exist = false)
private String buildingName;
@ApiModelProperty(value = "鎴挎簮鍚嶇О")
- @ExcelColumn(name="鎴挎簮",index = 2,width = 10)
@TableField(exist = false)
private String roomName;
+ @ApiModelProperty(value = "鎶ヤ慨鍖哄煙")
+ @ExcelColumn(name="鎶ヤ慨鍖哄煙",index = 2,width = 10)
+ @TableField(exist = false)
+ private String areaNameInfo;
@ApiModelProperty(value = "妤煎眰鍚嶇О")
@TableField(exist = false)
private String floorName;
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/CompanyService.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/CompanyService.java
index d890255..09e5135 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/CompanyService.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/CompanyService.java
@@ -129,4 +129,6 @@
Integer createFinanceCompany(Company company);
Integer updateFinanceCompany(Company company);
+
+ List<Company> listForConstract(Company company);
}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/AreasServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/AreasServiceImpl.java
index 2416bac..28835e0 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/AreasServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/AreasServiceImpl.java
@@ -102,6 +102,7 @@
wrapper.lambda().eq(Areas::getId,areas.getId());
Areas update = new Areas();
update.setName(areas.getName());
+ update.setCode(areas.getCode());
update.setSortnum(areas.getSortnum());
areasMapper.update(update,wrapper);
//鍒锋柊缂撳瓨鏁版嵁
@@ -326,7 +327,7 @@
CITY_LIST=null;
AREA_LIST = null;
ALL_AREA_TREE = null;
- ALL_AREA_LIST = areasMapper.selectList(new QueryWrapper<>(a).lambda().orderByDesc(Areas::getSortnum));
+ ALL_AREA_LIST = areasMapper.selectList(new QueryWrapper<>(a).lambda().orderByAsc(Areas::getCode));
if(ALL_AREA_LIST!=null){
for(Areas model : ALL_AREA_LIST){
if(Constants.equalsInteger(model.getType(),Constants.ZERO)){
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/CompanyServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/CompanyServiceImpl.java
index a978630..573f959 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/CompanyServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/CompanyServiceImpl.java
@@ -432,6 +432,18 @@
}
@Override
+ public List<Company> listForConstract(Company company) {
+ MPJLambdaWrapper<Company> queryWrapper = new MPJLambdaWrapper<>();
+ queryWrapper.selectAll(Company.class);
+ queryWrapper.like(company.getName() != null,Company::getName, company.getName());
+ queryWrapper.eq(Company::getStatus, Constants.ZERO);
+ queryWrapper.eq(Company::getType, Constants.TWO);
+ queryWrapper.eq(Company::getIsdeleted, Constants.ZERO);
+ queryWrapper.exists("select b.id from yw_account b where b.isdeleted=0 and b.company_id=t.id and b.status=0");
+ queryWrapper.orderByDesc(Company::getCreateDate);
+ return companyMapper.selectList(queryWrapper);
+ }
+ @Override
public List<Company> findList(Company company) {
MPJLambdaWrapper<Company> queryWrapper = new MPJLambdaWrapper<>();
if (company.getId() != null) {
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java
index fb15ce1..12976d2 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java
@@ -1016,6 +1016,8 @@
throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"瀵逛笉璧凤紝浜哄憳淇℃伅涓嶅瓨鍦紒");
}
if(model.getCompanyId()!=null) {
+ member.setEditor(member.getLoginUserInfo().getId());
+ member.setEditDate(new Date());
if(Constants.equalsInteger(member.getHeadStatus(),Constants.ONE)){
//濡傛灉鏄彇娑堜富绠�
companyMapper.update(null,new UpdateWrapper<Company>().lambda()
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwPatrolSchemeServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwPatrolSchemeServiceImpl.java
index 59adbcc..375b2f6 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwPatrolSchemeServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwPatrolSchemeServiceImpl.java
@@ -321,11 +321,13 @@
.eq(YwPatrolScheme::getIsdeleted,Constants.ZERO)
.like(StringUtils.isNotBlank(model.getTitle()),YwPatrolScheme::getTitle,model.getTitle())
//鏌ヨ鏈夋椂娈典氦闆嗙殑鏁版嵁
- .apply(Objects.nonNull(model.getStartDate())&&Objects.nonNull(model.getEndDate()),
- " t.START_DATE <= '"+pageWrap.getModel().getEndDate()+"' and t.END_DATE >= '"+pageWrap.getModel().getStartDate()+"' "
- )
-// .ge(Objects.nonNull(model.getStartDate()),YwDeviceRecord::getCreateDate, Utils.Date.getStart(pageWrap.getModel().getStartDate()))
-// .le(Objects.nonNull(model.getEndDate()),YwDeviceRecord::getCreateDate, Utils.Date.getStart(pageWrap.getModel().getEndDate()))
+ /* .apply(Objects.nonNull(model.getStartDate())&&Objects.nonNull(model.getEndDate()),
+ " t.START_DATE <= '"+pageWrap.getModel().getEndDate()+"' or t.END_DATE >= '"+pageWrap.getModel().getStartDate()+"' "
+ )*/
+ .ge( model.getStartDate()!=null,YwPatrolScheme::getStartDate, Utils.Date.getStart(pageWrap.getModel().getStartDate()))
+ .le(Objects.nonNull(model.getEndDate()),YwPatrolScheme::getStartDate, Utils.Date.getStart(pageWrap.getModel().getEndDate()))
+ .ge(Objects.nonNull(model.getStartDateSec()),YwPatrolScheme::getEndDate, Utils.Date.getStart(pageWrap.getModel().getStartDateSec()))
+ .le(Objects.nonNull(model.getEndDateSec()),YwPatrolScheme::getEndDate, Utils.Date.getStart(pageWrap.getModel().getEndDateSec()))
.orderByDesc(YwPatrolScheme::getCreateDate)
;
IPage<YwPatrolScheme> iPage = ywPatrolSchemeMapper.selectJoinPage(page,YwPatrolScheme.class,queryWrapper);
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwPatrolTaskRecordServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwPatrolTaskRecordServiceImpl.java
index 92357ea..d025f21 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwPatrolTaskRecordServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwPatrolTaskRecordServiceImpl.java
@@ -137,7 +137,33 @@
.orderByDesc(YwPatrolScheme::getCreateDate)
;
IPage<YwPatrolTaskRecord> iPage = ywPatrolTaskRecordMapper.selectJoinPage(page,YwPatrolTaskRecord.class,queryWrapper);
+ if(iPage!=null && iPage.getRecords()!=null){
+ for(YwPatrolTaskRecord m : iPage.getRecords()){
+ getFileListByModel(m);
+ }
+ }
return PageData.from(iPage);
+ }
+
+ private void getFileListByModel(YwPatrolTaskRecord ywPatrolTaskRecord) {
+ //闄勪欢鏁版嵁
+ List<Multifile> multifileList = multifileMapper.selectJoinList(Multifile.class,new MPJLambdaWrapper<Multifile>()
+ .selectAll(Multifile.class)
+ .selectAs(SystemUser::getRealname,Multifile::getUserName)
+ .leftJoin(SystemUser.class,SystemUser::getId,Multifile::getCreator)
+ .eq(Multifile::getObjId,ywPatrolTaskRecord.getId())
+ .eq(Multifile::getIsdeleted,Constants.ZERO)
+ .eq(Multifile::getObjType,Constants.MultiFile.FN_PATROL_TASK_RECORD_FILE.getKey()));
+ if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(multifileList)){
+ String path = systemDictDataBiz.queryByCode(Constants.FTP,Constants.FTP_RESOURCE_PATH).getCode()
+ +systemDictDataBiz.queryByCode(Constants.FTP,Constants.YW_PATROL).getCode();
+ for (Multifile multifile:multifileList) {
+ if(StringUtils.isNotBlank(multifile.getFileurl())){
+ multifile.setFileurlFull(path + multifile.getFileurl());
+ }
+ }
+ ywPatrolTaskRecord.setMultifileList(multifileList);
+ }
}
@Override
@@ -286,24 +312,7 @@
if(Objects.isNull(ywPatrolTaskRecord)){
throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"鏈尮閰嶅埌宸℃鐐�!");
}
- //闄勪欢鏁版嵁
- List<Multifile> multifileList = multifileMapper.selectJoinList(Multifile.class,new MPJLambdaWrapper<Multifile>()
- .selectAll(Multifile.class)
- .selectAs(SystemUser::getRealname,Multifile::getUserName)
- .leftJoin(SystemUser.class,SystemUser::getId,Multifile::getCreator)
- .eq(Multifile::getObjId,ywPatrolTaskRecord.getId())
- .eq(Multifile::getIsdeleted,Constants.ZERO)
- .eq(Multifile::getObjType,Constants.MultiFile.FN_PATROL_TASK_RECORD_FILE.getKey()));
- if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(multifileList)){
- String path = systemDictDataBiz.queryByCode(Constants.FTP,Constants.FTP_RESOURCE_PATH).getCode()
- +systemDictDataBiz.queryByCode(Constants.FTP,Constants.YW_PATROL).getCode();
- for (Multifile multifile:multifileList) {
- if(StringUtils.isNotBlank(multifile.getFileurl())){
- multifile.setFileurlFull(path + multifile.getFileurl());
- }
- }
- ywPatrolTaskRecord.setMultifileList(multifileList);
- }
+ getFileListByModel(ywPatrolTaskRecord);
return ywPatrolTaskRecord;
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwPatrolTaskServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwPatrolTaskServiceImpl.java
index b5998ec..104c528 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwPatrolTaskServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwPatrolTaskServiceImpl.java
@@ -86,8 +86,8 @@
.selectAs(YwPatrolScheme::getCode,YwPatrolTask::getPlanCode)
.selectAs(YwPatrolScheme::getTitle,YwPatrolTask::getPlanTitle)
.selectAs(SystemUser::getRealname,YwPatrolTask::getUserName)
- .select(" ( select count(1) from yw_patrol_task_record ytr where ytr.TASK_ID = t.id and t.ISDELETED = 0 ) ",YwPatrolTask::getPatrolNum)
- .select(" ( select count(1) from yw_patrol_task_record ytr where ytr.TASK_ID = t.id and t.STATUS = 1 and t.ISDELETED = 0) ",YwPatrolTask::getFinishNum)
+ .select(" ( select count(1) from yw_patrol_task_record ytr where ytr.TASK_ID = t.id and ytr.ISDELETED = 0 ) ",YwPatrolTask::getPatrolNum)
+ .select(" ( select count(1) from yw_patrol_task_record ytr where ytr.TASK_ID = t.id and ytr.STATUS = 1 and ytr.ISDELETED = 0) ",YwPatrolTask::getFinishNum)
.leftJoin(SystemUser.class,SystemUser::getId,YwPatrolTask::getDealUserId)
.leftJoin(YwPatrolScheme.class,YwPatrolScheme::getId,YwPatrolTask::getSchemeId)
.eq(YwPatrolTask::getIsdeleted, Constants.ZERO)
@@ -140,8 +140,8 @@
.selectAs(YwPatrolScheme::getCode,YwPatrolTask::getPlanCode)
.selectAs(YwPatrolScheme::getTitle,YwPatrolTask::getPlanTitle)
.selectAs(SystemUser::getRealname,YwPatrolTask::getUserName)
- .select(" ( select count(1) from yw_patrol_task_record ytr where ytr.TASK_ID = t.id and t.ISDELETED = 0 ) ",YwPatrolTask::getPatrolNum)
- .select(" ( select count(1) from yw_patrol_task_record ytr where ytr.TASK_ID = t.id and t.STATUS = 1 and t.ISDELETED = 0) ",YwPatrolTask::getFinishNum)
+ .select(" ( select count(1) from yw_patrol_task_record ytr where ytr.TASK_ID = t.id and ytr.ISDELETED = 0 ) ",YwPatrolTask::getPatrolNum)
+ .select(" ( select count(1) from yw_patrol_task_record ytr where ytr.TASK_ID = t.id and ytr.STATUS = 1 and ytr.ISDELETED = 0) ",YwPatrolTask::getFinishNum)
.leftJoin(SystemUser.class,SystemUser::getId,YwPatrolTask::getDealUserId)
.leftJoin(YwPatrolScheme.class,YwPatrolScheme::getId,YwPatrolTask::getSchemeId)
.eq(YwPatrolTask::getIsdeleted, Constants.ZERO)
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwProjectServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwProjectServiceImpl.java
index 2e2061a..2e0587a 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwProjectServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwProjectServiceImpl.java
@@ -282,6 +282,7 @@
List<YwRoom> ywRoomList = ywRoomMapper.selectList(new QueryWrapper<YwRoom>().lambda()
.eq(YwRoom::getIsdeleted,Constants.ZERO)
.eq(YwRoom::getStatus,Constants.ZERO)
+ .eq(YwRoom::getIsInvestment,Constants.ONE)
.eq(Objects.nonNull(dataDTO.getProjectId()),YwRoom::getProjectId,dataDTO.getProjectId())
.apply(Objects.nonNull(dataDTO)&&Objects.nonNull(dataDTO.getStartDate())&&Objects.nonNull(dataDTO.getEndDate())," id not in (" +
" SELECT y2.room_id FROM yw_contract y1 left join yw_contract_room y2 on y1.id = y2.contract_id where 1 = 1 and y1.`STATUS` in( 0,1,2) " +
@@ -291,7 +292,7 @@
" SELECT y2.room_id FROM yw_contract y1 left join yw_contract_room y2 on y1.id = y2.contract_id where 1 = 1 and y1.`STATUS` = 3 " +
" and y1.START_DATE < '"+dataDTO.getEndDate()+" 00:00:00' and y1.BT_DATE > '"+ dataDTO.getStartDate() +" 00:00:00' " +
" ) ")
- .orderByAsc(YwRoom::getSortnum)
+ .orderByAsc(YwRoom::getRoomNum)
);
for (YwRoom data:ywRoomList) {
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwWorkorderServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwWorkorderServiceImpl.java
index c8a86f3..42f163b 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwWorkorderServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwWorkorderServiceImpl.java
@@ -499,10 +499,28 @@
queryWrapper.orderByAsc(sortData.getProperty());
}
}
+ if(StringUtils.isNotBlank(pageWrap.getModel().getBuildingName())){
+ queryWrapper.and(rw ->{
+ rw.like(YwBuilding::getName,pageWrap.getModel().getBuildingName()).or()
+ .like(YwRoom::getName,pageWrap.getModel().getBuildingName());
+ });
+ }
queryWrapper.ge(Objects.nonNull(pageWrap.getModel().getQueryStartTime()), YwWorkorder::getCreateDate, pageWrap.getModel().getQueryStartTime())
.le(Objects.nonNull(pageWrap.getModel().getQueryEndTime()), YwWorkorder::getCreateDate, pageWrap.getModel().getQueryEndTime());
queryWrapper.orderByDesc(YwContract::getCreateDate );
- return PageData.from(ywWorkorderMapper.selectPage(page, queryWrapper));
+
+ PageData<YwWorkorder> result = PageData.from(ywWorkorderMapper.selectPage(page, queryWrapper));
+ if(result!=null && result.getRecords()!=null){
+ for(YwWorkorder m : result.getRecords()){
+ if(Constants.equalsInteger(m.getAreaType(),Constants.ZERO)){
+ //0瀹ゅ唴缁翠慨
+ m.setAreaNameInfo(StringUtils.defaultString(m.getBuildingName(),"")+"/"+StringUtils.defaultString(m.getRoomNum(),""));
+ }else{
+ m.setAreaNameInfo(StringUtils.defaultString(m.getBuildingName(),"")+"/"+StringUtils.defaultString(m.getFloorName(),""));
+ }
+ }
+ }
+ return result;
}
@Override
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/erp/ErpSyncServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/erp/ErpSyncServiceImpl.java
index a846351..613cd7a 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/erp/ErpSyncServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/erp/ErpSyncServiceImpl.java
@@ -10,16 +10,18 @@
import com.doumee.core.constants.ResponseStatus;
import com.doumee.core.erp.ErpConstants;
import com.doumee.core.erp.ErpTool;
-import com.doumee.core.erp.model.openapi.request.erp.*;
+import com.doumee.core.erp.model.openapi.request.*;
+import com.doumee.core.erp.model.openapi.request.erp.OrgListRequest;
+import com.doumee.core.erp.model.openapi.request.erp.UserFailRequest;
+import com.doumee.core.erp.model.openapi.request.erp.UserListRequest;
+import com.doumee.core.erp.model.openapi.response.*;
import com.doumee.core.erp.model.openapi.response.erp.ERPApiResponse;
+import com.doumee.core.erp.model.openapi.response.erp.ErpOrgListResponse;
+import com.doumee.core.erp.model.openapi.response.erp.ErpUserListResponse;
import com.doumee.core.exception.BusinessException;
import com.doumee.core.haikang.model.HKConstants;
import com.doumee.core.model.PageData;
import com.doumee.core.model.PageWrap;
-import com.doumee.core.erp.model.openapi.request.*;
-import com.doumee.core.erp.model.openapi.response.*;
-import com.doumee.core.erp.model.openapi.response.erp.ErpOrgListResponse;
-import com.doumee.core.erp.model.openapi.response.erp.ErpUserListResponse;
import com.doumee.core.utils.Constants;
import com.doumee.core.utils.DESUtil;
import com.doumee.core.utils.DateUtil;
@@ -31,8 +33,8 @@
import com.doumee.dao.business.join.DeviceEventJoinMapper;
import com.doumee.dao.business.join.VisitEventJoinMapper;
import com.doumee.dao.business.model.*;
-import com.doumee.service.business.ext.ERPSyncService;
import com.doumee.service.business.InterfaceLogService;
+import com.doumee.service.business.ext.ERPSyncService;
import com.doumee.service.business.impl.MemberServiceImpl;
import com.doumee.service.business.impl.hksync.ferp.HkSyncOrgUserToHKServiceImpl;
import com.github.yulichang.wrapper.MPJLambdaWrapper;
--
Gitblit v1.9.3