|
@@ -3,13 +3,42 @@
|
|
|
<el-card class="box-card">
|
|
|
<el-tabs type="border-card">
|
|
|
<el-tab-pane label="场站风机信息">
|
|
|
+ <div style="margin-bottom: .5%">
|
|
|
+ <span>场站:</span>
|
|
|
+ <div style="display: inline-block;margin-right: .5%">
|
|
|
+ <el-select v-model="stationId" clearable placeholder="请选择">
|
|
|
+ <el-option
|
|
|
+ v-for="item in stationOption"
|
|
|
+ :key="item.id"
|
|
|
+ :label="item.name"
|
|
|
+ :value="item.id">
|
|
|
+ </el-option>
|
|
|
+ </el-select>
|
|
|
+ </div>
|
|
|
+ <el-button
|
|
|
+ type="primary"
|
|
|
+ plain
|
|
|
+ icon="el-icon-search"
|
|
|
+ size="small"
|
|
|
+ @click="getFanTowerForStation"
|
|
|
+ >查询
|
|
|
+ </el-button>
|
|
|
+ <el-button
|
|
|
+ type="primary"
|
|
|
+ plain
|
|
|
+ icon="el-icon-plus"
|
|
|
+ size="small"
|
|
|
+ @click="insertStationFan"
|
|
|
+ >新增
|
|
|
+ </el-button>
|
|
|
+ </div>
|
|
|
<el-table v-loading="loading" border :data="stationFanList.slice((page.currentPage-1)*page.pageSize,page.currentPage*page.pageSize)">
|
|
|
- <el-table-column label="场站名称" align="center" prop="stationName"/>
|
|
|
- <el-table-column label="风机编号" align="center" prop="_id"/>
|
|
|
- <el-table-column label="风机名称" align="center" prop="FanName"/>
|
|
|
+ <el-table-column label="场站名称" align="center" prop="name"/>
|
|
|
+<!-- <el-table-column label="风机编号" align="center" prop="fanId"/>-->
|
|
|
+ <el-table-column label="风机名称" align="center" prop="fanName"/>
|
|
|
<el-table-column label="风机经度" align="center" prop="longitudeFan"/>
|
|
|
<el-table-column label="风机纬度" align="center" prop="latitudeFan"/>
|
|
|
- <el-table-column label="风机机型" align="center" prop="FanModel"/>
|
|
|
+ <el-table-column label="风机机型" align="center" prop="fanModel"/>
|
|
|
<el-table-column label="轮毂高度" align="center" prop="hubHeight"/>
|
|
|
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
|
|
|
<template slot-scope="scope">
|
|
@@ -43,13 +72,42 @@
|
|
|
</div>
|
|
|
</el-tab-pane>
|
|
|
<el-tab-pane label="项目预设风机信息">
|
|
|
+ <div style="margin-bottom: .5%">
|
|
|
+ <span>项目:</span>
|
|
|
+ <div style="display: inline-block;margin-right: .5%">
|
|
|
+ <el-select v-model="projectId" clearable placeholder="请选择">
|
|
|
+ <el-option
|
|
|
+ v-for="item in projectOption"
|
|
|
+ :key="item.id"
|
|
|
+ :label="item.name"
|
|
|
+ :value="item.id">
|
|
|
+ </el-option>
|
|
|
+ </el-select>
|
|
|
+ </div>
|
|
|
+ <el-button
|
|
|
+ type="primary"
|
|
|
+ plain
|
|
|
+ icon="el-icon-search"
|
|
|
+ size="small"
|
|
|
+ @click="getFanTowerForProject"
|
|
|
+ >查询
|
|
|
+ </el-button>
|
|
|
+ <el-button
|
|
|
+ type="primary"
|
|
|
+ plain
|
|
|
+ icon="el-icon-plus"
|
|
|
+ size="small"
|
|
|
+ @click="insertProjectFan"
|
|
|
+ >新增
|
|
|
+ </el-button>
|
|
|
+ </div>
|
|
|
<el-table v-loading="pLoading" border :data="projectFanList.slice((page1.currentPage-1)*page1.pageSize,page1.currentPage*page1.pageSize)">
|
|
|
- <el-table-column label="项目名称" align="center" prop="projectName"/>
|
|
|
- <el-table-column label="风机编号" align="center" prop="_id"/>
|
|
|
- <el-table-column label="风机名称" align="center" prop="FanName"/>
|
|
|
+ <el-table-column label="项目名称" align="center" prop="name"/>
|
|
|
+<!-- <el-table-column label="风机编号" align="center" prop="fanId"/>-->
|
|
|
+ <el-table-column label="风机名称" align="center" prop="fanName"/>
|
|
|
<el-table-column label="风机经度" align="center" prop="longitudeFan"/>
|
|
|
<el-table-column label="风机纬度" align="center" prop="latitudeFan"/>
|
|
|
- <el-table-column label="风机机型" align="center" prop="FanModel"/>
|
|
|
+ <el-table-column label="风机机型" align="center" prop="fanModel"/>
|
|
|
<el-table-column label="轮毂高度" align="center" prop="hubHeight"/>
|
|
|
|
|
|
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
|
|
@@ -83,24 +141,173 @@
|
|
|
</el-pagination>
|
|
|
</div>
|
|
|
</el-tab-pane>
|
|
|
-
|
|
|
</el-tabs>
|
|
|
+ <el-dialog :title="title" :visible.sync="stationFanOpen" width="60%" append-to-body :close-on-click-modal="false">
|
|
|
+ <el-form ref="form" :model="form" :rules="rules" label-width="80px">
|
|
|
+ <el-row :gutter="20" class="mb8">
|
|
|
+ <el-col :span="12">
|
|
|
+ <el-form-item label="场站名称" prop="name">
|
|
|
+ <el-select v-model="form.name" placeholder="请选择" style="width: 100%" clearable :disabled="saveFlag === 'edit'">
|
|
|
+ <el-option
|
|
|
+ v-for="item in stationOption"
|
|
|
+ :key="item.id"
|
|
|
+ :label="item.name"
|
|
|
+ :value="item.name">
|
|
|
+ </el-option>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="12">
|
|
|
+ <el-form-item label="风机名称" prop="fanName">
|
|
|
+ <el-input v-model="form.fanName" placeholder="请输入风机名称"/>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ <el-row :gutter="20" class="mb8">
|
|
|
+ <el-col :span="12">
|
|
|
+ <el-form-item label="风机机型" prop="fanModel">
|
|
|
+ <el-input v-model="form.fanModel" placeholder="请输入风机机型"/>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="12">
|
|
|
+ <el-form-item label="轮毂高度" prop="hubHeight">
|
|
|
+ <el-input v-model="form.hubHeight" placeholder="请输入轮毂高度"/>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ <el-row :gutter="20" class="mb8">
|
|
|
+ <el-col :span="12">
|
|
|
+ <el-form-item label="风机经度" prop="longitudeFan">
|
|
|
+ <el-input v-model="form.longitudeFan" placeholder="请输入经度"/>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="12">
|
|
|
+ <el-form-item label="风机纬度" prop="latitudeFan">
|
|
|
+ <el-input v-model="form.latitudeFan" placeholder="请输入纬度"/>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ </el-form>
|
|
|
+ <div slot="footer" class="dialog-footer">
|
|
|
+ <el-button type="primary" @click="submitForm">确 定</el-button>
|
|
|
+ <el-button @click="cancel">取 消</el-button>
|
|
|
+ </div>
|
|
|
+ </el-dialog>
|
|
|
+ <el-dialog :title="pTitle" :visible.sync="projectFanOpen" width="60%" append-to-body :close-on-click-modal="false">
|
|
|
+ <el-form ref="pForm" :model="pForm" :rules="rules" label-width="80px">
|
|
|
+ <el-row :gutter="20" class="mb8">
|
|
|
+ <el-col :span="12">
|
|
|
+ <el-form-item label="项目名称" prop="name">
|
|
|
+ <el-select v-model="pForm.name" placeholder="请选择" style="width: 100%" clearable :disabled="pSaveFlag === 'edit'">
|
|
|
+ <el-option
|
|
|
+ v-for="item in projectOption"
|
|
|
+ :key="item.id"
|
|
|
+ :label="item.name"
|
|
|
+ :value="item.name">
|
|
|
+ </el-option>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="12">
|
|
|
+ <el-form-item label="风机名称" prop="fanName">
|
|
|
+ <el-input v-model="pForm.fanName" placeholder="请输入风机名称"/>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ <el-row :gutter="20" class="mb8">
|
|
|
+ <el-col :span="12">
|
|
|
+ <el-form-item label="风机机型" prop="fanModel">
|
|
|
+ <el-input v-model="pForm.fanModel" placeholder="请输入风机机型"/>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="12">
|
|
|
+ <el-form-item label="轮毂高度" prop="hubHeight">
|
|
|
+ <el-input v-model="pForm.hubHeight" placeholder="请输入轮毂高度"/>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ <el-row :gutter="20" class="mb8">
|
|
|
+ <el-col :span="12">
|
|
|
+ <el-form-item label="风机经度" prop="longitudeFan">
|
|
|
+ <el-input v-model="pForm.longitudeFan" placeholder="请输入经度"/>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="12">
|
|
|
+ <el-form-item label="风机纬度" prop="latitudeFan">
|
|
|
+ <el-input v-model="pForm.latitudeFan" placeholder="请输入纬度"/>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ </el-form>
|
|
|
+ <div slot="footer" class="dialog-footer">
|
|
|
+ <el-button type="primary" @click="pSubmitForm">确 定</el-button>
|
|
|
+ <el-button @click="pCancel">取 消</el-button>
|
|
|
+ </div>
|
|
|
+ </el-dialog>
|
|
|
</el-card>
|
|
|
</div>
|
|
|
</template>
|
|
|
|
|
|
<script>
|
|
|
import {
|
|
|
- getProjectInfo,getStationInfo
|
|
|
+ getProjectInfo,getStationInfo,getFanTowerForProject,getFanTowerForStation,
|
|
|
+ saveFanTowerForStationInfo,updateFanTowerForStationInfo,deleteFanTowerForStationInfo,saveFanTowerForProjectInfo,updateFanTowerForProjectInfo,deleteFanTowerForProjectInfo
|
|
|
} from "@/api/biz/dataQuery/fengjiInfo";
|
|
|
export default {
|
|
|
name: "index",
|
|
|
data(){
|
|
|
+ const reg = /^[\-\+]?(0?\d{1,2}(\.\d{1,9})*|1[0-7]?\d{1}(\.\d{1,9})*|180(\.0{1,9})*)$/
|
|
|
+ const reg1 = /^[\-\+]?([0-8]?\d{1}(\.\d{1,9})*|90(\.0{1,9})*)$/
|
|
|
+ const checkLongitude = (rule, value, callback) => {
|
|
|
+ if (!value) {
|
|
|
+ callback(new Error('不许为空'))
|
|
|
+ }
|
|
|
+ if (reg.test(value) == false) {
|
|
|
+ callback(new Error('请输入正确经度'));
|
|
|
+ } else {
|
|
|
+ callback()
|
|
|
+ }
|
|
|
+ }
|
|
|
+ const checkLatitude = (rule, value, callback) => {
|
|
|
+ if (!value) {
|
|
|
+ callback(new Error('不许为空'))
|
|
|
+ }
|
|
|
+ if (reg1.test(value) == false) {
|
|
|
+ callback(new Error('请输入正确纬度'));
|
|
|
+ } else {
|
|
|
+ callback()
|
|
|
+ }
|
|
|
+ }
|
|
|
return{
|
|
|
+ title:'新增&保存',
|
|
|
+ pTitle:'新增&保存',
|
|
|
+ saveFlag: 'add',
|
|
|
+ pSaveFlag: 'add',
|
|
|
+ stationFanOpen: false,
|
|
|
+ projectFanOpen: false,
|
|
|
loading:false,
|
|
|
pLoading:false,
|
|
|
stationFanList:[],//场站风机list
|
|
|
projectFanList:[],//项目风机list
|
|
|
+ stationId:'',
|
|
|
+ projectId:'',
|
|
|
+ projectOption:[],// 项目下拉框
|
|
|
+ stationOption:[],// 场站下拉框
|
|
|
+ form:{},//场站风机弹框
|
|
|
+ rules:{
|
|
|
+ name:[
|
|
|
+ {required: true, message: '请选择'}
|
|
|
+ ],
|
|
|
+ fanName:[
|
|
|
+ {required: true, message: '请填写风机名称'}
|
|
|
+ ],
|
|
|
+ longitudeFan: [{required: true, validator: checkLongitude, trigger: 'blur'}],
|
|
|
+ latitudeFan: [{required: true, validator: checkLatitude, trigger: 'blur'}],
|
|
|
+ fanModel:[
|
|
|
+ {required: true, message: '请选择风机机型'}
|
|
|
+ ]
|
|
|
+ },
|
|
|
+ pForm:{},// 项目风机弹框
|
|
|
page: {
|
|
|
total: 0, // 总页数
|
|
|
currentPage: 1, // 当前页数
|
|
@@ -114,41 +321,230 @@ export default {
|
|
|
}
|
|
|
},
|
|
|
mounted() {
|
|
|
+ this.getStationInfo()
|
|
|
+ this.getFanTowerForStation()
|
|
|
+ this.getProjectInfo()
|
|
|
+ this.getFanTowerForProject()
|
|
|
},
|
|
|
methods:{
|
|
|
- /*获取信息*/
|
|
|
- getInfo(){
|
|
|
-
|
|
|
+ /*获取场站风机信息*/
|
|
|
+ getFanTowerForStation(){
|
|
|
+ this.loading = true
|
|
|
+ let id = this.stationId
|
|
|
+ if (id === undefined || id === null) id = ''
|
|
|
+ getFanTowerForStation({id:id}).then(res=>{
|
|
|
+ this.stationFanList = res.data
|
|
|
+ this.page.total = this.stationFanList.length
|
|
|
+ this.loading = false
|
|
|
+ }).catch(err=>{
|
|
|
+ this.loading = false
|
|
|
+ console.log('获取场站风机信息异常:'+err)
|
|
|
+ })
|
|
|
+ },
|
|
|
+ /*获取项目风机信息*/
|
|
|
+ getFanTowerForProject(){
|
|
|
+ this.pLoading = true
|
|
|
+ let id = this.projectId
|
|
|
+ if (id === undefined || id === null) id = ''
|
|
|
+ getFanTowerForProject({id:id}).then(res=>{
|
|
|
+ this.projectFanList = res.data
|
|
|
+ this.page1.total = this.projectFanList.length
|
|
|
+ this.pLoading = false
|
|
|
+ }).catch(err=>{
|
|
|
+ this.pLoading = false
|
|
|
+ console.log('获取项目风机信息异常:'+err)
|
|
|
+ })
|
|
|
},
|
|
|
/*获取项目下拉框*/
|
|
|
getProjectInfo(){
|
|
|
getProjectInfo().then(res=>{
|
|
|
-
|
|
|
+ this.projectOption = res.data
|
|
|
}).catch(err=>{
|
|
|
-
|
|
|
+ console.log('获取项目下拉框信息异常:'+err)
|
|
|
})
|
|
|
},
|
|
|
/*获取场站下拉框*/
|
|
|
getStationInfo(){
|
|
|
getStationInfo().then(res=>{
|
|
|
-
|
|
|
+ this.stationOption = res.data
|
|
|
}).catch(err=>{
|
|
|
-
|
|
|
+ console.log('获取场站下拉框信息异常:'+err)
|
|
|
})
|
|
|
},
|
|
|
/*场站的编辑与删除*/
|
|
|
+ insertStationFan(){
|
|
|
+ this.title = '新增&保存'
|
|
|
+ this.saveFlag = 'add'
|
|
|
+ this.resetStaionFanForm()
|
|
|
+ this.stationFanOpen = true
|
|
|
+ },
|
|
|
handleUpdate(row){
|
|
|
-
|
|
|
+ this.title = '编辑&保存'
|
|
|
+ this.saveFlag = 'edit'
|
|
|
+ this.form = {
|
|
|
+ id:row.id,
|
|
|
+ name:row.name,
|
|
|
+ fanId:row.fanId,
|
|
|
+ fanName:row.fanName,
|
|
|
+ longitudeFan:row.longitudeFan,
|
|
|
+ latitudeFan:row.latitudeFan,
|
|
|
+ fanModel:row.fanModel,
|
|
|
+ hubHeight:row.hubHeight
|
|
|
+ }
|
|
|
+ this.stationFanOpen = true
|
|
|
+ },
|
|
|
+ /** 提交按钮 */
|
|
|
+ submitForm() {
|
|
|
+ this.$refs["form"].validate(valid => {
|
|
|
+ if (valid) {
|
|
|
+ if(this.saveFlag === 'add'){
|
|
|
+ this.form.id = this.stationOption.find(w=>w.name === this.form.name).id
|
|
|
+ console.log(this.form)
|
|
|
+ saveFanTowerForStationInfo(this.form).then(res=>{
|
|
|
+ this.getFanTowerForStation()
|
|
|
+ this.stationFanOpen = false
|
|
|
+ this.$message.success('保存成功')
|
|
|
+ }).catch(err=>{
|
|
|
+ this.stationFanOpen = false
|
|
|
+ console.log('保存场站风机信息异常:'+err)
|
|
|
+ })
|
|
|
+ }else{
|
|
|
+ updateFanTowerForStationInfo(this.form).then(res=>{
|
|
|
+ this.getFanTowerForStation()
|
|
|
+ this.stationFanOpen = false
|
|
|
+ this.$message.success('修改成功')
|
|
|
+ }).catch(err=>{
|
|
|
+ this.stationFanOpen = false
|
|
|
+ console.log('修改场站风机信息异常:'+err)
|
|
|
+ })
|
|
|
+ }
|
|
|
+ }else {
|
|
|
+ this.$message.warning('校验不通过')
|
|
|
+ }
|
|
|
+ });
|
|
|
},
|
|
|
handleDelete(row){
|
|
|
+ console.log(row)
|
|
|
+ this.$confirm('此操作将删除该风机信息, 是否继续?', '提示', {
|
|
|
+ confirmButtonText: '确定',
|
|
|
+ cancelButtonText: '取消',
|
|
|
+ type: 'warning'
|
|
|
+ }).then(() => {
|
|
|
+ deleteFanTowerForStationInfo(row).then(res=>{
|
|
|
+ this.getFanTowerForStation()
|
|
|
+ this.$message.success('删除成功')
|
|
|
+ }).catch(err=>{
|
|
|
+ console.log('删除场站风机信息异常:'+err)
|
|
|
+ })
|
|
|
+ }).catch(() => {
|
|
|
+ this.$message({
|
|
|
+ type: 'info',
|
|
|
+ message: '已取消删除'
|
|
|
+ });
|
|
|
+ });
|
|
|
|
|
|
},
|
|
|
+ cancel(){
|
|
|
+ this.resetStaionFanForm()
|
|
|
+ this.stationFanOpen = false
|
|
|
+ },
|
|
|
/*项目的编辑与删除*/
|
|
|
+ insertProjectFan(){
|
|
|
+ this.pTitle = '新增&保存'
|
|
|
+ this.pSaveFlag = 'add'
|
|
|
+ this.resetProjectFanForm()
|
|
|
+ this.projectFanOpen= true
|
|
|
+ },
|
|
|
pHandleUpdate(row){
|
|
|
-
|
|
|
+ this.pTitle = '编辑&保存'
|
|
|
+ this.pSaveFlag = 'edit'
|
|
|
+ this.pForm = {
|
|
|
+ id:row.id,
|
|
|
+ name:row.name,
|
|
|
+ fanId:row.fanId,
|
|
|
+ fanName:row.fanName,
|
|
|
+ longitudeFan:row.longitudeFan,
|
|
|
+ latitudeFan:row.latitudeFan,
|
|
|
+ fanModel:row.fanModel,
|
|
|
+ hubHeight:row.hubHeight
|
|
|
+ }
|
|
|
+ this.projectFanOpen = true
|
|
|
},
|
|
|
pHandleDelete(row){
|
|
|
-
|
|
|
+ this.$confirm('此操作将删除该风机信息, 是否继续?', '提示', {
|
|
|
+ confirmButtonText: '确定',
|
|
|
+ cancelButtonText: '取消',
|
|
|
+ type: 'warning'
|
|
|
+ }).then(() => {
|
|
|
+ deleteFanTowerForProjectInfo(row).then(res=>{
|
|
|
+ this.getFanTowerForProject()
|
|
|
+ this.$message.success('删除成功')
|
|
|
+ }).catch(err=>{
|
|
|
+ console.log('删除项目风机信息异常:'+err)
|
|
|
+ })
|
|
|
+ }).catch(() => {
|
|
|
+ this.$message({
|
|
|
+ type: 'info',
|
|
|
+ message: '已取消删除'
|
|
|
+ });
|
|
|
+ });
|
|
|
+ },
|
|
|
+ pSubmitForm() {
|
|
|
+ this.$refs["pForm"].validate(valid => {
|
|
|
+ if (valid) {
|
|
|
+ if(this.pSaveFlag === 'add'){
|
|
|
+ this.pForm.id = this.projectOption.find(w=>w.name === this.pForm.name).id
|
|
|
+ console.log(this.pForm)
|
|
|
+ saveFanTowerForProjectInfo(this.pForm).then(res=>{
|
|
|
+ this.getFanTowerForProject()
|
|
|
+ this.projectFanOpen = false
|
|
|
+ this.$message.success('保存成功')
|
|
|
+ }).catch(err=>{
|
|
|
+ this.projectFanOpen = false
|
|
|
+ console.log('保存项目风机信息异常:'+err)
|
|
|
+ })
|
|
|
+ }else{
|
|
|
+ updateFanTowerForProjectInfo(this.pForm).then(res=>{
|
|
|
+ this.getFanTowerForProject()
|
|
|
+ this.projectFanOpen = false
|
|
|
+ this.$message.success('修改成功')
|
|
|
+ }).catch(err=>{
|
|
|
+ this.projectFanOpen = false
|
|
|
+ console.log('修改项目风机信息异常:'+err)
|
|
|
+ })
|
|
|
+ }
|
|
|
+ }else{
|
|
|
+ this.$message.warning('校验没通过')
|
|
|
+ }
|
|
|
+ });
|
|
|
+ },
|
|
|
+ pCancel(){
|
|
|
+ this.resetProjectFanForm()
|
|
|
+ this.projectFanOpen = false
|
|
|
+ },
|
|
|
+ resetStaionFanForm(){
|
|
|
+ this.form={
|
|
|
+ id:null,
|
|
|
+ name:null,
|
|
|
+ fanId:null,
|
|
|
+ fanName:null,
|
|
|
+ longitudeFan:null,
|
|
|
+ latitudeFan:null,
|
|
|
+ fanModel:null,
|
|
|
+ hubHeight:null
|
|
|
+ }
|
|
|
+ },
|
|
|
+ resetProjectFanForm(){
|
|
|
+ this.pForm={
|
|
|
+ id:null,
|
|
|
+ name:null,
|
|
|
+ fanId:null,
|
|
|
+ fanName:null,
|
|
|
+ longitudeFan:null,
|
|
|
+ latitudeFan:null,
|
|
|
+ fanModel:null,
|
|
|
+ hubHeight:null
|
|
|
+ }
|
|
|
},
|
|
|
/*pageSize改变*/
|
|
|
handleSizeChange(val) {
|