| | |
| | | // IMG_API: '"http://39.104.85.193:4105/upload/"', |
| | | // |
| | | // |
| | | // BASE_API: '"http://192.168.0.70:8100"', |
| | | // IMG_API: '"http://192.168.0.70:8100/upload/"', |
| | | // BASE_API: '"http://192.168.0.12:4105"', |
| | | // IMG_API: '"http://192.168.0.12:4105/upload/"', |
| | | // 贺哥 |
| | | BASE_API: '"http://192.168.2.58:8100"', |
| | | IMG_API: '"http://192.168.2.58:8100/upload/"', |
| | | |
| | | // 正式地址 |
| | | BASE_API: '"http://39.104.85.193:4105"', |
| | | IMG_API: '"http://39.104.85.193:4105/upload/"', |
| | | // BASE_API: '"http://39.104.85.193:4105"', |
| | | // IMG_API: '"http://39.104.85.193:4105/upload/"', |
| | | // IMG_API: '"http://127.0.0.1:8100/upload/"', |
| | | // IMG_API: '"https://sinanoaq.com:8100/upload/"', |
| | | // BASE_API: '"http://220.171.99.118:4100"', |
对比新文件 |
| | |
| | | import request from '@/utils/request' |
| | | import { getToken } from '@/utils/auth' |
| | | |
| | | export function getOriginalPerson(data){ |
| | | return request({ |
| | | headers:{ |
| | | 'Authorization':getToken() |
| | | }, |
| | | url:process.env.BASE_API+ '/originalPerson/pageList', |
| | | method:'post', |
| | | data |
| | | }) |
| | | } |
| | | |
| | | export function getOriginalPersonCar(data){ |
| | | return request({ |
| | | headers:{ |
| | | 'Authorization':getToken() |
| | | }, |
| | | url:process.env.BASE_API+ '/originalPerson/selectOriginalPersonCar', |
| | | method:'post', |
| | | data |
| | | }) |
| | | } |
| | | |
| | | export function getOriginalAlarm(data){ |
| | | return request({ |
| | | headers:{ |
| | | 'Authorization':getToken() |
| | | }, |
| | | url:process.env.BASE_API+ '/originalAlarm/pageList', |
| | | method:'post', |
| | | data |
| | | }) |
| | | } |
| | | |
| | | export function editAlarmInfo(params){ |
| | | return request({ |
| | | headers:{ |
| | | 'Authorization':getToken() |
| | | }, |
| | | url:process.env.BASE_API+ '/originalAlarm/editAlarmInfo', |
| | | method: 'get', |
| | | params: params || {}, |
| | | }) |
| | | } |
| | | |
| | | export function getEarlyPush(data){ |
| | | return request({ |
| | | headers:{ |
| | | 'Authorization':getToken() |
| | | }, |
| | | url:process.env.BASE_API+ '/originalAlarm/earlyPushPageList', |
| | | method:'post', |
| | | data |
| | | }) |
| | | } |
| | | |
| | | export function getStorePageList(data){ |
| | | return request({ |
| | | headers:{ |
| | | 'Authorization':getToken() |
| | | }, |
| | | url:process.env.BASE_API+ '/store/storePageList', |
| | | method:'post', |
| | | data |
| | | }) |
| | | } |
| | | |
| | | export function getStoreroomPage(data){ |
| | | return request({ |
| | | headers:{ |
| | | 'Authorization':getToken() |
| | | }, |
| | | url:process.env.BASE_API+ '/store/storeroomPageList', |
| | | method:'post', |
| | | data |
| | | }) |
| | | } |
| | | |
| | | export function getStoreroomPageV2(data){ |
| | | return request({ |
| | | headers:{ |
| | | 'Authorization':getToken() |
| | | }, |
| | | url:process.env.BASE_API+ '/store/storeroomPageListV2', |
| | | method:'post', |
| | | data |
| | | }) |
| | | } |
| | | |
| | | export function getDevicePageList(data){ |
| | | return request({ |
| | | headers:{ |
| | | 'Authorization':getToken() |
| | | }, |
| | | url:process.env.BASE_API+ '/store/storeroomDevicePageList', |
| | | method:'post', |
| | | data |
| | | }) |
| | | } |
| | | |
| | | export function getDeviceList(data){ |
| | | return request({ |
| | | headers:{ |
| | | 'Authorization':getToken() |
| | | }, |
| | | url:process.env.BASE_API+ '\n' + '/store/storeroomDeviceList', |
| | | method:'post', |
| | | data |
| | | }) |
| | | } |
| | | |
| | | export function getTemperaturePage(data){ |
| | | return request({ |
| | | headers:{ |
| | | 'Authorization':getToken() |
| | | }, |
| | | url:process.env.BASE_API+ '/store/temperaturePageList', |
| | | method:'post', |
| | | data |
| | | }) |
| | | } |
| | | |
| | | export function getHumidityPage(data){ |
| | | return request({ |
| | | headers:{ |
| | | 'Authorization':getToken() |
| | | }, |
| | | url:process.env.BASE_API+ '/store/humidityPageList', |
| | | method:'post', |
| | | data |
| | | }) |
| | | } |
| | | |
| | | export function addOrUpdateStoreroomDevice(data){ |
| | | return request({ |
| | | headers:{ |
| | | 'Authorization':getToken() |
| | | }, |
| | | url:process.env.BASE_API+ '/store/addOrUpdateStoreroomDevice', |
| | | method:'post', |
| | | data |
| | | }) |
| | | } |
| | | |
| | | export function deleteStoreroomDevice(data){ |
| | | return request({ |
| | | headers:{ |
| | | 'Authorization':getToken() |
| | | }, |
| | | url:process.env.BASE_API+ '/store/deleteStoreroomDevice', |
| | | method:'post', |
| | | params: data |
| | | }) |
| | | } |
对比新文件 |
| | |
| | | <template> |
| | | <el-dialog :visible.sync="editDialogVisible" :modal-append-to-body="false" :close-on-click-modal="false" :title="title" center |
| | | width="30%"> |
| | | <el-form ref="form" :rules="formRules" :model="form" label-width="140px" class="form"> |
| | | <el-form-item label="姓名:" prop="name"> |
| | | <el-input v-model.trim="form.name"/> |
| | | </el-form-item> |
| | | <el-form-item label="人员类型:" prop="type"> |
| | | <el-select v-model="form.type" placeholder="请选择类型"> |
| | | <el-option |
| | | v-for="item in typeList" |
| | | :key="item.id" |
| | | :label="item.name" |
| | | :value="item.id"> |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="联系方式:" prop="phone"> |
| | | <el-input type="number" v-model.number.trim="form.phone"/> |
| | | </el-form-item> |
| | | </el-form> |
| | | <span slot="footer" class="dialog-footer"> |
| | | <el-button @click="editDialogVisible = false">取 消</el-button> |
| | | <el-button type="primary" @click="confirm()">确 认</el-button> |
| | | </span> |
| | | </el-dialog> |
| | | </template> |
| | | |
| | | <script> |
| | | import {updateStorehouseData} from "../../../../api/warehouse"; |
| | | |
| | | export default { |
| | | name: "crewDialog", |
| | | data() { |
| | | return { |
| | | editDialogVisible: false, |
| | | title: '', |
| | | typeList: [ |
| | | { |
| | | id: 1, |
| | | name: '' |
| | | } |
| | | ], |
| | | form: {}, |
| | | formRules:{ |
| | | name:[ |
| | | { required: true, message: '请输入姓名', trigger: 'change' }, |
| | | ] |
| | | } |
| | | } |
| | | }, |
| | | created() { |
| | | const t = this |
| | | }, |
| | | methods: { |
| | | open(){ |
| | | this.editDialogVisible = true; |
| | | }, |
| | | confirm(){ |
| | | this.$refs.form.validate(async (valid) => { |
| | | if (valid) { |
| | | // const res = await updateStorehouseData(this.editForm) |
| | | // if(res.data.code == 200){ |
| | | // this.$message.success('盘库提交成功') |
| | | // |
| | | // }else{ |
| | | // this.$message.warning(res.data.message) |
| | | // } |
| | | // this.editDialogVisible = false |
| | | } |
| | | }) |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style lang="scss" scoped> |
| | | .part-title{ |
| | | font-size: 16px; |
| | | font-weight: bolder; |
| | | } |
| | | .selector{ |
| | | /deep/ .el-form-item__content{ |
| | | margin-left: 0 !important; |
| | | } |
| | | } |
| | | .form{ |
| | | .el-form-item{ |
| | | display: flex !important; |
| | | } |
| | | /deep/ .el-form-item__content{ |
| | | width: 100%; |
| | | margin-left: 0 !important; |
| | | } |
| | | } |
| | | |
| | | .numInput{ |
| | | /deep/ .el-input__inner{ |
| | | padding-right: 0; |
| | | } |
| | | } |
| | | </style> |
对比新文件 |
| | |
| | | <template> |
| | | <div class="app-container"> |
| | | <div class="filter-container"> |
| | | <div style="display: block;"> |
| | | <!-- <div class="basic_search" style="margin-right: 10px;padding-top: 10px">--> |
| | | <!-- <span>库房列表:</span>--> |
| | | <!-- <el-select v-model="listQuery.warehouseId" clearable filterable>--> |
| | | <!-- <el-option--> |
| | | <!-- v-for="item in warehouseList"--> |
| | | <!-- :key="item.id"--> |
| | | <!-- :label="item.name"--> |
| | | <!-- :value="item.name"--> |
| | | <!-- >--> |
| | | <!-- </el-option>--> |
| | | <!-- </el-select>--> |
| | | <!-- </div>--> |
| | | <div class="basic_search"> |
| | | <span>企业名称:</span> |
| | | <el-input v-model.trim="listQuery.filter.companyName" style="width: 300px"/> |
| | | </div> |
| | | <div class="basic_search" style="margin-right: 10px"> |
| | | <el-button style="margin-left: 10px;" type="primary" @click="reset()">重置</el-button> |
| | | <el-button style="margin-left: 10px;" type="primary" icon="el-icon-search" @click="search()">查询 |
| | | </el-button> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <br> |
| | | <div class="table_content"> |
| | | <el-table |
| | | v-loading="listLoading" |
| | | :key="tableKey" |
| | | :data="dataList" |
| | | border |
| | | fit |
| | | highlight-current-row |
| | | style="width: 100%;" |
| | | > |
| | | <el-table-column label="序号" type="index" align="center"></el-table-column> |
| | | <el-table-column label="企业" prop="companyName" align="center"></el-table-column> |
| | | <el-table-column label="人员数量" prop="personCount" align="center"></el-table-column> |
| | | <el-table-column label="车辆数量" prop="carCount" align="center"></el-table-column> |
| | | <el-table-column label="创建人" prop="createBy" align="center"></el-table-column> |
| | | <el-table-column label="修改人" prop="updateBy" align="center"></el-table-column> |
| | | <el-table-column label="创建时间" prop="createDate" align="center"></el-table-column> |
| | | <el-table-column label="修改时间" prop="updateDate" align="center"></el-table-column> |
| | | <el-table-column label="数据采集时间" prop="collectTime" align="center"></el-table-column> |
| | | <el-table-column label="数据同步时间" prop="syncTime" align="center"></el-table-column> |
| | | <el-table-column label="删除标识" prop="deleteFlag" align="center"> |
| | | <template slot-scope="scope"> |
| | | {{scope.row.deleteFlag == 1?'是':'否'}} |
| | | </template> |
| | | </el-table-column> |
| | | <!-- <el-table-column label="操作" align="center" width="120" class-name="small-padding fixed-width" fixed="right">--> |
| | | <!-- <template slot-scope="scope">--> |
| | | <!-- <el-button type="text" @click="openDialog('edit',scope.row)">修改</el-button>--> |
| | | <!-- <el-button type="text" @click="deleteData(scope.row)">删除</el-button>--> |
| | | <!-- </template>--> |
| | | <!-- </el-table-column>--> |
| | | </el-table> |
| | | <br> |
| | | <div style="display: flex;justify-content: right"> |
| | | <el-pagination |
| | | v-show="recordTotal>0" |
| | | :current-page="currentPage" |
| | | :page-sizes="[10, 20, 30, 50]" |
| | | :page-size="listQuery.pageSize" |
| | | :total="recordTotal" |
| | | layout="total, sizes, prev, pager, next, jumper" |
| | | background |
| | | @size-change="handleSizeChange" |
| | | @current-change="handleCurrentChange" |
| | | /> |
| | | </div> |
| | | <car-people-dialog ref="carPeople"></car-people-dialog> |
| | | </div> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import {computePageCount} from "../../../utils"; |
| | | import {getOriginalPersonCar} from "../../../api/monitorAlert" |
| | | import carPeopleDialog from "./components/carPeopleDialog" |
| | | |
| | | export default { |
| | | name: "carPeople", |
| | | components: {carPeopleDialog}, |
| | | data() { |
| | | return { |
| | | tableKey: '', |
| | | recordTotal: 0, |
| | | currentPage: 1, |
| | | warehouseList: [], |
| | | listLoading: false, |
| | | dataList: [], |
| | | listQuery: { |
| | | filter: { |
| | | companyCode: '', |
| | | companyName: '' |
| | | }, |
| | | pageIndex: 1, |
| | | pageSize: 10 |
| | | } |
| | | } |
| | | }, |
| | | created() { |
| | | this.getDataList() |
| | | }, |
| | | mounted() { |
| | | }, |
| | | watch: {}, |
| | | methods: { |
| | | openDialog(type, data) { |
| | | this.$refs.carPeople.open(type, data) |
| | | }, |
| | | deleteData(data) { |
| | | |
| | | }, |
| | | async getDataList() { |
| | | let res = await getOriginalPersonCar(this.listQuery) |
| | | if (res.data.code === "200") { |
| | | const data = res.data.result |
| | | if (Array.isArray(data.records)) { |
| | | this.dataList = data.records |
| | | this.recordTotal = data.total |
| | | this.currentPage = data.current |
| | | } else { |
| | | this.dataList = [] |
| | | } |
| | | } else { |
| | | this.$message({ |
| | | type: 'warning', |
| | | message: res.data.message |
| | | }) |
| | | } |
| | | this.listLoading = false |
| | | }, |
| | | handleSizeChange: function (val) { |
| | | this.listQuery.pageSize = val |
| | | this.getDataList() |
| | | }, |
| | | handleCurrentChange: function (val) { |
| | | this.listQuery.pageIndex = val |
| | | this.getDataList() |
| | | }, |
| | | reset() { |
| | | this.listQuery = { |
| | | filter: { |
| | | companyName: '' |
| | | }, |
| | | pageIndex: 1, |
| | | pageSize: 10 |
| | | } |
| | | this.getDataList() |
| | | }, |
| | | search() { |
| | | this.listQuery.pageIndex = 1 |
| | | this.getDataList() |
| | | } |
| | | }, |
| | | } |
| | | </script> |
| | | |
| | | <style scoped> |
| | | .basic_search { |
| | | display: inline-block; |
| | | } |
| | | </style> |
对比新文件 |
| | |
| | | <template> |
| | | <el-dialog :visible.sync="editDialogVisible" :modal-append-to-body="false" :close-on-click-modal="false" :title="title" center |
| | | width="30%"> |
| | | <el-form ref="form" :rules="formRules" :model="form" label-width="140px" class="form"> |
| | | <el-form-item label="姓名:" prop="personName"> |
| | | <el-input v-model.trim="form.personName"/> |
| | | </el-form-item> |
| | | <el-form-item label="人员类型:" prop="type"> |
| | | <el-select v-model="form.type" placeholder="请选择类型"> |
| | | <el-option |
| | | v-for="item in typeList" |
| | | :key="item.id" |
| | | :label="item.name" |
| | | :value="item.id"> |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="联系方式:" prop="phone"> |
| | | <el-input type="number" v-model.number.trim="form.phone"/> |
| | | </el-form-item> |
| | | </el-form> |
| | | <span slot="footer" class="dialog-footer"> |
| | | <el-button @click="editDialogVisible = false">取 消</el-button> |
| | | <el-button type="primary" @click="confirm()">确 认</el-button> |
| | | </span> |
| | | </el-dialog> |
| | | </template> |
| | | |
| | | <script> |
| | | import {} from "../../../../api/monitorAlert"; |
| | | import Cookies from "js-cookie" |
| | | export default { |
| | | name: "crewDialog", |
| | | data() { |
| | | return { |
| | | editDialogVisible: false, |
| | | title: '', |
| | | typeList: [ |
| | | { |
| | | name: '法定代表人', |
| | | value: 1 |
| | | }, |
| | | { |
| | | name: '主要负责人', |
| | | value: 2 |
| | | }, |
| | | { |
| | | name: '安全负责人', |
| | | value: 3 |
| | | }, |
| | | { |
| | | name: '保管员', |
| | | value: 4 |
| | | }, |
| | | { |
| | | name: '守护员', |
| | | value: 5 |
| | | } |
| | | ], |
| | | form: { |
| | | personName: '', |
| | | personType: null, |
| | | |
| | | }, |
| | | formRules:{ |
| | | name:[ |
| | | { required: true, message: '请输入姓名', trigger: 'change' }, |
| | | ] |
| | | } |
| | | } |
| | | }, |
| | | created() { |
| | | const t = this |
| | | }, |
| | | methods: { |
| | | open(){ |
| | | this.editDialogVisible = true; |
| | | }, |
| | | confirm(){ |
| | | this.$refs.form.validate(async (valid) => { |
| | | if (valid) { |
| | | // const res = await addOriginalPerson(this.editForm) |
| | | // if(res.data.code == 200){ |
| | | // this.$message.success('盘库提交成功') |
| | | // |
| | | // }else{ |
| | | // this.$message.warning(res.data.message) |
| | | // } |
| | | this.editDialogVisible = false |
| | | } |
| | | }) |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style lang="scss" scoped> |
| | | .part-title{ |
| | | font-size: 16px; |
| | | font-weight: bolder; |
| | | } |
| | | .selector{ |
| | | /deep/ .el-form-item__content{ |
| | | margin-left: 0 !important; |
| | | } |
| | | } |
| | | .form{ |
| | | .el-form-item{ |
| | | display: flex !important; |
| | | } |
| | | /deep/ .el-form-item__content{ |
| | | width: 100%; |
| | | margin-left: 0 !important; |
| | | } |
| | | } |
| | | |
| | | .numInput{ |
| | | /deep/ .el-input__inner{ |
| | | padding-right: 0; |
| | | } |
| | | } |
| | | </style> |
对比新文件 |
| | |
| | | <template> |
| | | <div class="app-container"> |
| | | <div class="filter-container"> |
| | | <div> |
| | | <div class="basic_search"> |
| | | <span>企业名称:</span> |
| | | <el-input v-model.trim="listQuery.filter.companyName" style="width: 300px"/> |
| | | </div> |
| | | <div class="basic_search"> |
| | | <el-button style="margin-left: 10px;" type="primary" @click="reset()">重置</el-button> |
| | | <el-button style="margin-left: 10px;" type="primary" icon="el-icon-search" @click="search()">查询</el-button> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <br/> |
| | | <div class="table_content"> |
| | | <el-table |
| | | v-loading="listLoading" |
| | | :key="tableKey" |
| | | :data="dataList" |
| | | border |
| | | fit |
| | | highlight-current-row |
| | | style="width: 100%;" |
| | | > |
| | | <el-table-column label="序号" type="index" align="center"></el-table-column> |
| | | <el-table-column label="姓名" prop="personName" align="center"></el-table-column> |
| | | <el-table-column label="企业名称" prop="companyName" align="center"></el-table-column> |
| | | <el-table-column label="人员类型" prop="personType" align="center"> |
| | | <template slot-scope="scope"> |
| | | {{getTypeName(scope.row.personType)}} |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="联系方式" prop="mb" align="center"></el-table-column> |
| | | <el-table-column label="创建人" prop="createBy" align="center"></el-table-column> |
| | | <el-table-column label="修改人" prop="updateBy" align="center"></el-table-column> |
| | | <el-table-column label="创建时间" prop="createDate" align="center"></el-table-column> |
| | | <el-table-column label="修改时间" prop="updateDate" align="center"></el-table-column> |
| | | <!-- <el-table-column label="操作" align="center" width="120" class-name="small-padding fixed-width" fixed="right">--> |
| | | <!-- <template slot-scope="scope">--> |
| | | <!-- <el-button type="text" @click="openDialog('view',scope.row)">查看</el-button>--> |
| | | <!-- <el-button type="text" @click="deleteData(scope.row)">删除</el-button>--> |
| | | <!-- </template>--> |
| | | <!-- </el-table-column>--> |
| | | </el-table> |
| | | <br/> |
| | | <div style="display: flex;justify-content: right"> |
| | | <el-pagination |
| | | v-show="recordTotal>0" |
| | | :current-page="currentPage" |
| | | :page-sizes="[10, 20, 30, 50]" |
| | | :page-size="listQuery.pageSize" |
| | | :total="recordTotal" |
| | | layout="total, sizes, prev, pager, next, jumper" |
| | | background |
| | | @size-change="handleSizeChange" |
| | | @current-change="handleCurrentChange" |
| | | /> |
| | | </div> |
| | | </div> |
| | | <crew-dialog ref="crewDialog"></crew-dialog> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import {computePageCount} from "../../../utils"; |
| | | import {getOriginalPerson} from "../../../api/monitorAlert" |
| | | import crewDialog from "./components/crewDialog" |
| | | import Cookies from "js-cookie" |
| | | export default { |
| | | name: "crewInfo", |
| | | components: {crewDialog}, |
| | | data() { |
| | | return { |
| | | tableKey: '', |
| | | recordTotal: 0, |
| | | currentPage: 1, |
| | | Cookies: Cookies, |
| | | listLoading: false, |
| | | dataList: [], |
| | | listQuery: { |
| | | filter:{ |
| | | companyCode: '', |
| | | companyName: '' |
| | | }, |
| | | pageIndex:1, |
| | | pageSize:10 |
| | | }, |
| | | typeList: [ |
| | | { |
| | | name: '法定代表人', |
| | | value: 1 |
| | | }, |
| | | { |
| | | name: '主要负责人', |
| | | value: 2 |
| | | }, |
| | | { |
| | | name: '安全负责人', |
| | | value: 3 |
| | | }, |
| | | { |
| | | name: '保管员', |
| | | value: 4 |
| | | }, |
| | | { |
| | | name: '守护员', |
| | | value: 5 |
| | | } |
| | | ] |
| | | } |
| | | }, |
| | | created() { |
| | | this.getDataList() |
| | | }, |
| | | mounted() { |
| | | }, |
| | | watch: {}, |
| | | methods: { |
| | | openDialog(type,data){ |
| | | this.$refs.crewDialog.open(type,data) |
| | | }, |
| | | deleteData(data){ |
| | | |
| | | }, |
| | | getTypeName(type){ |
| | | return this.typeList.find(i=>i.value == type).name |
| | | }, |
| | | async getDataList() { |
| | | let res = await getOriginalPerson(this.listQuery) |
| | | if (res.data.code === "200") { |
| | | const data = res.data.result |
| | | if(Array.isArray(data.records)){ |
| | | this.dataList = data.records |
| | | this.recordTotal = data.total |
| | | this.currentPage = data.current |
| | | }else{ |
| | | this.dataList = [] |
| | | } |
| | | } else { |
| | | this.$message({ |
| | | type: 'warning', |
| | | message: res.data.message |
| | | }) |
| | | } |
| | | this.listLoading = false |
| | | }, |
| | | handleSizeChange: function(val) { |
| | | this.listQuery.pageSize = val |
| | | this.getDataList() |
| | | }, |
| | | handleCurrentChange: function(val) { |
| | | this.listQuery.pageIndex = val |
| | | this.getDataList() |
| | | }, |
| | | reset(){ |
| | | this.listQuery = { |
| | | filter:{ |
| | | companyName: '' |
| | | }, |
| | | pageIndex:1, |
| | | pageSize:10 |
| | | } |
| | | this.getDataList() |
| | | }, |
| | | search(){ |
| | | this.listQuery.pageIndex = 1 |
| | | this.getDataList() |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style scoped> |
| | | .basic_search { |
| | | display: inline-block; |
| | | } |
| | | </style> |
对比新文件 |
| | |
| | | <template> |
| | | <el-dialog :visible.sync="editDialogVisible" :modal-append-to-body="false" :close-on-click-modal="false" :title="title" center |
| | | width="30%"> |
| | | <el-form ref="form" :rules="formRules" :model="form" label-width="140px" class="form"> |
| | | <el-form-item label="姓名:" prop="name"> |
| | | <el-input v-model.trim="form.name"/> |
| | | </el-form-item> |
| | | <el-form-item label="人员类型:" prop="type"> |
| | | <el-select v-model="form.type" placeholder="请选择类型"> |
| | | <el-option |
| | | v-for="item in typeList" |
| | | :key="item.id" |
| | | :label="item.name" |
| | | :value="item.id"> |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="联系方式:" prop="phone"> |
| | | <el-input type="number" v-model.number.trim="form.phone"/> |
| | | </el-form-item> |
| | | </el-form> |
| | | <span slot="footer" class="dialog-footer"> |
| | | <el-button @click="editDialogVisible = false">取 消</el-button> |
| | | <el-button type="primary" @click="confirm()">确 认</el-button> |
| | | </span> |
| | | </el-dialog> |
| | | </template> |
| | | |
| | | <script> |
| | | import {updateStorehouseData} from "../../../../api/warehouse"; |
| | | |
| | | export default { |
| | | name: "crewDialog", |
| | | data() { |
| | | return { |
| | | editDialogVisible: false, |
| | | title: '', |
| | | typeList: [ |
| | | { |
| | | id: 1, |
| | | name: '' |
| | | } |
| | | ], |
| | | form: {}, |
| | | formRules:{ |
| | | name:[ |
| | | { required: true, message: '请输入姓名', trigger: 'change' }, |
| | | ] |
| | | } |
| | | } |
| | | }, |
| | | created() { |
| | | const t = this |
| | | }, |
| | | methods: { |
| | | open(){ |
| | | this.editDialogVisible = true; |
| | | }, |
| | | confirm(){ |
| | | this.$refs.form.validate(async (valid) => { |
| | | if (valid) { |
| | | // const res = await updateStorehouseData(this.editForm) |
| | | // if(res.data.code == 200){ |
| | | // this.$message.success('盘库提交成功') |
| | | // |
| | | // }else{ |
| | | // this.$message.warning(res.data.message) |
| | | // } |
| | | // this.editDialogVisible = false |
| | | } |
| | | }) |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style lang="scss" scoped> |
| | | .part-title{ |
| | | font-size: 16px; |
| | | font-weight: bolder; |
| | | } |
| | | .selector{ |
| | | /deep/ .el-form-item__content{ |
| | | margin-left: 0 !important; |
| | | } |
| | | } |
| | | .form{ |
| | | .el-form-item{ |
| | | display: flex !important; |
| | | } |
| | | /deep/ .el-form-item__content{ |
| | | width: 100%; |
| | | margin-left: 0 !important; |
| | | } |
| | | } |
| | | |
| | | .numInput{ |
| | | /deep/ .el-input__inner{ |
| | | padding-right: 0; |
| | | } |
| | | } |
| | | </style> |
对比新文件 |
| | |
| | | <template> |
| | | <div class="app-container"> |
| | | <div class="filter-container"> |
| | | <div style="display: block;"> |
| | | <div class="basic_search" style="padding-top: 10px;"> |
| | | <span>按时间查询:</span> |
| | | <el-date-picker |
| | | value-format="yyyy-MM-dd HH:mm:ss" |
| | | v-model="validTime" |
| | | type="daterange" |
| | | :default-time="['00:00:00','23:59:59']" |
| | | range-separator="-" |
| | | start-placeholder="开始日期" |
| | | end-placeholder="结束日期" |
| | | > |
| | | </el-date-picker> |
| | | </div> |
| | | <div class="basic_search" style="margin-right: 10px;padding-top: 10px"> |
| | | <span>推送状态:</span> |
| | | <el-select v-model="listQuery.filter.pushType" clearable filterable> |
| | | <el-option key="0" label="未下发" :value="0"></el-option> |
| | | <el-option key="1" label="已下发" :value="1"></el-option> |
| | | <el-option key="2" label="已反馈" :value="2"></el-option> |
| | | </el-select> |
| | | </div> |
| | | <div class="basic_search"> |
| | | <span>区域:</span> |
| | | <el-select v-model="listQuery.filter.provinceCode" clearable filterable @change="changeArea('province')"> |
| | | <el-option |
| | | v-for="item in provinceList" |
| | | :key="item.id" |
| | | :label="item.name" |
| | | :value="item.code" |
| | | > |
| | | </el-option> |
| | | </el-select> |
| | | </div> |
| | | <div class="basic_search"> |
| | | <el-select v-model="listQuery.filter.cityCode" prop="city" clearable filterable @change="changeArea('city')"> |
| | | <el-option |
| | | v-for="item in cityList" |
| | | :key="item.id" |
| | | :label="item.name" |
| | | :value="item.code" |
| | | > |
| | | </el-option> |
| | | </el-select> |
| | | </div> |
| | | <div class="basic_search"> |
| | | <el-select v-model="listQuery.filter.areaCode" clearable filterable> |
| | | <el-option |
| | | v-for="item in districtList" |
| | | :key="item.id" |
| | | :label="item.name" |
| | | :value="item.code" |
| | | > |
| | | </el-option> |
| | | </el-select> |
| | | </div> |
| | | <div class="basic_search" style="margin-right: 10px;padding-top: 10px"> |
| | | <span>企业名称:</span> |
| | | <el-input v-model.trim="listQuery.filter.companyName" style="width: 300px"/> |
| | | </div> |
| | | <div class="basic_search" style="margin-right: 10px"> |
| | | <el-button style="margin-left: 10px;" type="primary" @click="reset()">重置</el-button> |
| | | <el-button style="margin-left: 10px;" type="primary" icon="el-icon-search" @click="search()">查询</el-button> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div class="table_content"> |
| | | <el-table |
| | | v-loading="listLoading" |
| | | :key="tableKey" |
| | | :data="dataList" |
| | | border |
| | | fit |
| | | highlight-current-row |
| | | style="width: 100%;" |
| | | > |
| | | <el-table-column label="序号" type="index" align="center"></el-table-column> |
| | | <el-table-column label="企业名称" prop="companyName" align="center"></el-table-column> |
| | | <el-table-column label="市(地、州)" prop=cityName"" align="center"></el-table-column> |
| | | <el-table-column label="区县" prop="areaName" align="center"></el-table-column> |
| | | <el-table-column label="风险等级" prop="riskLevel" align="center"></el-table-column> |
| | | <el-table-column label="推送状态" prop="pushType" align="center"> |
| | | <template slot-scope="scope"> |
| | | {{ scope.row.pushType == 0?'未下发':scope.row.pushType == 1?'已下发':'已反馈' }} |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="推送内容" prop="pushContent" align="center"></el-table-column> |
| | | <el-table-column label="反馈意见" prop="feedback" align="center"></el-table-column> |
| | | <el-table-column label="创建时间" prop="createDate" align="center"></el-table-column> |
| | | <el-table-column label="创建人" prop="createBy" align="center"></el-table-column> |
| | | <el-table-column label="更新时间" prop="updateDate" align="center"></el-table-column> |
| | | <el-table-column label="更新人" prop="updateBy" align="center"></el-table-column> |
| | | <!-- <el-table-column label="操作" align="center" width="120" class-name="small-padding fixed-width" fixed="right">--> |
| | | <!-- <template slot-scope="scope">--> |
| | | <!-- <el-button type="text" @click="handleBack(scope.row)">提交反馈</el-button>--> |
| | | <!-- <el-button type="text" @click="deleteData(scope.row)">标记删除</el-button>--> |
| | | <!-- </template>--> |
| | | <!-- </el-table-column>--> |
| | | </el-table> |
| | | <br> |
| | | <div style="display: flex;justify-content: right"> |
| | | <el-pagination |
| | | v-show="recordTotal>0" |
| | | :current-page="currentPage" |
| | | :page-sizes="[10, 20, 30, 50]" |
| | | :page-size="listQuery.pageSize" |
| | | :total="recordTotal" |
| | | layout="total, sizes, prev, pager, next, jumper" |
| | | background |
| | | @size-change="handleSizeChange" |
| | | @current-change="handleCurrentChange" |
| | | /> |
| | | </div> |
| | | <pre-warning-dialog ref="preWarningRef"></pre-warning-dialog> |
| | | </div> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import {computePageCount} from "../../../utils"; |
| | | import {regionPifaBox} from "../../../api/stock" |
| | | import preWarningDialog from "./components/preWarningDialog" |
| | | import {getCityListData, getProvinceListData} from "../../../api/area"; |
| | | import {getEarlyPush, getOriginalAlarm} from "../../../api/monitorAlert"; |
| | | |
| | | export default { |
| | | name: "preWarning", |
| | | components: { preWarningDialog }, |
| | | data() { |
| | | return { |
| | | tableKey: '', |
| | | recordTotal: 0, |
| | | currentPage: 1, |
| | | validTime: [], |
| | | areaListQuery: {}, |
| | | provinceList: [], |
| | | cityList: [], |
| | | districtList: [], |
| | | listLoading: false, |
| | | dataList: [], |
| | | listQuery: { |
| | | filter:{ |
| | | createDateStart: '', |
| | | createDateEnd: '', |
| | | pushType: null, |
| | | companyCode: '', |
| | | companyName: '', |
| | | provinceCode: '', |
| | | cityCode: '', |
| | | areaCode: '' |
| | | }, |
| | | pageIndex:1, |
| | | pageSize:10 |
| | | }, |
| | | } |
| | | }, |
| | | created() { |
| | | this.getProvince() |
| | | this.getDataList() |
| | | }, |
| | | mounted() { |
| | | }, |
| | | watch: {}, |
| | | methods: { |
| | | openDialog(type,data){ |
| | | this.$refs.preWarningRef.open(type,data) |
| | | }, |
| | | handleBack(){ |
| | | |
| | | }, |
| | | deleteData(data){ |
| | | |
| | | }, |
| | | async getProvince(){ |
| | | let res = await getProvinceListData() |
| | | if(res.data.code === "200"){ |
| | | this.provinceList = res.data.result.provinceList |
| | | } |
| | | },//获取省 |
| | | async changeArea(value){ |
| | | if(value === 'province'){ |
| | | this.listQuery.filter.cityCode = '' |
| | | this.listQuery.filter.areaCode = '' |
| | | this.areaListQuery = { |
| | | type: 2, |
| | | parenttype: 1, |
| | | parentname: this.provinceList.find(i=>i.code == this.listQuery.filter.provinceCode).name |
| | | } |
| | | let res = await getCityListData(this.areaListQuery) |
| | | if(res.data.code === "200"){ |
| | | this.cityList = res.data.result |
| | | } |
| | | }else{ |
| | | this.listQuery.filter.areaCode = '' |
| | | this.areaListQuery = { |
| | | type: 3, |
| | | parenttype: 2, |
| | | parentname:this.cityList.find(i=>i.code == this.listQuery.filter.cityCode).name |
| | | } |
| | | let res = await getCityListData(this.areaListQuery) |
| | | if(res.data.code === "200"){ |
| | | this.districtList = res.data.result |
| | | } |
| | | } |
| | | },//市、镇、街道、委员会 |
| | | async getDataList() { |
| | | if(this.validTime.length>0){ |
| | | this.listQuery.filter.createDateStart = this.validTime[0] |
| | | this.listQuery.filter.createDateEnd = this.validTime[1] |
| | | } |
| | | let res = await getEarlyPush(this.listQuery) |
| | | if (res.data.code === "200") { |
| | | const data = res.data.result |
| | | if(Array.isArray(data.records)){ |
| | | this.dataList = data.records |
| | | this.recordTotal = data.total |
| | | this.currentPage = data.current |
| | | }else{ |
| | | this.dataList = [] |
| | | } |
| | | } else { |
| | | this.$message({ |
| | | type: 'warning', |
| | | message: res.data.message |
| | | }) |
| | | } |
| | | this.listLoading = false |
| | | }, |
| | | handleSizeChange: function(val) { |
| | | this.listQuery.pageSize = val |
| | | this.getDataList() |
| | | }, |
| | | handleCurrentChange: function(val) { |
| | | this.listQuery.pageIndex = val |
| | | this.getDataList() |
| | | }, |
| | | reset(){ |
| | | this.listQuery = { |
| | | filter:{ |
| | | createDateStart: '', |
| | | createDateEnd: '', |
| | | pushType: null, |
| | | companyCode: '', |
| | | companyName: '', |
| | | provinceCode: '', |
| | | cityCode: '', |
| | | areaCode: '' |
| | | }, |
| | | pageIndex:1, |
| | | pageSize:10 |
| | | } |
| | | this.validTime = [] |
| | | this.cityList= [] |
| | | this.districtList= [] |
| | | this.getDataList() |
| | | }, |
| | | search(){ |
| | | this.listQuery.pageIndex = 1 |
| | | this.getDataList() |
| | | } |
| | | }, |
| | | } |
| | | </script> |
| | | |
| | | <style scoped> |
| | | .basic_search { |
| | | display: inline-block; |
| | | } |
| | | </style> |
对比新文件 |
| | |
| | | <template> |
| | | <el-dialog :visible.sync="dialogVisible" :close-on-click-modal="false" :title="dialogTitle" center |
| | | width="75%" @close="reset()"> |
| | | <el-form ref="dataForm" :rules="dataFormRules" :model="dataForm" label-position="right" label-width="150px" element-loading-text="保存中..."> |
| | | <div class="part-title"> |
| | | <span>库区基本信息填写</span> |
| | | </div> |
| | | <el-divider></el-divider> |
| | | <div> |
| | | <el-row :gutter="20"> |
| | | <el-col :span="12"> |
| | | <el-form-item label="仓库名称:" prop="storeName" > |
| | | <el-input v-model.trim="dataForm.storeName" :readonly="isDisabled"/> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="仓库面积:" prop="acreage" class="numInput"> |
| | | <el-input type="number" v-model.number="dataForm.acreage" :readonly="isDisabled"><template slot="append">㎡</template></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | |
| | | <el-row :gutter="20"> |
| | | <el-col :span="12"> |
| | | <el-form-item label="仓库编号:" prop="storeNum" > |
| | | <el-input v-model.trim="dataForm.storeNum" :readonly="isDisabled"/> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="核药量:" prop="dosage" class="numInput"> |
| | | <el-input type="number" v-model.number="dataForm.dosage" :readonly="isDisabled"><template slot="append">kg</template></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | |
| | | <el-row :gutter="20"> |
| | | <el-col :span="12"> |
| | | <el-form-item label="危险等级:" prop="dangerLevel" > |
| | | <el-input v-model.trim="dataForm.dangerLevel" :readonly="isDisabled"/> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="核定人员:" prop="personLimit" class="numInput"> |
| | | <el-input type="number" v-model.number="dataForm.personLimit" :readonly="isDisabled"></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | |
| | | </div> |
| | | <div class="part-title"> |
| | | <span>库房列表</span> |
| | | </div> |
| | | <el-divider></el-divider> |
| | | <el-table |
| | | :data="storeList" |
| | | border |
| | | :stripe="false" |
| | | style="width: 100%;" |
| | | > |
| | | <el-table-column label="序号" type="index" align="center"></el-table-column> |
| | | <el-table-column label="库房名称" prop="storeroomName" align="center"></el-table-column> |
| | | <el-table-column label="库房编号" prop="storeroomNum" align="center"></el-table-column> |
| | | <el-table-column label="面积/㎡" prop="acreage" align="center"></el-table-column> |
| | | <el-table-column label="危险等级" prop="dangerLevel" align="center"> |
| | | <template slot-scope="scope"> |
| | | {{ scope.row.dangerLevel == '1'?'1.1级库房':scope.row.dangerLevel == '2'?'1.3级库房': '无药库房'}} |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="核定药量/kg" prop="dosage" align="center"></el-table-column> |
| | | <el-table-column label="核定人员" prop="personLimit" align="center"></el-table-column> |
| | | <el-table-column label="操作" align="center" width="120" class-name="small-padding fixed-width" |
| | | fixed="right"> |
| | | <template slot-scope="scope"> |
| | | <el-button type="text" @click="openDevice(scope.row)">绑定设备</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | </el-form> |
| | | <br> |
| | | <span slot="footer" class="dialog-footer"> |
| | | <el-button type="primary" @click="dialogVisible = false">关 闭</el-button> |
| | | </span> |
| | | <device-dialog ref="deviceRef"></device-dialog> |
| | | </el-dialog> |
| | | |
| | | </template> |
| | | |
| | | <script> |
| | | import {mapGetters} from "vuex"; |
| | | import {getCityListData, getProvinceListData} from "../../../../api/area"; |
| | | import Cookies from 'js-cookie' |
| | | import {MessageBox} from "_element-ui@2.14.1@element-ui"; |
| | | import {getStoreroomPage, getStoreroomPageV2} from "../../../../api/monitorAlert"; |
| | | import deviceDialog from "./deviceDialog"; |
| | | export default { |
| | | name: "addStock", |
| | | components: {deviceDialog}, |
| | | data() { |
| | | return { |
| | | dialogVisible: false, |
| | | dialogTitle: '新增库区', |
| | | dataForm: {}, |
| | | storeList: [], |
| | | dataFormRules:{ |
| | | reserveName:[{ required: true, message: '请填写库区名称', trigger: 'blur' }], |
| | | province:[{ required: true, message: '请选择所在区划', trigger: 'blur' }], |
| | | city:[{ required: true, message: '请选择所在区划', trigger: 'blur' }], |
| | | area:[{ required: true, message: '请选择所在区划', trigger: 'blur' }], |
| | | reserveAddress:[{ required: true, message: '请填写库区地址', trigger: 'blur' }], |
| | | square:[{ required: true, message: '请填写库区总面积', trigger: 'blur' }], |
| | | effectiveStorageSquare:[{ required: true, message: '请填写库区有效仓储面积', trigger: 'blur' }], |
| | | approvedReserves:[{ required: true, message: '请填写库区核定储量', trigger: 'blur' }], |
| | | nuclearDose:[{ required: true, message: '请填写库区核药量', trigger: 'blur' }] |
| | | }, |
| | | isDisabled: false |
| | | } |
| | | }, |
| | | created() { |
| | | const t = this |
| | | }, |
| | | computed: { |
| | | ...mapGetters([ |
| | | 'userType', |
| | | 'username' |
| | | ]) |
| | | }, |
| | | methods: { |
| | | open(data){ |
| | | this.dialogTitle = '查看仓库' |
| | | this.dataForm = data |
| | | this.getDataList(data.companyCode,data.storeNum) |
| | | this.isDisabled = true |
| | | this.dialogVisible = true |
| | | }, |
| | | isKey(key,obj){ |
| | | return key in obj |
| | | }, |
| | | async getDataList(companyCode,storeNum) { |
| | | let res = await getStoreroomPage({ |
| | | filter:{ |
| | | provinceCode: '', |
| | | companyCode: companyCode, |
| | | storeNum: storeNum, |
| | | companyName: '' |
| | | }, |
| | | pageIndex:1, |
| | | pageSize:9999 |
| | | }) |
| | | if (res.data.code === "200") { |
| | | const data = res.data.result |
| | | if(Array.isArray(data.records)){ |
| | | this.storeList = data.records |
| | | }else{ |
| | | this.dataList = [] |
| | | } |
| | | } else { |
| | | this.$message({ |
| | | type: 'warning', |
| | | message: res.data.message |
| | | }) |
| | | } |
| | | }, |
| | | reset(){ |
| | | this.$refs.dataForm.resetFields() |
| | | this.$refs.dataForm.clearValidate() |
| | | this.$emit('refresh') |
| | | }, |
| | | openDevice(data){ |
| | | this.$refs.deviceRef.open(data) |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style lang="scss" scoped> |
| | | .part-title{ |
| | | font-size: 16px; |
| | | font-weight: bolder; |
| | | } |
| | | .selector{ |
| | | /deep/ .el-form-item__content{ |
| | | margin-left: 0 !important; |
| | | } |
| | | } |
| | | .editForm{ |
| | | .el-form-item{ |
| | | display: flex !important; |
| | | } |
| | | /deep/ .el-form-item__content{ |
| | | width: 100%; |
| | | margin-left: 0 !important; |
| | | } |
| | | } |
| | | |
| | | .numInput{ |
| | | /deep/ .el-input__inner{ |
| | | padding-right: 0; |
| | | } |
| | | } |
| | | tr{ |
| | | display: flex; |
| | | td{ |
| | | flex: 1; |
| | | display: flex; |
| | | justify-content: center; |
| | | padding: 5px; |
| | | align-items: center; |
| | | } |
| | | .w-12{ |
| | | flex: 0.5; |
| | | } |
| | | .w-20{ |
| | | flex: 2; |
| | | } |
| | | } |
| | | </style> |
对比新文件 |
| | |
| | | <template> |
| | | <el-dialog :visible.sync="dialogVisible" append-to-body :close-on-click-modal="false" title="设备管理" center width="75%"> |
| | | <el-button type="primary" style="margin-bottom: 20px" @click="openAdd('新增设备',{})">绑定设备</el-button> |
| | | <el-table |
| | | :data="deviceList" |
| | | border |
| | | :stripe="false" |
| | | style="width: 100%;" |
| | | > |
| | | <el-table-column label="序号" type="index" align="center"></el-table-column> |
| | | <el-table-column label="设备名称" prop="deviceName" align="center"></el-table-column> |
| | | <el-table-column label="设备ID" prop="deviceId" align="center"></el-table-column> |
| | | <el-table-column label="设备类型" prop="deviceId" align="center"> |
| | | <template slot-scope="scope"> |
| | | {{scope.row.deviceType == 1?'温湿度':'摄像头'}} |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="分组ID" prop="groupId" align="center"></el-table-column> |
| | | <el-table-column label="操作" align="center" width="180" class-name="small-padding fixed-width"> |
| | | <template slot-scope="scope"> |
| | | <el-button type="text" @click="openAdd('修改设备',scope.row)">修改</el-button> |
| | | <el-button type="text" style="color: red" @click="delDevice(scope.row)">删除</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | <span slot="footer" class="dialog-footer"> |
| | | <el-button type="primary" @click="dialogVisible = false">关 闭</el-button> |
| | | </span> |
| | | <el-dialog :visible.sync="addVisible" append-to-body :close-on-click-modal="false" :title="title" center width="50%" @close="reset()"> |
| | | <el-form ref="form" :rules="formRules" :model="deviceForm" label-width="140px" class="form"> |
| | | <el-form-item label="设备名称:" prop="deviceName"> |
| | | <el-input v-model.trim="deviceForm.deviceName"/> |
| | | </el-form-item> |
| | | <el-form-item label="设备ID:" prop="deviceId"> |
| | | <el-input v-model.trim="deviceForm.deviceId"/> |
| | | </el-form-item> |
| | | <el-form-item label="类型:" prop="deviceType"> |
| | | <el-select v-model="deviceForm.deviceType" placeholder="请选择类型"> |
| | | <el-option key="1" label="温湿度" :value="1"></el-option> |
| | | <el-option key="2" label="摄像头" :value="2"></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="分组ID:" prop="groupId"> |
| | | <el-input v-model.trim="deviceForm.groupId"/> |
| | | </el-form-item> |
| | | </el-form> |
| | | <span slot="footer" class="dialog-footer"> |
| | | <el-button @click="addVisible = false">取 消</el-button> |
| | | <el-button type="primary" @click="confirm()">确 认</el-button> |
| | | </span> |
| | | </el-dialog> |
| | | </el-dialog> |
| | | </template> |
| | | |
| | | <script> |
| | | import {mapGetters} from "vuex"; |
| | | import {getCityListData, getProvinceListData} from "../../../../api/area"; |
| | | // import {saveReserveInfo, getInfoById, editReserveInfo, delStore} from '../../../api/warehouse' |
| | | import Cookies from 'js-cookie' |
| | | import {MessageBox} from "_element-ui@2.14.1@element-ui"; |
| | | import { |
| | | addOrUpdateStoreroomDevice, deleteStoreroomDevice, |
| | | getDeviceList, |
| | | getDevicePageList, |
| | | getStoreroomPage, |
| | | getStoreroomPageV2 |
| | | } from "../../../../api/monitorAlert"; |
| | | export default { |
| | | name: "deviceDialog", |
| | | data() { |
| | | return { |
| | | dialogVisible: false, |
| | | title: '', |
| | | addVisible: false, |
| | | deviceQuery: { |
| | | companyCode: '', |
| | | storeNum: '', |
| | | storeroomNum: '', |
| | | }, |
| | | deviceList: [], |
| | | deviceForm: { |
| | | id: '', |
| | | companyCode: '', |
| | | deviceId: '', |
| | | deviceName: '', |
| | | deviceType: null, |
| | | groupId: '', |
| | | storeNum: '', |
| | | storeroomNum: '' |
| | | }, |
| | | formRules:{ |
| | | deviceName:[{ required: true, message: '请输入设备名称', trigger: 'change' },], |
| | | deviceId:[{ required: true, message: '请输入设备id', trigger: 'change' },], |
| | | deviceType:[{ required: true, message: '请输入设备类型', trigger: 'change' },], |
| | | groupId:[{ required: true, message: '请输入分组id', trigger: 'change' },] |
| | | } |
| | | } |
| | | }, |
| | | created() { |
| | | const t = this |
| | | }, |
| | | computed: { |
| | | ...mapGetters([ |
| | | 'userType', |
| | | 'username' |
| | | ]) |
| | | }, |
| | | methods: { |
| | | open(data){ |
| | | const {companyCode,storeNum,storeroomNum} = data |
| | | this.deviceQuery = {companyCode,storeNum,storeroomNum} |
| | | this.getDataList() |
| | | this.dialogVisible = true |
| | | }, |
| | | isKey(key,obj){ |
| | | return key in obj |
| | | }, |
| | | async getDataList() { |
| | | let res = await getDeviceList({ |
| | | filter: this.deviceQuery |
| | | }) |
| | | if (res.data.code === "200") { |
| | | if(Array.isArray(res.data.result)){ |
| | | this.deviceList = res.data.result |
| | | }else{ |
| | | this.dataList = [] |
| | | } |
| | | } else { |
| | | this.$message({ |
| | | type: 'warning', |
| | | message: res.data.message |
| | | }) |
| | | } |
| | | this.listLoading = false |
| | | }, |
| | | |
| | | openAdd(type,data){ |
| | | this.addVisible = true |
| | | this.title = type |
| | | this.deviceForm.companyCode = this.deviceQuery.companyCode |
| | | this.deviceForm.storeNum = this.deviceQuery.storeNum |
| | | this.deviceForm.storeroomNum = this.deviceQuery.storeroomNum |
| | | |
| | | console.log(data,'data') |
| | | if(type == '修改设备'){ |
| | | for(let i in this.deviceForm){ |
| | | if(this.isKey(i,data)){ |
| | | this.deviceForm[i] =data[i] |
| | | } |
| | | } |
| | | } |
| | | }, |
| | | |
| | | confirm(){ |
| | | this.$refs.form.validate(async (valid) => { |
| | | if (valid) { |
| | | const {id,...data} = this.deviceForm |
| | | const res = await addOrUpdateStoreroomDevice(this.title == '新增设备'?data:this.deviceForm) |
| | | if(res.data.code == 200){ |
| | | if(this.title == '新增设备'){ |
| | | this.$message.success('设备新增成功') |
| | | }else{ |
| | | this.$message.success('设备修改成功') |
| | | } |
| | | }else{ |
| | | this.$message.warning(res.data.message) |
| | | } |
| | | this.addVisible = false |
| | | await this.getDataList() |
| | | } |
| | | }) |
| | | }, |
| | | delDevice(data){ |
| | | const t = this |
| | | t.$confirm('此操作将删除该设备, 是否继续?', '提示', { |
| | | confirmButtonText: '确定', |
| | | cancelButtonText: '取消', |
| | | type: 'warning' |
| | | }).then(async () => { |
| | | const res = await deleteStoreroomDevice({id: data.id}) |
| | | console.log(res,'res') |
| | | if(res.data.code == 200){ |
| | | t.$message.success('设备删除成功') |
| | | }else{ |
| | | t.$message.warning(res.data.message) |
| | | } |
| | | await this.getDataList() |
| | | }) |
| | | }, |
| | | reset(){ |
| | | this.deviceForm={ |
| | | id: '', |
| | | companyCode: '', |
| | | deviceId: '', |
| | | deviceName: '', |
| | | deviceType: null, |
| | | groupId: '', |
| | | storeNum: '', |
| | | storeroomNum: '' |
| | | } |
| | | this.$refs.form.clearValidate() |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style lang="scss" scoped> |
| | | .part-title{ |
| | | font-size: 16px; |
| | | font-weight: bolder; |
| | | } |
| | | .selector{ |
| | | /deep/ .el-form-item__content{ |
| | | margin-left: 0 !important; |
| | | } |
| | | } |
| | | .editForm{ |
| | | .el-form-item{ |
| | | display: flex !important; |
| | | } |
| | | /deep/ .el-form-item__content{ |
| | | width: 100%; |
| | | margin-left: 0 !important; |
| | | } |
| | | } |
| | | |
| | | .numInput{ |
| | | /deep/ .el-input__inner{ |
| | | padding-right: 0; |
| | | } |
| | | } |
| | | tr{ |
| | | display: flex; |
| | | td{ |
| | | flex: 1; |
| | | display: flex; |
| | | justify-content: center; |
| | | padding: 5px; |
| | | align-items: center; |
| | | } |
| | | .w-12{ |
| | | flex: 0.5; |
| | | } |
| | | .w-20{ |
| | | flex: 2; |
| | | } |
| | | } |
| | | </style> |
对比新文件 |
| | |
| | | <template> |
| | | <div class="app-container"> |
| | | <div class="filter-container"> |
| | | <div class="basic_search"> |
| | | <span>区域:</span> |
| | | <el-select v-model="listQuery.filter.provinceCode" clearable filterable |
| | | @change="changeArea('province')"> |
| | | <el-option |
| | | v-for="item in provinceList" |
| | | :key="item.id" |
| | | :label="item.name" |
| | | :value="item.code" |
| | | > |
| | | </el-option> |
| | | </el-select> |
| | | </div> |
| | | <div class="basic_search"> |
| | | <el-select v-model="listQuery.filter.cityCode" prop="city" clearable filterable |
| | | @change="changeArea('city')"> |
| | | <el-option |
| | | v-for="item in cityList" |
| | | :key="item.id" |
| | | :label="item.name" |
| | | :value="item.code" |
| | | > |
| | | </el-option> |
| | | </el-select> |
| | | </div> |
| | | <div class="basic_search"> |
| | | <el-select v-model="listQuery.filter.areaCode" clearable filterable> |
| | | <el-option |
| | | v-for="item in districtList" |
| | | :key="item.id" |
| | | :label="item.name" |
| | | :value="item.code" |
| | | > |
| | | </el-option> |
| | | </el-select> |
| | | </div> |
| | | <div class="basic_search" style="margin-right: 10px;padding-top: 10px"> |
| | | <span>企业名称:</span> |
| | | <el-input v-model.trim="listQuery.filter.companyName" style="width: 300px"/> |
| | | </div> |
| | | <div class="basic_search" style="margin-right: 10px"> |
| | | <el-button style="margin-left: 10px;" type="primary" @click="reset()">重置</el-button> |
| | | <el-button style="margin-left: 10px;" type="primary" icon="el-icon-search" @click="search()">查询 |
| | | </el-button> |
| | | </div> |
| | | </div> |
| | | <div class="table_content"> |
| | | <el-table |
| | | v-loading="listLoading" |
| | | :data="dataList" |
| | | border |
| | | :stripe="false" |
| | | style="width: 100%;" |
| | | > |
| | | <el-table-column label="行政区划" align="center"> |
| | | <template slot-scope="scope"> |
| | | {{ scope.row.provinceName}} |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="企业名称" prop="companyName" align="center"></el-table-column> |
| | | <el-table-column label="仓库名称" prop="storeName" align="center"></el-table-column> |
| | | <el-table-column label="仓库编号" prop="storeNum" align="center"></el-table-column> |
| | | <el-table-column label="面积/㎡" prop="acreage" align="center"></el-table-column> |
| | | <el-table-column label="危险等级" prop="dangerLevel" align="center"> |
| | | <template slot-scope="scope"> |
| | | {{ scope.row.dangerLevel == '1'?'1.1级库房':scope.row.dangerLevel == '2'?'1.3级库房': '无药库房'}} |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="核定药量/kg" prop="dosage" align="center"></el-table-column> |
| | | <el-table-column label="核定人员" prop="personLimit" align="center"></el-table-column> |
| | | <el-table-column label="创建人" prop="createBy" align="center"></el-table-column> |
| | | <el-table-column label="修改人" prop="updateBy" align="center"></el-table-column> |
| | | <el-table-column label="创建时间" prop="createDate" align="center"></el-table-column> |
| | | <el-table-column label="修改时间" prop="updateDate" align="center"></el-table-column> |
| | | <el-table-column label="操作" align="center" width="120" class-name="small-padding fixed-width" |
| | | fixed="right"> |
| | | <template slot-scope="scope"> |
| | | <el-button type="text" @click="openStock(scope.row)">查看</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | <br> |
| | | <div style="display: flex;justify-content: right"> |
| | | <el-pagination |
| | | v-show="recordTotal>0" |
| | | :current-page="currentPage" |
| | | :page-sizes="[10, 20, 30, 50]" |
| | | :page-size="listQuery.pageSize" |
| | | :total="recordTotal" |
| | | layout="total, sizes, prev, pager, next, jumper" |
| | | background |
| | | @size-change="handleSizeChange" |
| | | @current-change="handleCurrentChange" |
| | | /> |
| | | </div> |
| | | <add-stock ref="addStock"></add-stock> |
| | | </div> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import {computePageCount} from "../../../utils"; |
| | | import addStock from "./components/addStock" |
| | | // import deliverUsage from "./components/deliverUsage" |
| | | // import stockRecords from "./components/stockRecords" |
| | | // import editStock from "./components/editStock" |
| | | // import enterpriseStock from "./components/enterpriseStock" |
| | | import Cookies from "js-cookie" |
| | | import {getOriginalPerson, getStorePageList} from "../../../api/monitorAlert"; |
| | | import {getCityListData, getProvinceListData} from "../../../api/area"; |
| | | |
| | | export default { |
| | | name: "stockManage", |
| | | components: {addStock}, |
| | | data() { |
| | | return { |
| | | tableKey: '', |
| | | recordTotal: 0, |
| | | currentPage: 1, |
| | | provinceList: [], |
| | | cityList: [], |
| | | districtList: [], |
| | | areaListQuery: {}, |
| | | Cookies: Cookies, |
| | | listLoading: false, |
| | | dataList: [], |
| | | isAdmin: false, |
| | | listQuery: { |
| | | filter: { |
| | | companyCode: '', |
| | | companyName: '', |
| | | provinceCode: '', |
| | | cityCode: '', |
| | | areaCode: '' |
| | | }, |
| | | pageIndex: 1, |
| | | pageSize: 10 |
| | | } |
| | | } |
| | | }, |
| | | created() { |
| | | const t = this |
| | | t.getDataList() |
| | | t.getProvince() |
| | | const roles = JSON.parse(Cookies.get('roles')) |
| | | if (roles.find(i => i.name == '管理员' || i.name == '监管部门')) { |
| | | this.isAdmin = true |
| | | } else { |
| | | this.isAdmin = false |
| | | } |
| | | }, |
| | | mounted() { |
| | | }, |
| | | watch: {}, |
| | | methods: { |
| | | handleSizeChange: function (val) { |
| | | this.listQuery.pageSize = val |
| | | this.getDataList() |
| | | }, |
| | | handleCurrentChange: function (val) { |
| | | this.listQuery.pageIndex = val |
| | | this.getDataList() |
| | | }, |
| | | reset() { |
| | | this.listQuery = { |
| | | filter: { |
| | | companyCode: '', |
| | | companyName: '', |
| | | provinceCode: '', |
| | | cityCode: '', |
| | | areaCode: '' |
| | | }, |
| | | pageIndex: 1, |
| | | pageSize: 10 |
| | | } |
| | | this.cityList = [] |
| | | this.districtList = [] |
| | | this.getDataList() |
| | | }, |
| | | search() { |
| | | this.listQuery.pageIndex = 1 |
| | | this.getDataList() |
| | | }, |
| | | async getProvince() { |
| | | let res = await getProvinceListData() |
| | | if (res.data.code === "200") { |
| | | this.provinceList = res.data.result.provinceList |
| | | } |
| | | },//获取省 |
| | | async changeArea(value) { |
| | | if (value === 'province') { |
| | | this.listQuery.filter.cityCode = '' |
| | | this.listQuery.filter.areaCode = '' |
| | | this.areaListQuery = { |
| | | type: 2, |
| | | parenttype: 1, |
| | | parentname: this.provinceList.find(i => i.code == this.listQuery.filter.provinceCode).name |
| | | } |
| | | let res = await getCityListData(this.areaListQuery) |
| | | if (res.data.code === "200") { |
| | | this.cityList = res.data.result |
| | | } |
| | | } else { |
| | | this.listQuery.filter.areaCode = '' |
| | | this.areaListQuery = { |
| | | type: 3, |
| | | parenttype: 2, |
| | | parentname: this.cityList.find(i => i.code == this.listQuery.filter.cityCode).name |
| | | } |
| | | let res = await getCityListData(this.areaListQuery) |
| | | if (res.data.code === "200") { |
| | | this.districtList = res.data.result |
| | | } |
| | | } |
| | | },//市、镇、街道、委员会 |
| | | async getDataList() { |
| | | const res = await getStorePageList(this.listQuery) |
| | | if (res.data.code === "200") { |
| | | const data = res.data.result |
| | | if (Array.isArray(data.records)) { |
| | | this.dataList = data.records |
| | | this.recordTotal = data.total |
| | | this.currentPage = data.current |
| | | } else { |
| | | this.dataList = [] |
| | | } |
| | | } else { |
| | | this.$message({ |
| | | type: 'warning', |
| | | message: res.data.message |
| | | }) |
| | | } |
| | | this.listLoading = false |
| | | }, |
| | | |
| | | openStock(data) { |
| | | const t = this |
| | | t.$refs.addStock.open(data) |
| | | }, |
| | | openRecord(row) { |
| | | const t = this |
| | | t.$refs.stockRecords.open(row) |
| | | }, |
| | | showEnterprises(row) { |
| | | const t = this |
| | | t.$refs.enterStock.open(row, '管理') |
| | | }, |
| | | deliverUsage(row) { |
| | | const t = this |
| | | t.$refs.deliverUsage.open(row) |
| | | }, |
| | | |
| | | stockEdit(row) { |
| | | const t = this |
| | | t.$refs.editStock.open(row) |
| | | |
| | | } |
| | | }, |
| | | } |
| | | </script> |
| | | <style> |
| | | .el-table .hovered-row { |
| | | background: #f5f7fa; |
| | | } |
| | | </style> |
| | | <style scoped> |
| | | .basic_search { |
| | | display: inline-block; |
| | | } |
| | | |
| | | /deep/ .el-table .el-table__body-wrapper table tr:nth-child(2n) td { |
| | | background: #fff !important; |
| | | } |
| | | </style> |
对比新文件 |
| | |
| | | <template> |
| | | <el-dialog :visible.sync="editDialogVisible" :modal-append-to-body="false" :close-on-click-modal="false" :title="title+'历史记录'" center width="75%"> |
| | | <div style="display: flex"> |
| | | <div class="basic_search"> |
| | | <span>按时间查询:</span> |
| | | <el-date-picker |
| | | value-format="yyyy-MM-dd HH:mm:ss" |
| | | v-model="validTime" |
| | | type="daterange" |
| | | :default-time="['00:00:00','23:59:59']" |
| | | range-separator="-" |
| | | start-placeholder="开始日期" |
| | | end-placeholder="结束日期" |
| | | > |
| | | </el-date-picker> |
| | | </div> |
| | | <div class="basic_search" style="margin: 0 10px"> |
| | | <span>状态:</span> |
| | | <el-select v-model="listQuery.filter.deviceWarning" clearable filterable> |
| | | <el-option key="1" label="正常" :value="0"></el-option> |
| | | <el-option key="2" label="异常" :value="1"></el-option> |
| | | </el-select> |
| | | </div> |
| | | <div class="basic_search"> |
| | | <el-button style="margin-left: 10px;" type="primary" @click="reset()">重置</el-button> |
| | | <el-button style="margin-left: 10px;" type="primary" icon="el-icon-search" @click="search()">查询</el-button> |
| | | </div> |
| | | </div> |
| | | <br/> |
| | | <div class="table_content"> |
| | | <el-table |
| | | :key="tableKey" |
| | | :data="dataList" |
| | | border |
| | | fit |
| | | highlight-current-row |
| | | style="width: 100%;" |
| | | > |
| | | <el-table-column label="浓度值" prop="realValue" align="center"> |
| | | <template slot-scope="scope"> |
| | | <span v-if="title == '温度'">{{scope.row.realValue}}℃</span> |
| | | <span v-else>{{scope.row.realValue}}%RH</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="状态" prop="deviceWarning" align="center"> |
| | | <template slot-scope="scope"> |
| | | <el-tag type="success" v-if="scope.row.deviceWarning == 0">正常</el-tag> |
| | | <el-tag type="danger" v-else>异常</el-tag> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="时间" align="center"> |
| | | <template slot-scope="scope"> |
| | | {{scope.row.syncTime?scope.row.syncTime:scope.row.createDate }} |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | <br/> |
| | | <div style="display: flex;justify-content: right"> |
| | | <el-pagination |
| | | v-show="recordTotal>0" |
| | | :current-page="currentPage" |
| | | :page-sizes="[10, 20, 30, 50]" |
| | | :page-size="listQuery.pageSize" |
| | | :total="recordTotal" |
| | | layout="total, sizes, prev, pager, next, jumper" |
| | | background |
| | | @size-change="handleSizeChange" |
| | | @current-change="handleCurrentChange" |
| | | /> |
| | | </div> |
| | | </div> |
| | | <span slot="footer" class="dialog-footer"> |
| | | <el-button type="primary" @click="editDialogVisible = false">确 认</el-button> |
| | | </span> |
| | | </el-dialog> |
| | | </template> |
| | | |
| | | <script> |
| | | import {updateStorehouseData} from "../../../../api/warehouse"; |
| | | import {getHumidityPage, getOriginalPerson, getTemperaturePage} from "../../../../api/monitorAlert"; |
| | | |
| | | export default { |
| | | name: "thDialog", |
| | | data() { |
| | | return { |
| | | editDialogVisible: false, |
| | | title: '', |
| | | tableKey: '', |
| | | recordTotal: 0, |
| | | currentPage: 1, |
| | | dataList: [], |
| | | validTime: [], |
| | | listQuery: { |
| | | filter:{ |
| | | deviceId: null, |
| | | deviceWarning: null, |
| | | createDateStart: '', |
| | | createDateEnd: '' |
| | | }, |
| | | pageIndex:1, |
| | | pageSize:10 |
| | | } |
| | | } |
| | | }, |
| | | created() { |
| | | const t = this |
| | | }, |
| | | methods: { |
| | | open(type,data){ |
| | | this.editDialogVisible = true |
| | | this.dataList = [] |
| | | this.listQuery.filter.deviceId = data.deviceId |
| | | this.title = type |
| | | this.getDataList() |
| | | }, |
| | | async getDataList() { |
| | | this.listQuery.filter.createDateStart = this.validTime[0]?this.validTime[0]:'' |
| | | this.listQuery.filter.createDateEnd = this.validTime[1]?this.validTime[1]:'' |
| | | if(this.title == '温度'){ |
| | | getTemperaturePage(this.listQuery).then((res)=>{ |
| | | if(res.data.code == "200"){ |
| | | const data = res.data.result |
| | | if(Array.isArray(data.records)){ |
| | | this.dataList = data.records |
| | | this.recordTotal = data.total |
| | | this.currentPage = data.current |
| | | }else{ |
| | | this.dataList = [] |
| | | } |
| | | }else{ |
| | | this.$message({ |
| | | type: 'warning', |
| | | message: res.data.message |
| | | }) |
| | | } |
| | | }) |
| | | }else{ |
| | | getHumidityPage(this.listQuery).then((res)=>{ |
| | | if(res.data.code == "200"){ |
| | | const data = res.data.result |
| | | if(Array.isArray(data.records)){ |
| | | this.dataList = data.records |
| | | }else{ |
| | | this.dataList = [] |
| | | } |
| | | }else{ |
| | | this.$message({ |
| | | type: 'warning', |
| | | message: res.data.message |
| | | }) |
| | | } |
| | | }) |
| | | } |
| | | }, |
| | | handleSizeChange: function(val) { |
| | | this.listQuery.pageSize = val |
| | | this.getDataList() |
| | | }, |
| | | handleCurrentChange: function(val) { |
| | | this.listQuery.pageIndex = val |
| | | this.getDataList() |
| | | }, |
| | | reset(){ |
| | | this.listQuery.filter.deviceWarning = null |
| | | this.listQuery.filter.createDateStart = '' |
| | | this.listQuery.filter.createDateEnd = '' |
| | | this.validTime = [] |
| | | this.listQuery.pageIndex = 1 |
| | | this.listQuery.pageSize = 10 |
| | | this.getDataList() |
| | | }, |
| | | search(){ |
| | | this.listQuery.pageIndex = 1 |
| | | this.getDataList() |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style lang="scss" scoped> |
| | | .part-title{ |
| | | font-size: 16px; |
| | | font-weight: bolder; |
| | | } |
| | | .selector{ |
| | | /deep/ .el-form-item__content{ |
| | | margin-left: 0 !important; |
| | | } |
| | | } |
| | | .form{ |
| | | .el-form-item{ |
| | | display: flex !important; |
| | | } |
| | | /deep/ .el-form-item__content{ |
| | | width: 100%; |
| | | margin-left: 0 !important; |
| | | } |
| | | } |
| | | |
| | | .numInput{ |
| | | /deep/ .el-input__inner{ |
| | | padding-right: 0; |
| | | } |
| | | } |
| | | </style> |
对比新文件 |
| | |
| | | <template> |
| | | <div class="app-container"> |
| | | <div class="filter-container"> |
| | | <div> |
| | | <div class="basic_search"> |
| | | <span>企业名称:</span> |
| | | <el-input v-model.trim="listQuery.filter.companyName" style="width: 300px"/> |
| | | </div> |
| | | <div class="basic_search"> |
| | | <el-button style="margin-left: 10px;" type="primary" @click="reset()">重置</el-button> |
| | | <el-button style="margin-left: 10px;" type="primary" icon="el-icon-search" @click="search()">查询</el-button> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <br/> |
| | | <div class="table_content"> |
| | | <el-tree :data="dataTree" highlight-current class="left-tree" :props="defaultProps" @node-click="handleNodeClick"></el-tree> |
| | | <div class="cardList" v-if="deviceList.length>0"> |
| | | <div class="card-item" v-for="(item,index) in deviceList" :key="index"> |
| | | <div class="itemTitle"> |
| | | {{item.storeName}}-{{item.storeroomName}}-{{item.deviceName }} |
| | | </div> |
| | | <div class="cont"> |
| | | <img :src="deviceItem"> |
| | | <div class="rightCont"> |
| | | <div class="rightItem"> |
| | | <span>温度: {{item.temperatureValue }}℃</span> |
| | | <el-button size="mini" plain type="primary" @click="openHistory('温度',item)">历史数据</el-button> |
| | | </div> |
| | | <div class="rightItem"> |
| | | <span>湿度: {{item.humidityValue }}%RH</span> |
| | | <el-button size="mini" plain type="primary" @click="openHistory('湿度',item)">历史数据</el-button> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | |
| | | </div> |
| | | </div> |
| | | <div class="cardList" v-else> |
| | | <div style="color: #999;padding-top: 15px;padding-left: 20px">暂无设备信息...</div> |
| | | </div> |
| | | <th-dialog ref="thRef"></th-dialog> |
| | | </div> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import thDialog from "./components/thDialog" |
| | | import { |
| | | getDeviceList, |
| | | getDevicePageList, |
| | | getOriginalPerson, |
| | | getStorePageList, |
| | | getStoreroomPageV2 |
| | | } from "../../../api/monitorAlert"; |
| | | import deviceItem from "../../../assets/deviceItem.png" |
| | | |
| | | export default { |
| | | name: "temperatureHumidity", |
| | | components: { thDialog }, |
| | | data() { |
| | | return { |
| | | deviceItem: deviceItem, |
| | | tableKey: '', |
| | | listLoading: false, |
| | | dataList: [], |
| | | dataTree: [], |
| | | listQuery: { |
| | | filter:{ |
| | | companyName: '' |
| | | }, |
| | | pageIndex:1, |
| | | pageSize:9999 |
| | | }, |
| | | defaultProps: { |
| | | children: 'children', |
| | | label: 'name' |
| | | }, |
| | | deviceQuery: { |
| | | filter:{ |
| | | companyCode: '', |
| | | storeNum: '', |
| | | storeroomNum: '', |
| | | deviceType: 1 |
| | | } |
| | | }, |
| | | deviceList: [] |
| | | } |
| | | }, |
| | | created() { |
| | | this.getDataList() |
| | | this.getDeviceList() |
| | | }, |
| | | mounted() { |
| | | }, |
| | | watch: {}, |
| | | methods: { |
| | | openHistory(type,data){ |
| | | this.$refs.thRef.open(type,data) |
| | | }, |
| | | deleteData(data){ |
| | | |
| | | }, |
| | | handleNodeClick(data) { |
| | | this.deviceQuery.filter = { |
| | | companyCode: '', |
| | | storeNum: '', |
| | | storeroomNum: '', |
| | | deviceType: 1 |
| | | } |
| | | if(data.type == 1){ |
| | | this.deviceQuery.filter.companyCode = data.code |
| | | this.getDeviceList() |
| | | }else if(data.type == 2){ |
| | | this.deviceQuery.filter.storeNum = data.code |
| | | this.getDeviceList() |
| | | }else{ |
| | | this.deviceQuery.filter.storeroomNum = data.code |
| | | this.getDeviceList() |
| | | } |
| | | }, |
| | | async getDataList() { |
| | | let res = await getStoreroomPageV2(this.listQuery) |
| | | if (res.data.code === "200") { |
| | | const data = res.data.result |
| | | if(Array.isArray(data.records)){ |
| | | this.dataList = data.records |
| | | if(data.records.length>0){ |
| | | this.dataTree = this.transformToTree(data.records) |
| | | }else{ |
| | | this.dataTree = [] |
| | | } |
| | | }else{ |
| | | this.dataList = [] |
| | | this.dataTree = [] |
| | | } |
| | | } else { |
| | | this.$message({ |
| | | type: 'warning', |
| | | message: res.data.message |
| | | }) |
| | | } |
| | | this.listLoading = false |
| | | }, |
| | | |
| | | async getDeviceList(){ |
| | | let res = await getDeviceList(this.deviceQuery) |
| | | if (res.data.code === "200"){ |
| | | this.deviceList = res.data.result |
| | | }else{ |
| | | this.$message({ |
| | | type: 'warning', |
| | | message: res.data.message |
| | | }) |
| | | } |
| | | }, |
| | | |
| | | transformToTree(data) { |
| | | const tree = []; |
| | | const companyMap = new Map() |
| | | data.forEach(item => { |
| | | const companyKey = item.companyCode; |
| | | let companyNode = companyMap.get(companyKey); |
| | | if (!companyNode) { |
| | | companyNode = { |
| | | id: item.companyCode, |
| | | code: item.companyCode, |
| | | name: item.companyName, |
| | | children: [], |
| | | type: 1 |
| | | }; |
| | | companyMap.set(companyKey, companyNode); |
| | | tree.push(companyNode); |
| | | } |
| | | const storeKey = `${companyKey}-${item.storeName}`; |
| | | let storeNode = companyNode.children.find(child => child.name === item.storeName); |
| | | if (!storeNode) { |
| | | storeNode = { |
| | | id: storeKey, |
| | | code: item.storeNum, |
| | | name: item.storeName, |
| | | children: [], |
| | | type: 2 |
| | | }; |
| | | companyNode.children.push(storeNode); |
| | | } |
| | | |
| | | const storeroomKey = `${storeKey}-${item.storeroomNum}`; |
| | | let storeroomNode = storeNode.children.find(child => child.code === item.storeroomNum); |
| | | if (!storeroomNode) { |
| | | storeroomNode = { |
| | | ...item, // 保留原始数据 |
| | | id: storeroomKey, |
| | | code: item.storeroomNum, |
| | | name: item.storeroomName, |
| | | type: 3 |
| | | }; |
| | | storeNode.children.push(storeroomNode); |
| | | } |
| | | }); |
| | | return tree; |
| | | }, |
| | | |
| | | reset(){ |
| | | this.listQuery = { |
| | | filter:{ |
| | | companyName: '' |
| | | }, |
| | | pageIndex:1, |
| | | pageSize:9999 |
| | | } |
| | | this.deviceQuery.filter = { |
| | | companyCode: '', |
| | | storeNum: '', |
| | | storeroomNum: '', |
| | | deviceType: 1 |
| | | } |
| | | this.getDataList() |
| | | }, |
| | | search(){ |
| | | this.listQuery.pageIndex = 1 |
| | | this.getDataList() |
| | | } |
| | | }, |
| | | } |
| | | </script> |
| | | |
| | | <style lang="scss" scoped> |
| | | .basic_search { |
| | | display: inline-block; |
| | | } |
| | | |
| | | .table_content{ |
| | | display: flex; |
| | | align-items: flex-start; |
| | | justify-content: space-between; |
| | | } |
| | | |
| | | .left-tree{ |
| | | width: 20%; |
| | | /deep/.el-tree-node{ |
| | | .el-tree-node__content{ |
| | | padding: 10px 0; |
| | | height: auto; |
| | | .el-tree-node__label{ |
| | | font-size: 16px; |
| | | } |
| | | } |
| | | } |
| | | /deep/.is-current>.el-tree-node__content{ |
| | | background-color: #034ea2; |
| | | color: #fff; |
| | | } |
| | | } |
| | | |
| | | .cardList{ |
| | | width: 80%; |
| | | padding: 0 10px 10px; |
| | | display: grid; |
| | | grid-gap: 20px; |
| | | grid-template-columns: repeat(2, 1fr); |
| | | |
| | | .card-item{ |
| | | width: 100%; |
| | | background: #f5f5f5; |
| | | padding: 15px; |
| | | border-radius: 8px; |
| | | cursor: pointer; |
| | | |
| | | .itemTitle{ |
| | | width: 100%; |
| | | font-size: 18px; |
| | | font-weight: bolder; |
| | | margin-bottom: 10px; |
| | | } |
| | | .cont{ |
| | | width: 100%; |
| | | display: flex; |
| | | align-items: center; |
| | | justify-content: space-between; |
| | | |
| | | img{ |
| | | width: 100px; |
| | | height: 100px; |
| | | object-fit: cover; |
| | | } |
| | | .rightCont{ |
| | | width: calc(100% - 110px); |
| | | display: flex; |
| | | flex-direction: column; |
| | | justify-content: space-around; |
| | | .rightItem{ |
| | | display: flex; |
| | | justify-content: space-between; |
| | | align-items: center; |
| | | &:first-of-type{ |
| | | margin-bottom: 10px; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | } |
| | | } |
| | | </style> |
对比新文件 |
| | |
| | | <template> |
| | | <el-dialog :visible.sync="editDialogVisible" :modal-append-to-body="false" :close-on-click-modal="false" :title="title" center |
| | | width="30%"> |
| | | <el-form ref="form" :rules="formRules" :model="form" label-width="140px" class="form"> |
| | | <el-form-item label="姓名:" prop="name"> |
| | | <el-input v-model.trim="form.name"/> |
| | | </el-form-item> |
| | | <el-form-item label="人员类型:" prop="type"> |
| | | <el-select v-model="form.type" placeholder="请选择类型"> |
| | | <el-option |
| | | v-for="item in typeList" |
| | | :key="item.id" |
| | | :label="item.name" |
| | | :value="item.id"> |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="联系方式:" prop="phone"> |
| | | <el-input type="number" v-model.number.trim="form.phone"/> |
| | | </el-form-item> |
| | | </el-form> |
| | | <span slot="footer" class="dialog-footer"> |
| | | <el-button @click="editDialogVisible = false">取 消</el-button> |
| | | <el-button type="primary" @click="confirm()">确 认</el-button> |
| | | </span> |
| | | </el-dialog> |
| | | </template> |
| | | |
| | | <script> |
| | | import {updateStorehouseData} from "../../../../api/warehouse"; |
| | | |
| | | export default { |
| | | name: "crewDialog", |
| | | data() { |
| | | return { |
| | | editDialogVisible: false, |
| | | title: '', |
| | | typeList: [ |
| | | { |
| | | id: 1, |
| | | name: '' |
| | | } |
| | | ], |
| | | form: {}, |
| | | formRules:{ |
| | | name:[ |
| | | { required: true, message: '请输入姓名', trigger: 'change' }, |
| | | ] |
| | | } |
| | | } |
| | | }, |
| | | created() { |
| | | const t = this |
| | | }, |
| | | methods: { |
| | | open(){ |
| | | this.editDialogVisible = true; |
| | | }, |
| | | confirm(){ |
| | | this.$refs.form.validate(async (valid) => { |
| | | if (valid) { |
| | | // const res = await updateStorehouseData(this.editForm) |
| | | // if(res.data.code == 200){ |
| | | // this.$message.success('盘库提交成功') |
| | | // |
| | | // }else{ |
| | | // this.$message.warning(res.data.message) |
| | | // } |
| | | // this.editDialogVisible = false |
| | | } |
| | | }) |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style lang="scss" scoped> |
| | | .part-title{ |
| | | font-size: 16px; |
| | | font-weight: bolder; |
| | | } |
| | | .selector{ |
| | | /deep/ .el-form-item__content{ |
| | | margin-left: 0 !important; |
| | | } |
| | | } |
| | | .form{ |
| | | .el-form-item{ |
| | | display: flex !important; |
| | | } |
| | | /deep/ .el-form-item__content{ |
| | | width: 100%; |
| | | margin-left: 0 !important; |
| | | } |
| | | } |
| | | |
| | | .numInput{ |
| | | /deep/ .el-input__inner{ |
| | | padding-right: 0; |
| | | } |
| | | } |
| | | </style> |
对比新文件 |
| | |
| | | <template> |
| | | <div class="app-container"> |
| | | <div class="filter-container"> |
| | | <div style="display: block;"> |
| | | <div class="basic_search" style="padding-top: 10px;"> |
| | | <span>按时间查询:</span> |
| | | <el-date-picker |
| | | value-format="yyyy-MM-dd HH:mm:ss" |
| | | v-model="validTime" |
| | | type="daterange" |
| | | :default-time="['00:00:00','23:59:59']" |
| | | range-separator="-" |
| | | start-placeholder="开始日期" |
| | | end-placeholder="结束日期" |
| | | > |
| | | </el-date-picker> |
| | | </div> |
| | | <div class="basic_search" style="margin-right: 10px;padding-top: 10px"> |
| | | <span>状态:</span> |
| | | <el-select v-model="listQuery.filter.alarmStatus" clearable filterable> |
| | | <el-option key="0" label="全部" value=""></el-option> |
| | | <el-option key="1" label="未销警" :value="0"></el-option> |
| | | <el-option key="2" label="已销警" :value="1"></el-option> |
| | | </el-select> |
| | | </div> |
| | | <div class="basic_search" style="margin-right: 10px;padding-top: 10px"> |
| | | <span>报警类型:</span> |
| | | <el-select v-model="listQuery.filter.alarmType" clearable filterable> |
| | | <el-option key="1" label="超员作业" :value="1"></el-option> |
| | | <el-option key="2" label="堵塞通道" :value="2"></el-option> |
| | | <el-option key="3" label="超高超量" :value="3"></el-option> |
| | | <el-option key="4" label="非法入侵" :value="4"></el-option> |
| | | <el-option key="5" label="摄像头遮挡偏移" :value="5"></el-option> |
| | | <el-option key="6" label="温度" :value="6"></el-option> |
| | | <el-option key="7" label="湿度" :value="7"></el-option> |
| | | </el-select> |
| | | </div> |
| | | <div class="basic_search"> |
| | | <span>企业名称:</span> |
| | | <el-input v-model.trim="listQuery.filter.companyName" style="width: 300px"/> |
| | | </div> |
| | | <div class="basic_search" style="margin-right: 10px"> |
| | | <el-button style="margin-left: 10px;" type="primary" @click="reset()">重置</el-button> |
| | | <el-button style="margin-left: 10px;" type="primary" icon="el-icon-search" @click="search()">查询</el-button> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div class="table_content"> |
| | | <el-table |
| | | :key="tableKey" |
| | | :data="dataList" |
| | | border |
| | | fit |
| | | highlight-current-row |
| | | style="width: 100%;" |
| | | > |
| | | <el-table-column label="序号" type="index" align="center"></el-table-column> |
| | | <el-table-column label="企业" prop="companyName" align="center"></el-table-column> |
| | | <el-table-column label="仓库" prop="storeName" align="center"></el-table-column> |
| | | <el-table-column label="库房" prop="storeroomName" align="center"></el-table-column> |
| | | <el-table-column label="报警类型" prop="alarmType" align="center"> |
| | | <template slot-scope="scope"> |
| | | {{getTypeName(scope.row.alarmType)}} |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="报警状态" prop="alarmStatus" align="center"> |
| | | <template slot-scope="scope"> |
| | | {{ scope.row.alarmStatus == 1?'已销警':'未销警' }} |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="报警图片" prop="alarmFile" align="center"> |
| | | <template slot-scope="scope"> |
| | | <el-image style="width: 100px; height: 100px" :preview-src-list="[scope.row.alarmFile]" :src="scope.row.alarmFile" fit="cover"></el-image> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="报警时间" prop="warningDate" align="center"></el-table-column> |
| | | <el-table-column label="销警时间" prop="clearDate" align="center"></el-table-column> |
| | | <!-- <el-table-column label="操作" align="center" width="120" class-name="small-padding fixed-width" fixed="right">--> |
| | | <!-- <template slot-scope="scope">--> |
| | | <!-- <el-button type="text" @click="clearWarning(scope.row.id)">销警</el-button>--> |
| | | <!-- </template>--> |
| | | <!-- </el-table-column>--> |
| | | </el-table> |
| | | <br> |
| | | <div style="display: flex;justify-content: right"> |
| | | <el-pagination |
| | | v-show="recordTotal>0" |
| | | :current-page="currentPage" |
| | | :page-sizes="[10, 20, 30, 50]" |
| | | :page-size="listQuery.pageSize" |
| | | :total="recordTotal" |
| | | layout="total, sizes, prev, pager, next, jumper" |
| | | background |
| | | @size-change="handleSizeChange" |
| | | @current-change="handleCurrentChange" |
| | | /> |
| | | </div> |
| | | <warning-info-dialog ref="warningInfoRef"></warning-info-dialog> |
| | | </div> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import {computePageCount} from "../../../utils"; |
| | | import {regionPifaBox} from "../../../api/stock" |
| | | import warningInfoDialog from "./components/warningInfoDialog" |
| | | import {editAlarmInfo, getOriginalAlarm, getOriginalPerson} from "../../../api/monitorAlert"; |
| | | |
| | | export default { |
| | | name: "warningInfo", |
| | | components: { warningInfoDialog }, |
| | | data() { |
| | | return { |
| | | tableKey: '', |
| | | recordTotal: 0, |
| | | currentPage: 1, |
| | | validTime: [], |
| | | dataList: [], |
| | | listQuery: { |
| | | filter:{ |
| | | alarmStartTime: '', |
| | | alarmEndTime: '', |
| | | alarmStatus: null, |
| | | companyCode: '', |
| | | companyName: '', |
| | | alarmType: null |
| | | }, |
| | | pageIndex:1, |
| | | pageSize:10 |
| | | }, |
| | | typeList: [ |
| | | { |
| | | name: '超员作业', |
| | | value: 1 |
| | | }, |
| | | { |
| | | name: '堵塞通道', |
| | | value: 2 |
| | | }, |
| | | { |
| | | name: '超高超量', |
| | | value: 3 |
| | | }, |
| | | { |
| | | name: '非法入侵', |
| | | value: 4 |
| | | }, |
| | | { |
| | | name: '摄像头遮挡偏移', |
| | | value: 5 |
| | | }, |
| | | { |
| | | name: '温度', |
| | | value: 6 |
| | | }, |
| | | { |
| | | name: '湿度', |
| | | value: 7 |
| | | } |
| | | ] |
| | | } |
| | | }, |
| | | created() { |
| | | this.getDataList() |
| | | }, |
| | | mounted() { |
| | | }, |
| | | watch: {}, |
| | | methods: { |
| | | openDialog(type,data){ |
| | | this.$refs.warningInfoRef.open(type,data) |
| | | }, |
| | | clearWarning(id){ |
| | | this.$confirm('确定执行销警操作?', '提示', { |
| | | confirmButtonText: '确定', |
| | | cancelButtonText: '取消', |
| | | type: 'warning' |
| | | }).then(async() => { |
| | | let res = await editAlarmInfo({id: id}) |
| | | if (res.data.code === "200") { |
| | | this.$message({ |
| | | type: 'success', |
| | | message: res.data.message |
| | | }) |
| | | } else { |
| | | this.$message({ |
| | | type: 'warning', |
| | | message: res.data.message |
| | | }) |
| | | } |
| | | }).catch(() => { |
| | | this.$message({ |
| | | type: 'info', |
| | | message: '已取消' |
| | | }); |
| | | }); |
| | | }, |
| | | getTypeName(type){ |
| | | return this.typeList.find(i=>i.value == type).name |
| | | }, |
| | | async getDataList() { |
| | | if(this.validTime.length>0){ |
| | | this.listQuery.filter.alarmStartTime = this.validTime[0] |
| | | this.listQuery.filter.alarmEndTime = this.validTime[1] |
| | | } |
| | | let res = await getOriginalAlarm(this.listQuery) |
| | | if (res.data.code === "200") { |
| | | const data = res.data.result |
| | | if(Array.isArray(data.records)){ |
| | | this.dataList = data.records.map(item => { |
| | | return { |
| | | ...item, |
| | | alarmFile: process.env.IMG_API + item.alarmFile |
| | | } |
| | | }) |
| | | this.recordTotal = data.total |
| | | this.currentPage = data.current |
| | | }else{ |
| | | this.dataList = [] |
| | | } |
| | | } else { |
| | | this.$message({ |
| | | type: 'warning', |
| | | message: res.data.message |
| | | }) |
| | | } |
| | | }, |
| | | handleSizeChange: function(val) { |
| | | this.listQuery.pageSize = val |
| | | this.getDataList() |
| | | }, |
| | | handleCurrentChange: function(val) { |
| | | this.listQuery.pageIndex = val |
| | | this.getDataList() |
| | | }, |
| | | reset(){ |
| | | this.listQuery = { |
| | | filter:{ |
| | | alarmStartTime: '', |
| | | alarmEndTime: '', |
| | | alarmStatus: null, |
| | | companyCode: '', |
| | | companyName: '', |
| | | alarmType: null |
| | | }, |
| | | pageIndex:1, |
| | | pageSize:10 |
| | | } |
| | | this.validTime = [] |
| | | this.getDataList() |
| | | }, |
| | | search(){ |
| | | this.listQuery.pageIndex = 1 |
| | | this.getDataList() |
| | | } |
| | | }, |
| | | } |
| | | </script> |
| | | |
| | | <style scoped> |
| | | .basic_search { |
| | | display: inline-block; |
| | | } |
| | | </style> |
| | |
| | | type="primary" |
| | | icon="el-icon-refresh" |
| | | @click="refreshHandle" |
| | | >刷新</el-button> |
| | | >刷新 |
| | | </el-button> |
| | | <el-select v-model="queryForm.enterprisetype" clearable placeholder="请选择企业类型"> |
| | | <el-option |
| | | class="filter-item" |
| | |
| | | v-if="getBtnPermission('edit')" |
| | | type="text" |
| | | @click="showEditHandle(scope.row)" |
| | | >编辑</el-button> |
| | | >编辑 |
| | | </el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | |
| | | label="警告类型:" |
| | | prop="type" |
| | | > |
| | | {{dataForm.warntype}} |
| | | {{ dataForm.warntype }} |
| | | </el-form-item> |
| | | <el-form-item |
| | | label="计算周期(天):" |
| | |
| | | <el-button |
| | | type="primary" |
| | | @click="updateHandle()" |
| | | >确认</el-button> |
| | | >确认 |
| | | </el-button> |
| | | </div> |
| | | </el-dialog> |
| | | <el-dialog |
| | |
| | | label="警告类型:" |
| | | prop="type" |
| | | > |
| | | {{dataForm.warntype}} |
| | | {{ dataForm.warntype }} |
| | | </el-form-item> |
| | | <el-form-item |
| | | label="企业类型:" |
| | | prop="type" |
| | | > |
| | | {{dataForm.enterprisetype}} |
| | | {{ dataForm.enterprisetype }} |
| | | </el-form-item> |
| | | <el-form-item |
| | | label="预警值:" |
| | |
| | | <el-button |
| | | type="primary" |
| | | @click="updateStockHandle()" |
| | | >确认</el-button> |
| | | >确认 |
| | | </el-button> |
| | | </div> |
| | | </el-dialog> |
| | | <div style="clear: both;" /> |
| | | <div style="clear: both;"/> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import { mapGetters } from 'vuex' |
| | | import { getWarningList, editWarningInfo } from '@/api/warning' |
| | | import { parseTime, computePageCount } from '@/utils' |
| | | import { parseError } from '@/utils/messageDialog' |
| | | import Cookies from 'js-cookie' |
| | | import { Message, MessageBox } from 'element-ui' |
| | | import { dictionaryAllItems } from '@/api/dictionary'; |
| | | import { checkBtnPermission } from '@/utils/permission' |
| | | import {mapGetters} from 'vuex' |
| | | import {getWarningList, editWarningInfo} from '@/api/warning' |
| | | import {parseTime, computePageCount} from '@/utils' |
| | | import {parseError} from '@/utils/messageDialog' |
| | | import Cookies from 'js-cookie' |
| | | import {Message, MessageBox} from 'element-ui' |
| | | import {dictionaryAllItems} from '@/api/dictionary'; |
| | | import {checkBtnPermission} from '@/utils/permission' |
| | | |
| | | export default { |
| | | name: 'warning', |
| | | filters: { |
| | | parseSms(value) { |
| | | if (value == 1) { |
| | | return '是' |
| | | } else { |
| | | return '否' |
| | | } |
| | | }, |
| | | }, |
| | | computed: { |
| | | ...mapGetters([ |
| | | 'userType' |
| | | ]) |
| | | }, |
| | | data() { |
| | | return { |
| | | sort:'id', |
| | | order:'asc', |
| | | pageSize: 10, |
| | | recordTotal: 0, |
| | | currentPage: 1, |
| | | pageTotal: 0, |
| | | tableKey: 0, |
| | | warningData: null, |
| | | listLoading: true, |
| | | queryForm: { |
| | | warntype: '', |
| | | enterprisetype:'', |
| | | }, |
| | | enterpriseTypeList:[], |
| | | warnTypeList:[], |
| | | |
| | | dataForm: { |
| | | id: '', |
| | | warntype: '', |
| | | period: '', |
| | | enterprisetype: '', |
| | | issms: '', |
| | | minimum: '', |
| | | maximum: '', |
| | | }, |
| | | dialogFormVisible: false, |
| | | dialogStockFormVisible: false, |
| | | dataFormRules: { |
| | | minimum: [{ required: true, message: '预警值不能为空', trigger: 'blur' }], |
| | | maximum: [{ required: true, message: '报警值不能为空', trigger: 'blur' }], |
| | | }, |
| | | |
| | | |
| | | export default { |
| | | name: 'warning', |
| | | filters: { |
| | | parseSms(value) { |
| | | if (value == 1) { |
| | | return '是' |
| | | } else { |
| | | return '否' |
| | | } |
| | | }, |
| | | created() { |
| | | this.getWarningList() |
| | | this.getDictionaryEnterpriseType() |
| | | this.getDictionaryWarnType() |
| | | }, |
| | | methods: { |
| | | getWarningList() { |
| | | const _this = this |
| | | const params = {} |
| | | params['sort'] = _this.sort |
| | | params['order'] = _this.order |
| | | params['pageIndex'] = _this.currentPage |
| | | params['pageSize'] = _this.pageSize |
| | | for (const i in _this.queryForm) { |
| | | if (_this.queryForm[i] != undefined && _this.queryForm[i].toString() != '') { |
| | | params[i] = _this.queryForm[i] |
| | | } |
| | | } |
| | | _this.listLoading = true |
| | | getWarningList(params).then(response => { |
| | | const res = response.data |
| | | if (res.code == 200) { |
| | | const result = res.result; |
| | | _this.recordTotal = result.totalCount |
| | | _this.pageSize = result.pageSize |
| | | _this.pageTotal = computePageCount(result.totalCount, result.pageSize) |
| | | _this.currentPage = result.pageIndex |
| | | _this.warningData = result.result |
| | | } else { |
| | | parseError({ error: res.message, vm: _this }) |
| | | } |
| | | _this.listLoading = false |
| | | }).catch(error => { |
| | | _this.listLoading = false |
| | | parseError({ error: error, vm: _this }) |
| | | }) |
| | | }, |
| | | computed: { |
| | | ...mapGetters([ |
| | | 'userType' |
| | | ]) |
| | | }, |
| | | data() { |
| | | return { |
| | | sort: 'id', |
| | | order: 'asc', |
| | | pageSize: 10, |
| | | recordTotal: 0, |
| | | currentPage: 1, |
| | | pageTotal: 0, |
| | | tableKey: 0, |
| | | warningData: null, |
| | | listLoading: true, |
| | | queryForm: { |
| | | warntype: '', |
| | | enterprisetype: '', |
| | | }, |
| | | getDictionaryEnterpriseType() { |
| | | const _this = this |
| | | if (_this.enterpriseTypeList && _this.enterpriseTypeList.length > 0) { |
| | | return |
| | | } |
| | | const params = {} |
| | | params['dictionaryType'] = '安全监管分类' |
| | | dictionaryAllItems(params).then(response => { |
| | | const res = response.data |
| | | if (res.code == 200) { |
| | | _this.enterpriseTypeList = res.result |
| | | } else { |
| | | parseError({ error: res.message, vm: _this }) |
| | | } |
| | | }).catch(error => { |
| | | parseError({ error: error, vm: _this }) |
| | | }) |
| | | enterpriseTypeList: [], |
| | | warnTypeList: [], |
| | | |
| | | dataForm: { |
| | | id: '', |
| | | warntype: '', |
| | | period: '', |
| | | enterprisetype: '', |
| | | issms: '', |
| | | minimum: '', |
| | | maximum: '', |
| | | }, |
| | | getDictionaryWarnType() { |
| | | const _this = this |
| | | if (_this.warnTypeList && _this.warnTypeList.length > 0) { |
| | | return |
| | | } |
| | | const params1 = {} |
| | | params1['dictionaryType'] = '警告类型' |
| | | dictionaryAllItems(params1).then(response => { |
| | | const res = response.data |
| | | if (res.code == 200) { |
| | | _this.warnTypeList = res.result |
| | | } else { |
| | | parseError({ error: res.message, vm: _this }) |
| | | } |
| | | }).catch(error => { |
| | | parseError({ error: error, vm: _this }) |
| | | }) |
| | | }, |
| | | refreshHandle: function() { |
| | | this.getWarningList() |
| | | }, |
| | | queryHandle: function() { |
| | | this.currentPage = 1 |
| | | this.getWarningList() |
| | | }, |
| | | sortWarningChange: function(param){ |
| | | this.sort = param.prop; |
| | | this.order = param.order; |
| | | this.getWarningList() |
| | | }, |
| | | handleSizeChange: function(val) { |
| | | this.pageSize = val |
| | | this.currentPage = 1 |
| | | this.getWarningList() |
| | | }, |
| | | handleCurrentChange: function(val) { |
| | | this.currentPage = val |
| | | this.getWarningList() |
| | | }, |
| | | getBtnPermission(btnType) { |
| | | return checkBtnPermission(this.userType, btnType) |
| | | }, |
| | | resetDataForm() { |
| | | this.dataForm = { |
| | | id: '', |
| | | warntype: '', |
| | | period: '', |
| | | enterprisetype: '', |
| | | issms: '', |
| | | minimum: '', |
| | | maximum: '', |
| | | } |
| | | }, |
| | | showEditHandle: function(row) { |
| | | this.resetDataForm() |
| | | this.dataForm.id = row.id |
| | | this.dataForm.warntype = row.warntype |
| | | this.dataForm.period = row.period |
| | | this.dataForm.enterprisetype = row.enterprisetype |
| | | this.dataForm.issms = row.issms |
| | | this.dataForm.minimum = row.minimum |
| | | this.dataForm.maximum = row.maximum |
| | | if (this.dataForm.warntype == '购买超量'){ |
| | | this.dialogFormVisible = true |
| | | this.$nextTick(() => { |
| | | this.$refs['dataForm'].clearValidate() |
| | | }) |
| | | }else { |
| | | this.dialogStockFormVisible = true |
| | | } |
| | | }, |
| | | updateHandle() { |
| | | this.$refs['dataForm'].validate((valid) => { |
| | | const _this = this |
| | | if (valid) { |
| | | editWarningInfo(_this.dataForm).then(response => { |
| | | const res = response.data |
| | | if (res.code == 200) { |
| | | _this.dialogFormVisible = false |
| | | _this.$message({ |
| | | message: '更新成功', |
| | | type: 'success' |
| | | }) |
| | | _this.getWarningList() |
| | | } else { |
| | | parseError({ error: res.message, vm: _this }) |
| | | } |
| | | }).catch(error => { |
| | | parseError({ error: error, vm: _this }) |
| | | }) |
| | | } |
| | | }) |
| | | }, |
| | | updateStockHandle() { |
| | | this.$refs['dataForm'].validate((valid) => { |
| | | const _this = this |
| | | if (valid) { |
| | | editWarningInfo(_this.dataForm).then(response => { |
| | | const res = response.data |
| | | if (res.code == 200) { |
| | | _this.dialogStockFormVisible = false |
| | | _this.$message({ |
| | | message: '更新成功', |
| | | type: 'success' |
| | | }) |
| | | _this.getWarningList() |
| | | } else { |
| | | parseError({ error: res.message, vm: _this }) |
| | | } |
| | | }).catch(error => { |
| | | parseError({ error: error, vm: _this }) |
| | | }) |
| | | } |
| | | }) |
| | | dialogFormVisible: false, |
| | | dialogStockFormVisible: false, |
| | | dataFormRules: { |
| | | minimum: [{required: true, message: '预警值不能为空', trigger: 'blur'}], |
| | | maximum: [{required: true, message: '报警值不能为空', trigger: 'blur'}], |
| | | }, |
| | | |
| | | |
| | | } |
| | | }, |
| | | created() { |
| | | this.getWarningList() |
| | | this.getDictionaryEnterpriseType() |
| | | this.getDictionaryWarnType() |
| | | }, |
| | | methods: { |
| | | getWarningList() { |
| | | const _this = this |
| | | const params = {} |
| | | params['sort'] = _this.sort |
| | | params['order'] = _this.order |
| | | params['pageIndex'] = _this.currentPage |
| | | params['pageSize'] = _this.pageSize |
| | | for (const i in _this.queryForm) { |
| | | if (_this.queryForm[i] != undefined && _this.queryForm[i].toString() != '') { |
| | | params[i] = _this.queryForm[i] |
| | | } |
| | | } |
| | | _this.listLoading = true |
| | | getWarningList(params).then(response => { |
| | | const res = response.data |
| | | if (res.code == 200) { |
| | | const result = res.result; |
| | | _this.recordTotal = result.totalCount |
| | | _this.pageSize = result.pageSize |
| | | _this.pageTotal = computePageCount(result.totalCount, result.pageSize) |
| | | _this.currentPage = result.pageIndex |
| | | _this.warningData = result.result |
| | | } else { |
| | | parseError({error: res.message, vm: _this}) |
| | | } |
| | | _this.listLoading = false |
| | | }).catch(error => { |
| | | _this.listLoading = false |
| | | parseError({error: error, vm: _this}) |
| | | }) |
| | | }, |
| | | getDictionaryEnterpriseType() { |
| | | const _this = this |
| | | if (_this.enterpriseTypeList && _this.enterpriseTypeList.length > 0) { |
| | | return |
| | | } |
| | | const params = {} |
| | | params['dictionaryType'] = '安全监管分类' |
| | | dictionaryAllItems(params).then(response => { |
| | | const res = response.data |
| | | if (res.code == 200) { |
| | | _this.enterpriseTypeList = res.result |
| | | } else { |
| | | parseError({error: res.message, vm: _this}) |
| | | } |
| | | }).catch(error => { |
| | | parseError({error: error, vm: _this}) |
| | | }) |
| | | }, |
| | | getDictionaryWarnType() { |
| | | const _this = this |
| | | if (_this.warnTypeList && _this.warnTypeList.length > 0) { |
| | | return |
| | | } |
| | | const params1 = {} |
| | | params1['dictionaryType'] = '警告类型' |
| | | dictionaryAllItems(params1).then(response => { |
| | | const res = response.data |
| | | if (res.code == 200) { |
| | | _this.warnTypeList = res.result |
| | | } else { |
| | | parseError({error: res.message, vm: _this}) |
| | | } |
| | | }).catch(error => { |
| | | parseError({error: error, vm: _this}) |
| | | }) |
| | | }, |
| | | refreshHandle: function () { |
| | | this.getWarningList() |
| | | }, |
| | | queryHandle: function () { |
| | | this.currentPage = 1 |
| | | this.getWarningList() |
| | | }, |
| | | sortWarningChange: function (param) { |
| | | this.sort = param.prop; |
| | | this.order = param.order; |
| | | this.getWarningList() |
| | | }, |
| | | handleSizeChange: function (val) { |
| | | this.pageSize = val |
| | | this.currentPage = 1 |
| | | this.getWarningList() |
| | | }, |
| | | handleCurrentChange: function (val) { |
| | | this.currentPage = val |
| | | this.getWarningList() |
| | | }, |
| | | getBtnPermission(btnType) { |
| | | return checkBtnPermission(this.userType, btnType) |
| | | }, |
| | | resetDataForm() { |
| | | this.dataForm = { |
| | | id: '', |
| | | warntype: '', |
| | | period: '', |
| | | enterprisetype: '', |
| | | issms: '', |
| | | minimum: '', |
| | | maximum: '', |
| | | } |
| | | }, |
| | | showEditHandle: function (row) { |
| | | this.resetDataForm() |
| | | this.dataForm.id = row.id |
| | | this.dataForm.warntype = row.warntype |
| | | this.dataForm.period = row.period |
| | | this.dataForm.enterprisetype = row.enterprisetype |
| | | this.dataForm.issms = row.issms |
| | | this.dataForm.minimum = row.minimum |
| | | this.dataForm.maximum = row.maximum |
| | | if (this.dataForm.warntype == '购买超量') { |
| | | this.dialogFormVisible = true |
| | | this.$nextTick(() => { |
| | | this.$refs['dataForm'].clearValidate() |
| | | }) |
| | | } else { |
| | | this.dialogStockFormVisible = true |
| | | } |
| | | }, |
| | | updateHandle() { |
| | | this.$refs['dataForm'].validate((valid) => { |
| | | const _this = this |
| | | if (valid) { |
| | | editWarningInfo(_this.dataForm).then(response => { |
| | | const res = response.data |
| | | if (res.code == 200) { |
| | | _this.dialogFormVisible = false |
| | | _this.$message({ |
| | | message: '更新成功', |
| | | type: 'success' |
| | | }) |
| | | _this.getWarningList() |
| | | } else { |
| | | parseError({error: res.message, vm: _this}) |
| | | } |
| | | }).catch(error => { |
| | | parseError({error: error, vm: _this}) |
| | | }) |
| | | } |
| | | }) |
| | | }, |
| | | updateStockHandle() { |
| | | this.$refs['dataForm'].validate((valid) => { |
| | | const _this = this |
| | | if (valid) { |
| | | editWarningInfo(_this.dataForm).then(response => { |
| | | const res = response.data |
| | | if (res.code == 200) { |
| | | _this.dialogStockFormVisible = false |
| | | _this.$message({ |
| | | message: '更新成功', |
| | | type: 'success' |
| | | }) |
| | | _this.getWarningList() |
| | | } else { |
| | | parseError({error: res.message, vm: _this}) |
| | | } |
| | | }).catch(error => { |
| | | parseError({error: error, vm: _this}) |
| | | }) |
| | | } |
| | | }) |
| | | }, |
| | | |
| | | } |
| | | } |
| | | </script> |