parent
caaf62ff6b
commit
652a883198
24 changed files with 1899 additions and 784 deletions
@ -0,0 +1,33 @@ |
||||
import request from '@/router/axios'; |
||||
|
||||
export const messTotal = (query) =>{ |
||||
return request({ |
||||
url:'/api/messeage/total', |
||||
method:'get', |
||||
params:query |
||||
}) |
||||
} |
||||
|
||||
export const getList = (query) =>{ |
||||
return request({ |
||||
url:'/api/messeage/list', |
||||
method:'get', |
||||
params:query |
||||
}) |
||||
} |
||||
|
||||
export const messOver = (data) =>{ |
||||
return request({ |
||||
url:'/api/messeage/updateStatus', |
||||
method:'post', |
||||
data |
||||
}) |
||||
} |
||||
|
||||
export const overAll = (data) =>{ |
||||
return request({ |
||||
url:'/api/messeage/updateStatusAll', |
||||
method:'post', |
||||
data |
||||
}) |
||||
} |
||||
@ -0,0 +1,45 @@ |
||||
import request from '@/router/axios'; |
||||
|
||||
export const getList = (query) =>{ |
||||
return request({ |
||||
url:"/api/wareHouse/list", |
||||
method:"get", |
||||
params:query |
||||
}) |
||||
} |
||||
|
||||
// 新增
|
||||
export const addWare = (data) =>{ |
||||
return request({ |
||||
url:'/api/wareHouse/save', |
||||
method:'post', |
||||
data |
||||
}) |
||||
} |
||||
|
||||
// 详情
|
||||
export const getDetail = (query) =>{ |
||||
return request({ |
||||
url:'/api/wareHouse/detail', |
||||
method:'get', |
||||
params:query |
||||
}) |
||||
} |
||||
|
||||
// 修改
|
||||
export const editWare = (data) =>{ |
||||
return request({ |
||||
url:'/api/wareHouse/update', |
||||
method:'post', |
||||
data |
||||
}) |
||||
} |
||||
|
||||
// 删除
|
||||
export const deleteWare = (query) =>{ |
||||
return request({ |
||||
url:'/api/wareHouse/remove', |
||||
method:'post', |
||||
params:query |
||||
}) |
||||
} |
||||
@ -0,0 +1,297 @@ |
||||
<template> |
||||
<basic-container> |
||||
<avue-crud :option="option" |
||||
:table-loading="loading" |
||||
:data="data" |
||||
:page.sync="page" |
||||
ref="crud" |
||||
@row-del="rowDel" |
||||
v-model="form" |
||||
:permission="permissionList" |
||||
@row-update="rowUpdate" |
||||
@row-save="rowSave" |
||||
:before-open="beforeOpen" |
||||
@search-change="searchChange" |
||||
@search-reset="searchReset" |
||||
@selection-change="selectionChange" |
||||
@current-change="currentChange" |
||||
@size-change="sizeChange" |
||||
@refresh-change="refreshChange" |
||||
@on-load="onLoad"> |
||||
<template slot-scope="scope" slot="status"> |
||||
<el-tag :type="scope.row.status == 0 ? 'danger' : 'success'">{{ scope.row.status == 0 ? '未读' : '已读' }}</el-tag> |
||||
</template> |
||||
<template slot-scope="scope" slot="messageType"> |
||||
<el-tag :type="scope.row.messageType == 1 ? 'success' : ''">{{ scope.row.messageType == 1 ? '维修' : '维保' }}</el-tag> |
||||
</template> |
||||
<template slot="menuLeft"> |
||||
<el-button type="primary" |
||||
size="small" |
||||
v-if="permission.notice_delete" |
||||
@click="handleSuccess">一键已读 |
||||
</el-button> |
||||
</template> |
||||
<template slot="menu" slot-scope="{ row }"> |
||||
<el-button size="small" @click="handleRead(row)">已 读 </el-button> |
||||
</template> |
||||
<template slot-scope="{row}" |
||||
slot="category"> |
||||
<el-tag>{{row.categoryName}}</el-tag> |
||||
</template> |
||||
</avue-crud> |
||||
</basic-container> |
||||
</template> |
||||
|
||||
<script> |
||||
// import {getList, remove, update, add, getNotice} from "@/api/desk/notice"; |
||||
import {messTotal,getList,messOver,overAll} from '@/api/desk/message' |
||||
import {mapGetters} from "vuex"; |
||||
export default { |
||||
data() { |
||||
return { |
||||
form: {}, |
||||
query: {}, |
||||
loading: true, |
||||
page: { |
||||
pageSize: 10, |
||||
currentPage: 1, |
||||
total: 0 |
||||
}, |
||||
selectionList: [], |
||||
option: { |
||||
height: 'auto', |
||||
calcHeight: 30, |
||||
dialogWidth: 950, |
||||
tip: false, |
||||
searchShow: true, |
||||
searchMenuSpan: 6, |
||||
border: true, |
||||
index: true, |
||||
viewBtn: false, |
||||
editBtn:false, |
||||
delBtn:false, |
||||
selection: true, |
||||
excelBtn: true, |
||||
addBtn:false, |
||||
dialogClickModal: false, |
||||
column: [ |
||||
{ |
||||
label: "单号", |
||||
prop: "no", |
||||
span: 24, |
||||
overHidden:true |
||||
}, |
||||
{ |
||||
label: "消息内容", |
||||
prop: "content", |
||||
span: 24, |
||||
overHidden:true |
||||
}, |
||||
{ |
||||
label: "消息类型", |
||||
prop: "messageType", |
||||
span: 24, |
||||
slot:true |
||||
}, |
||||
{ |
||||
label: "消息状态", |
||||
prop: "status", |
||||
type:'select', |
||||
span: 24, |
||||
slot:true, |
||||
search:true, |
||||
dicData:[ |
||||
{ |
||||
label:'已读', |
||||
value:'1' |
||||
}, |
||||
{ |
||||
label:'未读', |
||||
value:'0' |
||||
} |
||||
] |
||||
}, |
||||
{ |
||||
label: "消息时间", |
||||
prop: "createTime", |
||||
span: 24, |
||||
}, |
||||
{ |
||||
label: "消息时间", |
||||
prop: "releaseTimeRange", |
||||
type: "date", |
||||
format: "yyyy-MM-dd", |
||||
valueFormat: "yyyy-MM-dd", |
||||
searchRange:true, |
||||
hide: true, |
||||
addDisplay: false, |
||||
editDisplay: false, |
||||
viewDisplay: false, |
||||
search: true, |
||||
rules: [{ |
||||
required: true, |
||||
message: "请输入通知时间", |
||||
trigger: "blur" |
||||
}] |
||||
}, |
||||
] |
||||
}, |
||||
data: [] |
||||
}; |
||||
}, |
||||
computed: { |
||||
...mapGetters(["permission"]), |
||||
permissionList() { |
||||
return { |
||||
addBtn: this.vaildData(this.permission.notice_add, false), |
||||
viewBtn: this.vaildData(this.permission.notice_view, false), |
||||
delBtn: this.vaildData(this.permission.notice_delete, false), |
||||
editBtn: this.vaildData(this.permission.notice_edit, false) |
||||
}; |
||||
}, |
||||
ids() { |
||||
let ids = []; |
||||
this.selectionList.forEach(ele => { |
||||
ids.push(ele.id); |
||||
}); |
||||
return ids.join(","); |
||||
} |
||||
}, |
||||
methods: { |
||||
rowSave(row, done, loading) { |
||||
add(row).then(() => { |
||||
this.onLoad(this.page); |
||||
this.$message({ |
||||
type: "success", |
||||
message: "操作成功!" |
||||
}); |
||||
done(); |
||||
}, error => { |
||||
window.console.log(error); |
||||
loading(); |
||||
}); |
||||
}, |
||||
rowUpdate(row, index, done, loading) { |
||||
update(row).then(() => { |
||||
this.onLoad(this.page); |
||||
this.$message({ |
||||
type: "success", |
||||
message: "操作成功!" |
||||
}); |
||||
done(); |
||||
}, error => { |
||||
window.console.log(error); |
||||
loading(); |
||||
}); |
||||
}, |
||||
rowDel(row) { |
||||
this.$confirm("确定将选择数据删除?", { |
||||
confirmButtonText: "确定", |
||||
cancelButtonText: "取消", |
||||
type: "warning" |
||||
}) |
||||
.then(() => { |
||||
return remove(row.id); |
||||
}) |
||||
.then(() => { |
||||
this.onLoad(this.page); |
||||
this.$message({ |
||||
type: "success", |
||||
message: "操作成功!" |
||||
}); |
||||
}); |
||||
}, |
||||
searchReset() { |
||||
this.query = {}; |
||||
this.onLoad(this.page); |
||||
}, |
||||
searchChange(params, done) { |
||||
this.query = params; |
||||
this.page.currentPage = 1; |
||||
this.onLoad(this.page, params); |
||||
done(); |
||||
}, |
||||
selectionChange(list) { |
||||
this.selectionList = list; |
||||
}, |
||||
selectionClear() { |
||||
this.selectionList = []; |
||||
this.$refs.crud.toggleSelection(); |
||||
}, |
||||
handleRead(row){ |
||||
if(row.status == 1){ |
||||
this.$message.warning('当前消息状态已读,请选择未读的消息') |
||||
}else{ |
||||
this.$confirm("确定将选择数据已读?", { |
||||
confirmButtonText: "确定", |
||||
cancelButtonText: "取消", |
||||
type: "warning" |
||||
}).then(() => { |
||||
messOver({ |
||||
id:row.id, |
||||
status:1 |
||||
}).then(res =>{ |
||||
if(res.data.code == 200){ |
||||
this.$message.success('操作成功!') |
||||
this.onLoad(this.page) |
||||
} |
||||
}) |
||||
}).catch(() =>{ |
||||
|
||||
}) |
||||
} |
||||
}, |
||||
handleSuccess(){ |
||||
overAll().then(res =>{ |
||||
if(res.data.code == 200){ |
||||
this.$message.success('操作成功') |
||||
} |
||||
}) |
||||
}, |
||||
beforeOpen(done, type) { |
||||
if (["edit", "view"].includes(type)) { |
||||
getNotice(this.form.id).then(res => { |
||||
this.form = res.data.data; |
||||
}); |
||||
} |
||||
done(); |
||||
}, |
||||
currentChange(currentPage) { |
||||
this.page.currentPage = currentPage; |
||||
}, |
||||
sizeChange(pageSize) { |
||||
this.page.pageSize = pageSize; |
||||
}, |
||||
refreshChange() { |
||||
this.onLoad(this.page, this.query); |
||||
}, |
||||
onLoad(page, params = {}) { |
||||
const {releaseTimeRange} = this.query; |
||||
let values = {}; |
||||
if (releaseTimeRange) { |
||||
values = { |
||||
startTime: releaseTimeRange[0], |
||||
endTime: releaseTimeRange[1], |
||||
status:this.query.status ? this.query.status : null |
||||
}; |
||||
values.releaseTimeRange = null; |
||||
}else{ |
||||
values = { |
||||
status:this.query.status ? this.query.status : null |
||||
}; |
||||
} |
||||
this.loading = true; |
||||
getList({current:page.currentPage, size:page.pageSize,...values}).then(res => { |
||||
const data = res.data.data; |
||||
this.page.total = data.total; |
||||
this.data = data.list; |
||||
this.loading = false; |
||||
}); |
||||
} |
||||
} |
||||
}; |
||||
</script> |
||||
|
||||
<style> |
||||
</style> |
||||
|
||||
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,289 @@ |
||||
<template> |
||||
<basic-container style="max-height: 800px; overflow: hidden"> |
||||
<avue-crud :option="option" :table-loading="loading" :data="data" :search.sync="searchForm" :page.sync="page" |
||||
ref="crud" v-model="form" :permission="permissionList" |
||||
@search-change="searchChange" @search-reset="searchReset" @current-change="currentChange" |
||||
@size-change="sizeChange" @refresh-change="refreshChange" @selection-change="selectionChange" @on-load="onLoad"> |
||||
<template slot-scope="{row}" slot="produceTime"> |
||||
{{ row.produceTime.substring(0, 10) }} |
||||
</template> |
||||
<template slot-scope="{ row }" slot="status"> |
||||
<el-tag size="small" :type="row.status == 0 |
||||
? 'warning' |
||||
: row.status == 1 |
||||
? '' |
||||
: '' |
||||
"> |
||||
{{ |
||||
row.status == 0 |
||||
? "待确认" |
||||
: row.status == 1 |
||||
? "已确认" |
||||
: "" |
||||
}} |
||||
</el-tag> |
||||
</template> |
||||
<template slot-scope="{ row }" slot="runStatus"> |
||||
<el-tag size="small" :type="row.runStatus == 0 |
||||
? 'info' |
||||
: row.runStatus == 1 |
||||
? 'success' |
||||
: row.runStatus == 2 |
||||
? 'danger' |
||||
: '' |
||||
"> |
||||
{{ |
||||
row.runStatus == 0 |
||||
? "关机" |
||||
: row.runStatus == 1 |
||||
? "运行中" |
||||
: row.runStatus == 2 |
||||
? '报警中' |
||||
: "" |
||||
}} |
||||
</el-tag> |
||||
</template> |
||||
<template slot-scope="scope" slot="menuLeft"> |
||||
<el-button size="small" @click="handlleAdd" type="primary">新 增</el-button> |
||||
<el-button size="small" @click="handlleDeletes" type="danger">删 除</el-button> |
||||
</template> |
||||
<template slot-scope="{ row }" slot="menu"> |
||||
<el-button v-show="permission.deviceView" @click="handleView(row)">查看</el-button> |
||||
<el-button v-show="permission.deviceEdit" @click="handleEdit(row)">编辑</el-button> |
||||
<el-button v-show="permission.deviceDelete" @click="handleDelete(row)">删除</el-button> |
||||
</template> |
||||
</avue-crud> |
||||
<el-dialog :title="addTitle" :visible.sync="addVisible" :append-to-body="true" width="50%"> |
||||
<el-form ref="form" :model="addForm" :rules="addRules" label-width="80px" label-position="left"> |
||||
<el-form-item label="仓库编码" prop="code"> |
||||
<el-input placeholder="请输入仓库编码" v-model="addForm.code" :disabled="addTitle == '查看仓库'"></el-input> |
||||
</el-form-item> |
||||
<el-form-item label="仓库名称" prop="name"> |
||||
<el-input placeholder="请输入仓库名称" v-model="addForm.name" style="width: 98%;" :disabled="addTitle == '查看仓库'"></el-input> |
||||
</el-form-item> |
||||
<el-form-item label="仓库地址" prop="address"> |
||||
<el-input placeholder="请输入仓库地址" v-model="addForm.address" style="width: 98%;" :disabled="addTitle == '查看仓库'"></el-input> |
||||
</el-form-item> |
||||
</el-form> |
||||
<span slot="footer" class="dialog-footer"> |
||||
<el-button @click="handleClose">关 闭</el-button> |
||||
<el-button v-show="addTitle != '查看仓库'" type="primary" @click="handleConfirm">确 定</el-button> |
||||
</span> |
||||
</el-dialog> |
||||
</basic-container> |
||||
</template> |
||||
|
||||
<script> |
||||
import { mapGetters } from "vuex"; |
||||
import {getList,addWare,getDetail,editWare,deleteWare} from '@/api/goodsManagement/warehouse' |
||||
export default { |
||||
data(){ |
||||
return { |
||||
form:{}, |
||||
searchForm:{}, |
||||
loading:true, |
||||
addVisible:false, |
||||
addTitle:'仓库新增', |
||||
addRules:{ |
||||
code: { required: true, message: '请输入仓库编码', trigger: 'blur' }, |
||||
name: { required: true, message: '请输入仓库名称', trigger: 'blur' }, |
||||
address:{required:true,message:'请输入仓库地址',trigger:'blur'}, |
||||
}, |
||||
addForm:{}, |
||||
option: { |
||||
height: "auto", |
||||
calcHeight: 30, |
||||
tip: false, |
||||
searchShow: true, |
||||
searchMenuSpan: 6, |
||||
border: true, |
||||
index: true, |
||||
dialogType: "dialog", |
||||
dialogClickModal: false, |
||||
addBtn: false, |
||||
viewBtn: false, |
||||
editBtn: false, |
||||
delBtn: false, |
||||
searchShowBtn: false, |
||||
refreshBtn: false, |
||||
columnBtn: false, |
||||
menuWidth: 400, |
||||
selection: true, |
||||
column: [ |
||||
{ |
||||
label: "仓库编码", |
||||
labelWidth: 120, |
||||
prop: "code", |
||||
search: true, |
||||
overHidden: true, |
||||
}, |
||||
{ |
||||
label: "仓库名称", |
||||
labelWidth: 120, |
||||
prop: "name", |
||||
overHidden: true, |
||||
}, |
||||
{ |
||||
label: "仓库地址", |
||||
labelWidth: 120, |
||||
prop: "address", |
||||
overHidden: true, |
||||
}, |
||||
], |
||||
}, |
||||
page:{ |
||||
pageSize: 10, |
||||
currentPage: 1, |
||||
total: 0, |
||||
}, |
||||
data:[], |
||||
selectionList:[] |
||||
} |
||||
}, |
||||
computed: { |
||||
...mapGetters(["userInfo", "permission"]), |
||||
}, |
||||
mounted(){ |
||||
|
||||
}, |
||||
methods:{ |
||||
// 多选数据 |
||||
selectionChange(list){ |
||||
this.selectionList = list |
||||
}, |
||||
searchChange(params, done){ |
||||
this.page.currentPage = 1; |
||||
this.onLoad(); |
||||
done(); |
||||
}, |
||||
searchReset(params, done) { |
||||
this.onLoad(); |
||||
}, |
||||
currentChange(currentPage) { |
||||
this.page.currentPage = currentPage; |
||||
this.onLoad() |
||||
}, |
||||
sizeChange(pageSize){ |
||||
this.page.pageSize = pageSize; |
||||
this.onLoad() |
||||
}, |
||||
// 查询数据 |
||||
onLoad(){ |
||||
this.loading = true |
||||
let query = { |
||||
current:this.page.currentPage, |
||||
size:this.page.pageSize |
||||
} |
||||
getList(query).then(res =>{ |
||||
this.data = res.data.data.records |
||||
this.page.total = res.data.data.total |
||||
this.loading = false |
||||
}) |
||||
}, |
||||
// 点击新增按钮 |
||||
handlleAdd(){ |
||||
this.addForm = {} |
||||
this.addVisible = true |
||||
}, |
||||
// 关闭弹窗 |
||||
handleClose(){ |
||||
this.addVisible = false |
||||
this.addForm = {} |
||||
this.$refs['form'].resetFields() |
||||
}, |
||||
// 点击弹窗确定按钮 |
||||
handleConfirm(){ |
||||
this.$refs['form'].validate((valid) => { |
||||
if(valid){ |
||||
if(this.addForm.id){ |
||||
let query = { |
||||
id:this.addForm.id, |
||||
name:this.addForm.name, |
||||
code:this.addForm.code, |
||||
address:this.addForm.address |
||||
} |
||||
editWare(query).then(res =>{ |
||||
if(res.data.code == 200){ |
||||
this.$message.success("仓库编辑成功") |
||||
this.addVisible = false |
||||
this.onLoad() |
||||
} |
||||
}) |
||||
}else{ |
||||
addWare(this.addForm).then(res =>{ |
||||
if(res.data.code == 200){ |
||||
this.$message.success("仓库新增成功") |
||||
this.addVisible = false |
||||
this.onLoad() |
||||
} |
||||
}) |
||||
} |
||||
} |
||||
}) |
||||
}, |
||||
// 点击编辑按钮 |
||||
handleEdit(row){ |
||||
getDetail({id:row.id}).then(res =>{ |
||||
this.addForm = res.data.data |
||||
this.addVisible = true |
||||
this.addTitle = '编辑仓库' |
||||
}) |
||||
}, |
||||
// 点击查看按钮 |
||||
handleView(row){ |
||||
getDetail({id:row.id}).then(res =>{ |
||||
this.addForm = res.data.data |
||||
this.addVisible = true |
||||
this.addTitle = '查看仓库' |
||||
}) |
||||
}, |
||||
// 点击行内删除按钮 |
||||
handleDelete(row){ |
||||
this.$confirm('请确认是否删除该仓库?', '提示', { |
||||
confirmButtonText: '确定', |
||||
cancelButtonText: '取消', |
||||
type: 'warning' |
||||
}).then(() => { |
||||
deleteWare({ids:row.id}).then(res => { |
||||
if (res.data.code == 200) { |
||||
this.onLoad() |
||||
this.$message({ |
||||
type: 'success', |
||||
message: '删除成功!' |
||||
}); |
||||
} |
||||
}) |
||||
}).catch(() => { |
||||
}); |
||||
}, |
||||
// 点击行外删除按钮 |
||||
handlleDeletes(){ |
||||
if(this.selectionList.length == 0){ |
||||
this.$message.warning('请至少选择一条数据') |
||||
}else{ |
||||
let ids = this.selectionList.map(item => item.id).join(',') |
||||
this.$confirm('请确认是否删除选中的仓库?', '提示', { |
||||
confirmButtonText: '确定', |
||||
cancelButtonText: '取消', |
||||
type: 'warning' |
||||
}).then(() => { |
||||
deleteWare({ids:ids}).then(res => { |
||||
if (res.data.code == 200) { |
||||
this.onLoad() |
||||
this.$message({ |
||||
type: 'success', |
||||
message: '删除成功!' |
||||
}); |
||||
} |
||||
}) |
||||
}).catch(() => { |
||||
}); |
||||
} |
||||
}, |
||||
} |
||||
} |
||||
</script> |
||||
|
||||
<style> |
||||
|
||||
</style> |
||||
Loading…
Reference in new issue