Browse Source

8月3日提交

master
xiaohei 1 year ago
parent
commit
f7cdc468d8
16 changed files with 5425 additions and 5122 deletions
  1. +2
    -2
      config/index.js
  2. +2
    -1
      src/store/index.js
  3. +2
    -2
      src/views/Screen.vue
  4. +168
    -0
      src/views/agreement.vue
  5. +1
    -1
      src/views/dataScreen/rightChartTop.vue
  6. +8
    -8
      src/views/device/smartMeter.vue
  7. +7
    -7
      src/views/device/waterMeter.vue
  8. +3171
    -3160
      src/views/doorLock.vue
  9. +1271
    -1258
      src/views/loginAccount.vue
  10. +3
    -3
      src/views/rechargeManagement/bill.vue
  11. +2
    -2
      src/views/rechargeManagement/rechargeManagement.vue
  12. +55
    -26
      src/views/room.vue
  13. +75
    -77
      src/views/systemConfiguration.vue
  14. +1
    -1
      src/views/template/contractExportTemplate.vue
  15. +656
    -574
      src/views/userManagement.vue
  16. +1
    -0
      src/views/visualization/flatsIndex.vue

+ 2
- 2
config/index.js View File

@ -11,9 +11,9 @@ module.exports = {
assetsPublicPath: '/', assetsPublicPath: '/',
proxyTable: { proxyTable: {
'/api': { '/api': {
target: 'http://apartmentcloud.xiaozhisz.cn/',
// target: 'http://apartmentcloud.xiaozhisz.cn/',
// target: 'http://test.zhiweisz.cn/', // target: 'http://test.zhiweisz.cn/',
// target: 'http://192.168.1.26:8600/',
target: 'http://192.168.1.26:8600/',
changeOrigin: true, //是否跨域 changeOrigin: true, //是否跨域
pathRewrite: { pathRewrite: {
//重写路径 //重写路径


+ 2
- 1
src/store/index.js View File

@ -426,7 +426,8 @@ const store = new Vuex.Store({
// 侧边栏折叠 // 侧边栏折叠
hadndleCollapse(state, data) { hadndleCollapse(state, data) {
state.collapse = data; state.collapse = data;
}
},
}, },
actions: {}, actions: {},
modules: {} modules: {}


+ 2
- 2
src/views/Screen.vue View File

@ -19,10 +19,10 @@
<centerChartBottom/> <centerChartBottom/>
</div> </div>
<div class="right"> <div class="right">
<rightChartTop class="rightChartTop"/>
<Tourist class="tourist"/>
<!-- <rightChartcenter class="rightChartcenter"/> --> <!-- <rightChartcenter class="rightChartcenter"/> -->
<rightChartcentertwo class="rightChartcenter"/> <rightChartcentertwo class="rightChartcenter"/>
<Tourist class="tourist"/>
<rightChartTop class="rightChartTop"/>
</div> </div>
</div> </div>
</div> </div>


+ 168
- 0
src/views/agreement.vue View File

@ -174,6 +174,7 @@
</el-table-column> </el-table-column>
<el-table-column label="操作" align="center"> <el-table-column label="操作" align="center">
<template #default="scope"> <template #default="scope">
<el-button type="text" @click="changebatchRenewalShow(scope.$index, scope.row)">续租</el-button>
<el-button type="text" class="red" @click="rentOutOperation(scope.$index, scope.row)" <el-button type="text" class="red" @click="rentOutOperation(scope.$index, scope.row)"
:disabled="scope.row.status > 2 ? true : false">退租</el-button> :disabled="scope.row.status > 2 ? true : false">退租</el-button>
<el-button type="text" @click="deleteAgreement(scope.$index, scope.row)">删除</el-button> <el-button type="text" @click="deleteAgreement(scope.$index, scope.row)">删除</el-button>
@ -523,6 +524,24 @@
<el-button type="primary" @click="signAContract"> </el-button> <el-button type="primary" @click="signAContract"> </el-button>
</span> </span>
</el-dialog> </el-dialog>
<el-dialog title="续租" :visible.sync="batchRenewalShow" width="30%">
<el-form ref="batchRenewalFrom" :model="batchRenewalFrom" label-width="80px" class="temporary">
<el-form-item label="开始时间">
<el-date-picker v-model="batchRenewalFrom.startTime" :picker-options="pickerOptionsBegin" size="small"
type="datetime" placeholder="选择日期时间">
</el-date-picker>
</el-form-item>
<el-form-item label="结束时间">
<el-date-picker v-model="batchRenewalFrom.endTime" :picker-options="pickerOptionsBegin" size="small"
type="datetime" placeholder="选择日期时间">
</el-date-picker>
</el-form-item>
<el-form-item>
<el-button size="small" @click="batchRenewalShow = false" type="primary">取消</el-button>
<el-button size="small" @click="batchRenewalMethods" type="primary">确定</el-button>
</el-form-item>
</el-form>
</el-dialog>
<zw ref="myChild"></zw> <zw ref="myChild"></zw>
<getFinger ref="myGetFinger"></getFinger> <getFinger ref="myGetFinger"></getFinger>
</div> </div>
@ -547,6 +566,13 @@ export default {
name: "agreement", name: "agreement",
data() { data() {
return { return {
//
batchmessage: {},
batchRenewalFrom: {
startTime: new Date(),
endTime: ''
},
batchRenewalShow: false,
savevoucherlist: [], savevoucherlist: [],
checkInListing: [], checkInListing: [],
enterpriselist: [], enterpriselist: [],
@ -740,6 +766,142 @@ export default {
this.getAllTree() this.getAllTree()
}, },
methods: { methods: {
//
batchRenewalMethods() {
this.$confirm('此操作将延长入住时间, 是否继续?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
if (this.batchRenewalFrom.endTime == '' || this.batchRenewalFrom.startTime == '') {
return this.$message.error('请选择时间范围')
}
if (this.batchRenewalFrom.startTime > this.batchRenewalFrom.endTime) {
return this.$message.error('开始时间不得大于结束时间')
}
//
let lockdata = {
pageNum: 1,
pageSize: 10,
q: JSON.stringify({ roomIds: [this.batchmessage.siteId], lockType: 1 })
}
httpPost(lockdata, this.$api.getDeviceItems).then(res => {
console.log(res);
if (res.success) {
var lockmessage = res.data.list[0] //
lockmessage.cardId = this.batchmessage.cardId
if (lockmessage.manufactureId == 101) {
var userTelephone = this.batchmessage.phone.substring(this.batchmessage.phone.length - 6, this.batchmessage.phone.length);
var userPassword = this.batchmessage.phone.substring(this.batchmessage.phone.length - 6, this.batchmessage.phone.length);
var endTime = new Date(this.batchRenewalFrom.endTime).getTime()
var startTime = new Date(this.batchRenewalFrom.startTime).getTime()
var passwordEndTime = moment(endTime).format("YYYYMMDDHHmmss");
var passwordStartTime = moment(startTime).format("YYYYMMDDHHmmss");
var data = {
deviceNum: lockmessage.deviceNum,
imei: lockmessage.imei,
userTelephone: userTelephone,
userPassword: userPassword,
password: userPassword,
operateMode: 2,
order: 6202,
passwordStartTime: passwordStartTime,
passwordEndTime: passwordEndTime,
cardName: this.batchmessage.name,
roomName: lockmessage.roomName
}
ICINLocker.LDAddUser(data.deviceNum, data.imei, data.userTelephone, data.userPassword, data
.password,
passwordStartTime, passwordEndTime, data.operateMode, data.order, data.cardName,
data
.roomName, false, (callback) => {
console.log(callback);
if (callback.success) {
var data = {
pageNum: 0,
pageSize: 0,
orderBy: "create_at desc",
q: {
cardId: this.batchmessage.cardId,
deviceNum: lockmessage.deviceNum,
types: "0,1,2,3,4",
inStatus: "0,1"
},
};
var unbind = {
id: this.batchmessage.cardId,
startTime: this.batchRenewalFrom.startTime,
endTime: this.batchRenewalFrom.endTime
};
//
httpPost(unbind, this.$api.setTenant).then((res) => {
console.log(res);
})
//
httpGet(data, this.$api.getCertificates).then((res) => {
let data = utils.zlib_unzip(res.data)
data.map(lt => {
utils.modifyPutCarfid(lockmessage, lt, startTime, endTime)
})
})
this.batchRenewalShow = false
} else {
this.$message.error("修改失败")
}
})
} else if (lockmessage.manufactureId == 201 || lockmessage.manufactureId == 221) {
var endTime = new Date(this.batchRenewalFrom.endTime).getTime()
var startTime = new Date(this.batchRenewalFrom.startTime).getTime()
var unbind = [{
cardId: this.batchmessage.cardId,
siteId: lockmessage.roomId,
}];
httpPost(unbind, this.$api.unbindCard).then((res) => {
var data1 = [{
cardId: this.batchmessage.cardId,
siteId: lockmessage.roomId,
startTime: this.batchRenewalFrom.startTime,
endTime: this.batchRenewalFrom.endTime
}];
httpPost(data1, this.$api.bindCard).then((res) => {
console.log(res);
});
})
var data = {
pageNum: 0,
pageSize: 0,
orderBy: "create_at desc",
q: {
cardId: this.batchmessage.cardId,
deviceNum: lockmessage.deviceNum,
types: "0,1,2,3,4",
inStatus: "0,1"
},
};
httpGet(data, this.$api.getCertificates).then((res) => {
console.log(res);
let data = utils.zlib_unzip(res.data)
console.log(data);
data.map(lt => {
utils.modifyPutCarfidzg(lockmessage, lt, startTime, endTime)
})
})
this.batchRenewalShow = false
}else{
this.$message.error("暂未发现对应设备")
}
} else {
this.$message.error(res.message)
}
})
})
},
//
changebatchRenewalShow(index, row) {
this.batchRenewalShow = true
this.batchmessage = row
},
// //
getAboutDevice() { getAboutDevice() {
httpGet("", this.$api.onlySiteDevice).then((res) => { httpGet("", this.$api.onlySiteDevice).then((res) => {
@ -1869,6 +2031,12 @@ export default {
if (this.value2[0] > this.value2[1]) { if (this.value2[0] > this.value2[1]) {
return this.$message.error('开始时间不能大于结束时间') return this.$message.error('开始时间不能大于结束时间')
} }
if (this.value2[0] < this.form.signingTime || this.value2[0] > this.form.contractTime) {
return this.$message.error('开始时间不能超出祖约时间')
}
if (this.value2[1] < this.form.signingTime || this.value2[1] > this.form.contractTime) {
return this.$message.error('结束时间不能超出租约时间')
}
if (this.documentType == 11) { if (this.documentType == 11) {
var fingerprintAlias = '' var fingerprintAlias = ''
var fingerprint = localStorage.getItem("fingerprint"); var fingerprint = localStorage.getItem("fingerprint");


+ 1
- 1
src/views/dataScreen/rightChartTop.vue View File

@ -26,7 +26,7 @@ export default {
animate: false, animate: false,
intNum: null, intNum: null,
list: [ list: [
{ namt: '测试01', number: '公寓/A栋/1单元/1层/101', momey: '2' },
{ namt: '测试011', number: '公寓/A栋/1单元/1层/101', momey: '2' },
{ namt: '测试02', number: '平山村/智慧公寓/30栋/2层/201', momey: '3' }, { namt: '测试02', number: '平山村/智慧公寓/30栋/2层/201', momey: '3' },
{ namt: '测试03', number: '平山村/智慧公寓/50栋/7层/701', momey: '3' }, { namt: '测试03', number: '平山村/智慧公寓/50栋/7层/701', momey: '3' },
{ namt: '测试04', number: '平山村/智慧公寓/60栋/3层/301', momey: '4' }, { namt: '测试04', number: '平山村/智慧公寓/60栋/3层/301', momey: '4' },


+ 8
- 8
src/views/device/smartMeter.vue View File

@ -86,17 +86,17 @@
<template slot="append">%</template> <template slot="append">%</template>
</el-input> </el-input>
</div> </div>
<el-button type="primary" size="small" icon="el-icon-search" @click="handleSearch">搜索</el-button>
<el-button type="primary" size="small" @click="addequipment" v-show="info.type == 0">添加设备</el-button>
<el-button type="primary" size="small" @click="BatchAdd" v-show="info.type == 0">批量添加</el-button>
<el-button type="primary" size="small" @click="restSearch">重置</el-button>
<el-button type="primary" size="small" @click="refreshFun" v-show="info.type == 0">同步设备信息</el-button>
<el-button type="primary" size="small" icon="el-icon-search" @click="handleSearch" style="background: #FA8E00; border: none;">搜索</el-button>
<el-button type="primary" size="small" @click="addequipment" v-show="info.type == 0" style="background: #FA8E00; border: none;">添加设备</el-button>
<el-button type="primary" size="small" @click="BatchAdd" v-show="info.type == 0" style="background: #FA8E00; border: none;">批量添加</el-button>
<el-button type="primary" size="small" @click="restSearch" style="background: #FA8E00; border: none;">重置</el-button>
<el-button type="primary" size="small" @click="refreshFun" v-show="info.type == 0" style="background: #FA8E00; border: none;">同步设备信息</el-button>
</div> </div>
<div class="switchiconfont"> <div class="switchiconfont">
<i class="iconfont httpicon-liebiao1" :class="activeiconfont ? 'active' : ''" @click="activeiconfun(true)" <i class="iconfont httpicon-liebiao1" :class="activeiconfont ? 'active' : ''" @click="activeiconfun(true)"
title="切换方块展示"></i> title="切换方块展示"></i>
<i class="iconfont httpicon-liebiao" :class="activeiconfont ? '' : 'active'" @click="activeiconfun(false)" <i class="iconfont httpicon-liebiao" :class="activeiconfont ? '' : 'active'" @click="activeiconfun(false)"
title="切换表格展示"></i>
title="切换表格展示"></i>
</div> </div>
<div class="roomcontent" v-if="activeiconfont"> <div class="roomcontent" v-if="activeiconfont">
<div class="roomconli" v-for="(item, index) in tableData" :key="index"> <div class="roomconli" v-for="(item, index) in tableData" :key="index">
@ -2152,8 +2152,8 @@ export default {
.switchiconfont .active { .switchiconfont .active {
color: #fff; color: #fff;
cursor: pointer; cursor: pointer;
background: #3a8ee6;
border: 1px solid #3a8ee6;
background: #FA8E00;
border: 1px solid #FA8E00;
} }
.rltable { .rltable {


+ 7
- 7
src/views/device/waterMeter.vue View File

@ -86,11 +86,11 @@
<template slot="append">%</template> <template slot="append">%</template>
</el-input> </el-input>
</div> </div>
<el-button type="primary" size="small" icon="el-icon-search" @click="handleSearch">搜索</el-button>
<el-button type="primary" size="small" @click="addequipment" v-show="info.type == 0">添加设备</el-button>
<el-button type="primary" size="small" @click="BatchAdd" v-show="info.type == 0">批量添加</el-button>
<el-button type="primary" size="small" @click="restSearch">重置</el-button>
<el-button type="primary" size="small" @click="refreshFun" v-show="info.type == 0">同步设备信息</el-button>
<el-button type="primary" size="small" icon="el-icon-search" @click="handleSearch" style="background: #FA8E00; border: none;">搜索</el-button>
<el-button type="primary" size="small" @click="addequipment" v-show="info.type == 0" style="background: #FA8E00; border: none;">添加设备</el-button>
<el-button type="primary" size="small" @click="BatchAdd" v-show="info.type == 0" style="background: #FA8E00; border: none;">批量添加</el-button>
<el-button type="primary" size="small" @click="restSearch" style="background: #FA8E00; border: none;">重置</el-button>
<el-button type="primary" size="small" @click="refreshFun" v-show="info.type == 0" style="background: #FA8E00; border: none;">同步设备信息</el-button>
</div> </div>
<div class="switchiconfont"> <div class="switchiconfont">
<i class="iconfont httpicon-liebiao1" :class="activeiconfont ? 'active' : ''" @click="activeiconfun(true)" <i class="iconfont httpicon-liebiao1" :class="activeiconfont ? 'active' : ''" @click="activeiconfun(true)"
@ -2152,8 +2152,8 @@ export default {
.switchiconfont .active { .switchiconfont .active {
color: #fff; color: #fff;
cursor: pointer; cursor: pointer;
background: #3a8ee6;
border: 1px solid #3a8ee6;
background: #FA8E00;
border: 1px solid #FA8E00;
} }
.rltable { .rltable {


+ 3171
- 3160
src/views/doorLock.vue
File diff suppressed because it is too large
View File


+ 1271
- 1258
src/views/loginAccount.vue
File diff suppressed because it is too large
View File


+ 3
- 3
src/views/rechargeManagement/bill.vue View File

@ -33,8 +33,8 @@
<el-option key="4" label="积分支付" value="4"> <el-option key="4" label="积分支付" value="4">
</el-option> </el-option>
</el-select> </el-select>
<el-button type="primary" size="small" class="mb-2" @click="searchMethods">查询</el-button>
<el-button type="primary" size="small" class="mb-2" @click="batchExport">批量导出</el-button>
<el-button type="primary" size="small" class="mb-2" @click="searchMethods" style="background: #FA8E00; border: none;">查询</el-button>
<el-button type="primary" size="small" class="mb-2" @click="batchExport" style="background: #FA8E00; border: none;">批量导出</el-button>
</div> </div>
<el-table :data="tableData" border stripe class="table" ref="multipleTable" header-cell-class-name="table-header" empty-text="" :height="documentHeight"> <el-table :data="tableData" border stripe class="table" ref="multipleTable" header-cell-class-name="table-header" empty-text="" :height="documentHeight">
<el-table-column prop="createTime" label="日期"> <el-table-column prop="createTime" label="日期">
@ -72,7 +72,7 @@
</el-table-column> </el-table-column>
<el-table-column label="操作" v-if="info.type === 0"> <el-table-column label="操作" v-if="info.type === 0">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button type="primary" size="mini" @click="drawback(scope.row.orderNo)" v-if="scope.row.orderStatus==0">退款</el-button>
<el-button type="primary" size="mini" @click="drawback(scope.row.orderNo)" v-if="scope.row.orderStatus==0" style="background: #FA8E00; border: none;">退款</el-button>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>


+ 2
- 2
src/views/rechargeManagement/rechargeManagement.vue View File

@ -53,14 +53,14 @@
</el-table-column> </el-table-column>
<el-table-column label="操作" v-if="info.type === 0"> <el-table-column label="操作" v-if="info.type === 0">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button type="primary" size="mini" @click="drawback(scope.row.orderNo)" v-if="scope.row.orderStatus==0">退款</el-button>
<el-button type="primary" size="mini" @click="drawback(scope.row.orderNo)" v-if="scope.row.orderStatus==0" style="background: #FA8E00; border: none;">退款</el-button>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
<div class="text-right mt-2 d-flex flex-wrap justify-space-between"> <div class="text-right mt-2 d-flex flex-wrap justify-space-between">
<div class="d-inlie-block"> <div class="d-inlie-block">
<div class="d-inlie-block">短信余额<span class="color-e94848 font-size-24 font-weight-600">{{infoData.balance?(infoData.balance/10):0}}</span><span class="color-666 font-size-14 font-weight-600"></span></div> <div class="d-inlie-block">短信余额<span class="color-e94848 font-size-24 font-weight-600">{{infoData.balance?(infoData.balance/10):0}}</span><span class="color-666 font-size-14 font-weight-600"></span></div>
<el-button type="primary" size="small" @click="drawerPay=true">充值结算</el-button>
<el-button type="primary" size="small" @click="drawerPay=true" style="background: #FA8E00; border: none;">充值结算</el-button>
</div> </div>
<div class="d-inlie-block"> <div class="d-inlie-block">
<el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange" :current-page="pageNum" <el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange" :current-page="pageNum"


+ 55
- 26
src/views/room.vue View File

@ -14,7 +14,7 @@
<el-card shadow="hover" class="cardrelative aftercolor4"> <el-card shadow="hover" class="cardrelative aftercolor4">
<div class="contentc"> <div class="contentc">
<div class="contenttitle">楼栋数</div> <div class="contenttitle">楼栋数</div>
<div class="contentnum">{{ roomNum }}</div>
<div class="contentnum">{{ buildingNum }}</div>
<img src="../assets/img/ld.png" alt="" class="pzimg" /> <img src="../assets/img/ld.png" alt="" class="pzimg" />
</div> </div>
</el-card> </el-card>
@ -32,7 +32,7 @@
<el-card shadow="hover" class="cardrelative aftercolor2"> <el-card shadow="hover" class="cardrelative aftercolor2">
<div class="contentc"> <div class="contentc">
<div class="contenttitle">已入住</div> <div class="contenttitle">已入住</div>
<div class="contentnum">0</div>
<div class="contentnum">{{ checkin }}</div>
<img src="../assets/img/ld.png" alt="" class="pzimg right20" /> <img src="../assets/img/ld.png" alt="" class="pzimg right20" />
</div> </div>
</el-card> </el-card>
@ -41,7 +41,7 @@
<el-card shadow="hover" class="cardrelative aftercolor2"> <el-card shadow="hover" class="cardrelative aftercolor2">
<div class="contentc"> <div class="contentc">
<div class="contenttitle">空房间</div> <div class="contenttitle">空房间</div>
<div class="contentnum">0</div>
<div class="contentnum">{{ emptyroomNum }}</div>
<img src="../assets/img/f.png" alt="" class="pzimg right20" /> <img src="../assets/img/f.png" alt="" class="pzimg right20" />
</div> </div>
</el-card> </el-card>
@ -68,7 +68,7 @@
<el-card shadow="hover" class="cardrelative aftercolor5"> <el-card shadow="hover" class="cardrelative aftercolor5">
<div class="contentc"> <div class="contentc">
<div class="contenttitle">未绑定门锁</div> <div class="contenttitle">未绑定门锁</div>
<div class="contentnum">0</div>
<div class="contentnum">{{ unboundNum }}</div>
<img src="../assets/img/ms.png" alt="" class="pzimg" /> <img src="../assets/img/ms.png" alt="" class="pzimg" />
</div> </div>
</el-card> </el-card>
@ -175,13 +175,13 @@
title="切换表格展示"></i> title="切换表格展示"></i>
</div> </div>
<div class="adddbtn"> <div class="adddbtn">
<el-button type="primary" @click="handleSearch1" size="mini" class="mb-2">添加</el-button>
<el-button type="primary" @click="selectmoredel" size="mini" class="mb-2">批量删除</el-button>
<el-button type="primary" @click="handleSearch1" size="mini" class="mb-2" style="background: #FA8E00; border: none;">添加</el-button>
<el-button type="primary" @click="selectmoredel" size="mini" class="mb-2" style="background: #FA8E00; border: none;">批量删除</el-button>
<!-- <el-button type="primary" @click="dbing" size="mini" <!-- <el-button type="primary" @click="dbing" size="mini"
>管理绑定</el-button >管理绑定</el-button
> --> > -->
<el-button type="primary" @click="exportfun" size="mini" class="mb-2">导出房源</el-button>
<el-button type="primary" @click="backFun" size="mini" class="mb-2">返回</el-button>
<el-button type="primary" @click="exportfun" size="mini" class="mb-2" style="background: #FA8E00; border: none;">导出房源</el-button>
<el-button type="primary" @click="backFun" size="mini" class="mb-2" style="background: #FA8E00; border: none;">返回</el-button>
</div> </div>
<el-row :gutter="20"> <el-row :gutter="20">
<el-card shadow="nerver" class="m20"> <el-card shadow="nerver" class="m20">
@ -218,13 +218,13 @@
class="inputBox mb-2"> class="inputBox mb-2">
</el-input> </el-input>
<el-select v-model="searchRoomStatus" placeholder="请选择房间状态" size="small" class="mb-2" clearable> <el-select v-model="searchRoomStatus" placeholder="请选择房间状态" size="small" class="mb-2" clearable>
<el-option key="1" label="空房间" value="1">
<el-option key="1" label="空房间" value="0">
</el-option> </el-option>
<el-option key="2" label="已入住" value="2">
<el-option key="2" label="已入住" value="1">
</el-option> </el-option>
<el-option key="3" label="到期房" value="3">
<el-option key="3" label="到期房" value="2">
</el-option> </el-option>
<el-option key="4" label="维修房" value="4">
<el-option key="4" label="维修房" value="3">
</el-option> </el-option>
</el-select> </el-select>
<el-select v-model="roomLayout" placeholder="请选择房间户型" size="small" class="mb-2" clearable> <el-select v-model="roomLayout" placeholder="请选择房间户型" size="small" class="mb-2" clearable>
@ -248,8 +248,8 @@
<el-option key="2" label="已绑定" value="1"> <el-option key="2" label="已绑定" value="1">
</el-option> </el-option>
</el-select> </el-select>
<el-button type="primary" @click="getlist3" size="small" class="mb-2">查询</el-button>
<el-button type="primary" @click="resetInput" size="small" class="mb-2">重置</el-button>
<el-button type="primary" @click="getlist3" size="small" class="mb-2" style="background: #FA8E00; border: none;">查询</el-button>
<el-button type="primary" @click="resetInput" size="small" class="mb-2" style="background: #FA8E00; border: none;">重置</el-button>
</div> </div>
<el-table :data="userlist" border stripe class="table" ref="multipleTable" <el-table :data="userlist" border stripe class="table" ref="multipleTable"
@ -657,6 +657,10 @@ export default {
name: "room", name: "room",
data() { data() {
return { return {
emptyroomNum: 0,
unboundNum: 0,
checkin: 0,
buildingNum: 0,
colNum_4: 4, colNum_4: 4,
colNum_6: 6, colNum_6: 6,
colNum_18: 18, colNum_18: 18,
@ -892,7 +896,7 @@ export default {
this.optionsData = this.$MANUFACTURER.mapData this.optionsData = this.$MANUFACTURER.mapData
this.getlist(); this.getlist();
this.getvacancy(); this.getvacancy();
this.getcount();
this.getcount('');
this.queryfirst1(); this.queryfirst1();
this.getAllCertificates() this.getAllCertificates()
this.getdevice() this.getdevice()
@ -1234,7 +1238,7 @@ export default {
this.isRoom = true this.isRoom = true
this.onetypeget(data.id, function (data) { this.onetypeget(data.id, function (data) {
that.addrow = data; that.addrow = data;
console.log(that.addrow)
console.log(that.addrow)
}); });
this.editVisible1 = true; this.editVisible1 = true;
}, },
@ -1496,7 +1500,9 @@ export default {
pageNum: 1, pageNum: 1,
pageSize: 10 pageSize: 10
}; };
await this.getcount(data)
httpGet(data, this.$api.getSiteList).then(res => { httpGet(data, this.$api.getSiteList).then(res => {
console.log(res)
this.projectNum = res.data.list.total this.projectNum = res.data.list.total
var schoollist = res.data.list.list; var schoollist = res.data.list.list;
this.schoollist = schoollist this.schoollist = schoollist
@ -1528,7 +1534,7 @@ export default {
}); });
}, },
// //
getcount() {
getcount(data) {
// var data = { // var data = {
// type: 5, // type: 5,
// }; // };
@ -1537,9 +1543,26 @@ export default {
// this.pageTotal = res.data[0].device // this.pageTotal = res.data[0].device
// this.offline = res.data[0].offline // this.offline = res.data[0].offline
// }); // });
httpGet('', this.$api.getSiteList).then((res) => {
httpGet(data, this.$api.getSiteList).then((res) => {
console.log(res);
var roomNum = 0; var roomNum = 0;
var buildingNum = 0
var checkin = 0
var unboundNum = 0
res.data.list.list.map((li, index) => { res.data.list.list.map((li, index) => {
//
if (li.pid % 10 == 1 && li.type == 1) {
buildingNum++
}
//
if (li.isRoom == 1 && li.count != 0) {
checkin++
}
//
if (!li.imei && li.isRoom == 1) {
unboundNum++
}
//
let countNum = res.data.tenants.filter(item => item.id == li.id)[0] let countNum = res.data.tenants.filter(item => item.id == li.id)[0]
if (countNum) { if (countNum) {
li.count = countNum.count li.count = countNum.count
@ -1555,6 +1578,10 @@ export default {
} }
}); });
this.roomNum = roomNum; this.roomNum = roomNum;
this.buildingNum = buildingNum
this.checkin = checkin
this.unboundNum = unboundNum
this.emptyroomNum = roomNum - unboundNum - checkin
}) })
}, },
// //
@ -2216,15 +2243,16 @@ export default {
// //
getlistChildren(row) { getlistChildren(row) {
var q = { var q = {
name: this.input6,
deviceNum: this.searchDeviceNum,
name: this.input6, //
deviceNum: this.searchDeviceNum, //
ancestor: row.id, ancestor: row.id,
operationStatus: this.searchSelectStatus,
operationStatus: this.searchSelectStatus, //
isRoom: 1, isRoom: 1,
layout: this.roomLayout,
expand: {
// type: this.searchRoomStatus
},
layout: this.roomLayout, //
roomStatus: this.searchRoomStatus,
// expand: {
// type: this.searchRoomStatus
// },
}; };
var data = { var data = {
q: JSON.stringify(q), q: JSON.stringify(q),
@ -3229,4 +3257,5 @@ export default {
.h700 { .h700 {
height: 300px; height: 300px;
} }
}</style>
}
</style>

+ 75
- 77
src/views/systemConfiguration.vue View File

@ -2,29 +2,33 @@
<div> <div>
<el-card shadow="never"> <el-card shadow="never">
<div class="width-percentage-60" v-if="info.type === 0"> <div class="width-percentage-60" v-if="info.type === 0">
<el-form ref="form" :model="form" label-width="150px">
<el-form-item label="企业/部门">
<el-select v-model="form.id" placeholder="请选择">
<el-option
v-for="item in zNodes"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="设备接入数量">
<el-input v-model="form.number"></el-input>
</el-form-item>
<el-form-item label="设备接入授权时间">
<el-col :span="11">
<el-date-picker type="date" placeholder="选择日期" v-model="form.endTime" value-format="timestamp" format="yyyy 年 MM 月 dd 日" style="width: 100%;"></el-date-picker>
</el-col>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="onSubmit">确认</el-button>
</el-form-item>
</el-form>
<el-form ref="form" :model="form" label-width="150px">
<el-form-item label="企业/部门">
<el-select v-model="form.id" placeholder="请选择">
<el-option v-for="item in zNodes" :key="item.value" :label="item.label" :value="item.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="设备接入数量">
<el-input v-model="form.number"></el-input>
</el-form-item>
<el-form-item label="设备接入授权时间">
<el-col :span="11">
<el-date-picker type="date" placeholder="选择日期" v-model="form.endTime" value-format="timestamp"
format="yyyy 年 MM 月 dd 日" style="width: 100%;"></el-date-picker>
</el-col>
</el-form-item>
<el-form-item label="授权文件">
<el-upload action="" class="upload-demo" ref="upload" :on-change="handleChange" :auto-upload="false"
:limit="1">
<i class="el-icon-upload"></i>
<div class="el-upload__text">将文件拖到此处<em>点击上传</em></div>
</el-upload>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="onSubmit" style="background: #FA8E00; border: none;">确认</el-button>
</el-form-item>
</el-form>
</div> </div>
<div class="width-percentage-60" v-else> <div class="width-percentage-60" v-else>
<el-form ref="form" :model="form" label-width="150px"> <el-form ref="form" :model="form" label-width="150px">
@ -33,16 +37,12 @@
</el-form-item> </el-form-item>
<el-form-item label="设备接入授权时间"> <el-form-item label="设备接入授权时间">
<el-col :span="11"> <el-col :span="11">
<el-date-picker type="date" placeholder="选择日期" v-model="form.endTime" disabled value-format="timestamp" format="yyyy 年 MM 月 dd 日" style="width: 100%;"></el-date-picker>
<el-date-picker type="date" placeholder="选择日期" v-model="form.endTime" disabled value-format="timestamp"
format="yyyy 年 MM 月 dd 日" style="width: 100%;"></el-date-picker>
</el-col> </el-col>
</el-form-item> </el-form-item>
<el-form-item label="授权文件"> <el-form-item label="授权文件">
<el-upload
action=""
class="upload-demo"
ref="upload"
:on-change="handleChange"
:auto-upload="false"
<el-upload action="" class="upload-demo" ref="upload" :on-change="handleChange" :auto-upload="false"
:limit="1"> 点击上传 :limit="1"> 点击上传
</el-upload> </el-upload>
</el-form-item> </el-form-item>
@ -57,22 +57,22 @@
<script> <script>
import moment from "moment"; import moment from "moment";
import {httpGet, httpPost, setCode} from "../api";
import {ztreeToElementTree} from "../utils";
import { httpGet, httpPost, setCode } from "../api";
import { ztreeToElementTree } from "../utils";
export default { export default {
inject: ['reload'], inject: ['reload'],
name: "systemConfiguration", name: "systemConfiguration",
data(){
return{
fileList:[],
info:{type:''},
zNodes:[],
form:{
number:'',
id:'',
endTime:'',
key:''
data() {
return {
fileList: [],
info: { type: '' },
zNodes: [],
form: {
number: '',
id: '',
endTime: '',
key: ''
} }
} }
}, },
@ -81,13 +81,13 @@ export default {
this.info = info this.info = info
this.getEnterprise() this.getEnterprise()
}, },
methods:{
methods: {
getEnterprise() { getEnterprise() {
httpGet("", this.$api.getEnterprise).then((res) => { httpGet("", this.$api.getEnterprise).then((res) => {
res.data.list.map((li) => { res.data.list.map((li) => {
if(li.id == this.info.enterpriseId){
if (li.id == this.info.enterpriseId) {
let quota = JSON.parse(li.quota) let quota = JSON.parse(li.quota)
if(quota){
if (quota) {
this.form.number = quota.quota this.form.number = quota.quota
this.form.id = li.id this.form.id = li.id
this.form.endTime = quota.deadline this.form.endTime = quota.deadline
@ -97,17 +97,17 @@ export default {
li.label = li.name li.label = li.name
li.value = li.id li.value = li.id
}); });
let zNodes = [];let arr = []
let zNodes = []; let arr = []
zNodes = ztreeToElementTree(res.data.list, {}); zNodes = ztreeToElementTree(res.data.list, {});
if(zNodes.length>0){
if(zNodes[0].children){
zNodes[0].children.map(li=>{
let obj={
name:li.name,
id:li.id,
label:li.name,
value:li.id,
parentId:li.parentId
if (zNodes.length > 0) {
if (zNodes[0].children) {
zNodes[0].children.map(li => {
let obj = {
name: li.name,
id: li.id,
label: li.name,
value: li.id,
parentId: li.parentId
} }
arr.push(obj) arr.push(obj)
}) })
@ -126,11 +126,11 @@ export default {
this.$message.warning(`当前限制选择 1 个文件,本次选择了 ${files.length} 个文件,共选择了 ${files.length + fileList.length} 个文件`); this.$message.warning(`当前限制选择 1 个文件,本次选择了 ${files.length} 个文件,共选择了 ${files.length + fileList.length} 个文件`);
}, },
beforeRemove(file, fileList) { beforeRemove(file, fileList) {
return this.$confirm(`确定移除 ${ file.name }`);
return this.$confirm(`确定移除 ${file.name}`);
}, },
/*读取授权文件*/ /*读取授权文件*/
handleChange(file) { handleChange(file) {
let _this=this
let _this = this
let reader = new FileReader(); //new FileReader let reader = new FileReader(); //new FileReader
if (typeof FileReader === "undefined") { // FileReader if (typeof FileReader === "undefined") { // FileReader
this.$message({ this.$message({
@ -148,39 +148,39 @@ export default {
_this.form.key = snippets _this.form.key = snippets
}; };
}, },
onSubmit(){
let q={
"quota":this.form.number,
"deadline":this.form.endTime
onSubmit() {
let q = {
"quota": this.form.number,
"deadline": this.form.endTime
} }
let code = 'MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA0DLoa5uX9MjFQJkwvsTb92xkJnwffrdcjKnuFcYN3z4GrGYt0voO22zl3ncNOCzsXZmL6iOK6ukjolajqnpKB/ipXI0/17nZbmY4zturM49EkVt4qw0BvFR7bN/qo7By2Z9dpHOswDEDrJZk+mmD3MCX+ZK5zuhDFVYjDvX9oTZEBdTY5qrgVp2p3fOQCOccGR8ael8lQ+uwewlEMJoJ+NwtF6YPm/SEkVlcnD04J84i7RSXHLoXCV549E8Qv0rDfgcAZhWJfDFmdpuUr42N7TwXl2QI7hNXjqdGbmZjjeZ5MYVWIhDAUGPXB3wlJhYjem7wfjJyeKQ8Zi8vhTtkkQIDAQAB' let code = 'MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA0DLoa5uX9MjFQJkwvsTb92xkJnwffrdcjKnuFcYN3z4GrGYt0voO22zl3ncNOCzsXZmL6iOK6ukjolajqnpKB/ipXI0/17nZbmY4zturM49EkVt4qw0BvFR7bN/qo7By2Z9dpHOswDEDrJZk+mmD3MCX+ZK5zuhDFVYjDvX9oTZEBdTY5qrgVp2p3fOQCOccGR8ael8lQ+uwewlEMJoJ+NwtF6YPm/SEkVlcnD04J84i7RSXHLoXCV549E8Qv0rDfgcAZhWJfDFmdpuUr42N7TwXl2QI7hNXjqdGbmZjjeZ5MYVWIhDAUGPXB3wlJhYjem7wfjJyeKQ8Zi8vhTtkkQIDAQAB'
let data = { let data = {
key:setCode(code,JSON.stringify(q)),
id:this.form.id
key: setCode(code, JSON.stringify(q)),
id: this.form.id
} }
httpPost(data,this.$api.editLincense).then(res=>{
if(res.success){
httpPost(data, this.$api.editLincense).then(res => {
if (res.success) {
this.$message.success('设置成功') this.$message.success('设置成功')
this.reload() this.reload()
}else{
} else {
this.$message.error(`设置失败:${res.message}`) this.$message.error(`设置失败:${res.message}`)
} }
}) })
}, },
onSubmitOne(){
if(this.form.key==''){
onSubmitOne() {
if (this.form.key == '') {
this.$message.error("请上传授权文件") this.$message.error("请上传授权文件")
}else{
} else {
let data = { let data = {
key:this.form.key,
id:this.form.id
key: this.form.key,
id: this.form.id
} }
httpPost(data,this.$api.editLincense).then(res=>{
if(res.success){
httpPost(data, this.$api.editLincense).then(res => {
if (res.success) {
this.$message.success('设置成功') this.$message.success('设置成功')
this.reload() this.reload()
}else{
} else {
this.$message.error(`设置失败:${res.message}`) this.$message.error(`设置失败:${res.message}`)
} }
}) })
@ -190,6 +190,4 @@ export default {
} }
</script> </script>
<style scoped>
</style>
<style scoped></style>

+ 1
- 1
src/views/template/contractExportTemplate.vue View File

@ -1,6 +1,6 @@
<template> <template>
<div class="home" > <div class="home" >
<el-button type="primary" size="small" @click="dialogVisibleOne = true">创建模板</el-button>
<el-button type="primary" size="small" @click="dialogVisibleOne = true" style="background: #FA8E00; border: none;">创建模板</el-button>
<!-- <el-button type="primary" size="small" @click="uploadTemplate">上传模板</el-button>--> <!-- <el-button type="primary" size="small" @click="uploadTemplate">上传模板</el-button>-->
<el-table <el-table
:data="contractsList" :data="contractsList"


+ 656
- 574
src/views/userManagement.vue
File diff suppressed because it is too large
View File


+ 1
- 0
src/views/visualization/flatsIndex.vue View File

@ -789,6 +789,7 @@ export default {
// } // }
// }) // })
httpGet('', this.$api.getStatisticsByMonth + year).then(res => { httpGet('', this.$api.getStatisticsByMonth + year).then(res => {
console.log(res);
if (res.success) { if (res.success) {
let middleChartExtend = this.middleChartExtend let middleChartExtend = this.middleChartExtend
let arr = new Array(0).fill(this.sumRoom) let arr = new Array(0).fill(this.sumRoom)


Loading…
Cancel
Save