feat: 科室设备经营分析功能
parent
097478bc25
commit
b4dbd6fa7e
@ -0,0 +1,52 @@
|
|||||||
|
import axios from "@/utils/request";
|
||||||
|
export function deviceBusinessProjectPage(query) {
|
||||||
|
return axios(
|
||||||
|
{
|
||||||
|
url: `/udi/device/businessProject/page`,
|
||||||
|
method: "POST",
|
||||||
|
data: query
|
||||||
|
}
|
||||||
|
)
|
||||||
|
}
|
||||||
|
export function deviceBusinessProjectDetailList(query) {
|
||||||
|
return axios(
|
||||||
|
{
|
||||||
|
url: `/udi/device/businessProject/detailList`,
|
||||||
|
method: "POST",
|
||||||
|
data: query
|
||||||
|
}
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
export function selectNotSelectDevice(query) {
|
||||||
|
return axios(
|
||||||
|
{
|
||||||
|
url: `/udi/device/businessProject/selectNotSelectDevice`,
|
||||||
|
method: "POST",
|
||||||
|
data: query
|
||||||
|
}
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
export function addDeviceProject(query) {
|
||||||
|
return axios(
|
||||||
|
{
|
||||||
|
url: `/udi/device/businessProject/addDeviceProject`,
|
||||||
|
method: "POST",
|
||||||
|
data: query
|
||||||
|
}
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
export function deleteDeviceProject(query) {
|
||||||
|
return axios(
|
||||||
|
{
|
||||||
|
url: `/udi/device/businessProject/deleteDeviceProject`,
|
||||||
|
method: "POST",
|
||||||
|
data: query
|
||||||
|
}
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,323 @@
|
|||||||
|
<template>
|
||||||
|
<div>
|
||||||
|
<el-form :inline="true" :model="deviceQuery" class="query-form" size="mini">
|
||||||
|
<el-form-item class="query-form-item" label="设备名称或设备编码:">
|
||||||
|
<el-input
|
||||||
|
v-model="deviceQuery.key"
|
||||||
|
placeholder="请输入设备名称或设备编码"
|
||||||
|
clearable
|
||||||
|
></el-input>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item>
|
||||||
|
<el-button-group>
|
||||||
|
<el-button
|
||||||
|
type="primary"
|
||||||
|
icon="el-icon-refresh"
|
||||||
|
@click="onUserReset"
|
||||||
|
>重置
|
||||||
|
</el-button>
|
||||||
|
<el-button type="primary" @click="loadUserList"
|
||||||
|
icon="el-icon-search"
|
||||||
|
>查询
|
||||||
|
</el-button
|
||||||
|
>
|
||||||
|
<el-button type="primary" @click="addDevice()"
|
||||||
|
icon="el-icon-document-add"
|
||||||
|
>选入库存设备
|
||||||
|
</el-button
|
||||||
|
>
|
||||||
|
</el-button-group>
|
||||||
|
</el-form-item>
|
||||||
|
</el-form>
|
||||||
|
<el-table
|
||||||
|
:data="deviceData"
|
||||||
|
key="row.id"
|
||||||
|
border
|
||||||
|
style="width: 100%"
|
||||||
|
highlight-current-row
|
||||||
|
>
|
||||||
|
<el-table-column label="序号" type="index"></el-table-column>
|
||||||
|
<el-table-column label="设备编码" width="150" prop="deviceCode"/>
|
||||||
|
<el-table-column label="最小销售标识" width="150" prop="nameCode"/>
|
||||||
|
<el-table-column label="名称" width="150" prop="productName"/>
|
||||||
|
<el-table-column label="规格型号" width="160" prop="ggxh"/>
|
||||||
|
<el-table-column label="状态" width="180" prop="statusName">
|
||||||
|
<template slot-scope="scope">
|
||||||
|
<el-tag :type="deviceStatus[scope.row.status].tagType">{{ scope.row.statusName }}</el-tag>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column
|
||||||
|
label="操作"
|
||||||
|
min-width="30%"
|
||||||
|
>
|
||||||
|
<template slot-scope="scope">
|
||||||
|
<el-button
|
||||||
|
type="text"
|
||||||
|
@click.native="rmInvUser(scope.row)">
|
||||||
|
移除
|
||||||
|
</el-button>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
</el-table>
|
||||||
|
<pagination
|
||||||
|
v-show="userTotal>0"
|
||||||
|
:total="userTotal"
|
||||||
|
:page.sync="deviceQuery.page"
|
||||||
|
:limit.sync="deviceQuery.limit"
|
||||||
|
@pagination="loadUserList"
|
||||||
|
/>
|
||||||
|
|
||||||
|
<!--添加用户弹窗-->
|
||||||
|
<el-dialog
|
||||||
|
v-if="userFormVisible"
|
||||||
|
title="选入库存设备"
|
||||||
|
:close-on-click-modal="false"
|
||||||
|
width="65%"
|
||||||
|
append-to-body
|
||||||
|
:close-on-press-escape="false"
|
||||||
|
:visible.sync="userFormVisible"
|
||||||
|
>
|
||||||
|
<el-table v-loading="userloading" :data="selectUserList"
|
||||||
|
ref="selectUserList"
|
||||||
|
@selection-change="handleUserSelectionChange"
|
||||||
|
border
|
||||||
|
style="width: 100%">
|
||||||
|
<el-table-column
|
||||||
|
type="selection"
|
||||||
|
:reserve-selection="false"
|
||||||
|
width="55">
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="序号" type="index"></el-table-column>
|
||||||
|
<el-table-column label="设备编码" width="150" prop="deviceCode"/>
|
||||||
|
<el-table-column label="最小销售标识" width="150" prop="nameCode"/>
|
||||||
|
<el-table-column label="名称" width="150" prop="productName"/>
|
||||||
|
<el-table-column label="规格型号" width="160" prop="ggxh"/>
|
||||||
|
<el-table-column label="状态" width="180" prop="statusName">
|
||||||
|
<template slot-scope="scope">
|
||||||
|
<el-tag :type="deviceStatus[scope.row.status].tagType">{{ scope.row.statusName }}</el-tag>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
</el-table>
|
||||||
|
<div slot="footer" class="dialog-footer">
|
||||||
|
<el-button @click.native="userFormVisible = !userFormVisible"
|
||||||
|
>取消
|
||||||
|
</el-button
|
||||||
|
>
|
||||||
|
<el-button
|
||||||
|
type="primary"
|
||||||
|
@click.native="adddeviceData()"
|
||||||
|
>选入
|
||||||
|
</el-button>
|
||||||
|
</div>
|
||||||
|
<pagination
|
||||||
|
v-show="selectUserToatl>0"
|
||||||
|
:total="selectUserToatl"
|
||||||
|
:page.sync="selectdeviceQuery.page"
|
||||||
|
:limit.sync="selectdeviceQuery.limit"
|
||||||
|
@pagination="getSelectUser"
|
||||||
|
/>
|
||||||
|
</el-dialog>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import {
|
||||||
|
deviceBusinessProjectDetailList,selectNotSelectDevice,addDeviceProject,deleteDeviceProject
|
||||||
|
} from "@/api/dev/deviceBusinessProjectApi";
|
||||||
|
import {isBlank} from "@/utils/strUtil";
|
||||||
|
import {deviceChangeStatus, deviceChangeType, deviceStatus} from "@/utils/enum";
|
||||||
|
|
||||||
|
export default {
|
||||||
|
name: "invRelUsers",
|
||||||
|
computed: {
|
||||||
|
deviceChangeType() {
|
||||||
|
return deviceChangeType
|
||||||
|
},
|
||||||
|
deviceStatus() {
|
||||||
|
return deviceStatus
|
||||||
|
},
|
||||||
|
deviceChangeStatus() {
|
||||||
|
return deviceChangeStatus
|
||||||
|
}
|
||||||
|
},
|
||||||
|
props: {
|
||||||
|
configParms: {
|
||||||
|
type: Object,
|
||||||
|
required: true,
|
||||||
|
},
|
||||||
|
inputQuery: {
|
||||||
|
type: Object,
|
||||||
|
required: true,
|
||||||
|
},
|
||||||
|
closeDialog: {
|
||||||
|
type: Function,
|
||||||
|
required: true,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
//---------------仓库-用户相关---------------------
|
||||||
|
deviceQuery: {
|
||||||
|
sfxm: null,
|
||||||
|
page: 1,
|
||||||
|
limit: 10
|
||||||
|
},
|
||||||
|
deviceData: [],
|
||||||
|
userTotal: 0,
|
||||||
|
deviceDataList:[],
|
||||||
|
|
||||||
|
//---------------仓库添加用户-----
|
||||||
|
selectdeviceQuery: {
|
||||||
|
code: null,
|
||||||
|
page: 1,
|
||||||
|
limit: 10,
|
||||||
|
parentId:""
|
||||||
|
},
|
||||||
|
userFormVisible: false,
|
||||||
|
userloading: false,
|
||||||
|
selectUserList: [],
|
||||||
|
selectUserToatl: 0,
|
||||||
|
selectaddDevice: [],
|
||||||
|
|
||||||
|
|
||||||
|
//------用户-单据类型相关-----------------------
|
||||||
|
curSeleUser: null,
|
||||||
|
relBusUserVisile: false,
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
},
|
||||||
|
|
||||||
|
methods: {
|
||||||
|
//用户相关
|
||||||
|
onUserReset() {
|
||||||
|
this.deviceQuery = {
|
||||||
|
sfxm: this.inputQuery.sfxm,
|
||||||
|
page: 1,
|
||||||
|
limit: 10
|
||||||
|
};
|
||||||
|
this.loadUserList();
|
||||||
|
},
|
||||||
|
loadUserList() { //获取仓库用户列表//下面方框重置按钮
|
||||||
|
// if (val != null) {
|
||||||
|
// this.deviceQuery.page = val;
|
||||||
|
// }
|
||||||
|
//加载用户数据
|
||||||
|
deviceBusinessProjectDetailList(this.deviceQuery).then((res) => {
|
||||||
|
this.deviceData = res.data.list;
|
||||||
|
this.userTotal = res.data.total;
|
||||||
|
}).catch((error) => {
|
||||||
|
this.$message.error("数据正在处理,请勿重复提交")
|
||||||
|
});
|
||||||
|
},
|
||||||
|
|
||||||
|
addDevice() { //添加仓库关联用户弹窗
|
||||||
|
if (isBlank(this.inputQuery.sfxm)) {
|
||||||
|
this.$message.warning("请先收费项目");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
this.currentCode = this.inputQuery.sfxm;
|
||||||
|
this.userFormVisible = true;
|
||||||
|
this.selectdeviceQuery.sfxm=this.inputQuery.sfxm;
|
||||||
|
this.getSelectUser();
|
||||||
|
},
|
||||||
|
|
||||||
|
rmInvUser(row) { //移除仓库关联用户
|
||||||
|
this.$confirm("确定移除该库存设备关联收费项目?", "提示", {
|
||||||
|
confirmButtonText: "确定",
|
||||||
|
cancelButtonText: "取消",
|
||||||
|
type: "warning",
|
||||||
|
})
|
||||||
|
.then(() => {
|
||||||
|
let params = {deviceCode: row.deviceCode};
|
||||||
|
deleteDeviceProject(params).then((res) => {
|
||||||
|
if (res.code == 20000) {
|
||||||
|
this.loadUserList();
|
||||||
|
} else {
|
||||||
|
this.$message.error(res.message);
|
||||||
|
}
|
||||||
|
}).catch((error) => {
|
||||||
|
});
|
||||||
|
})
|
||||||
|
.catch(() => {
|
||||||
|
});
|
||||||
|
},
|
||||||
|
|
||||||
|
handleUserSelectionChange(val) {
|
||||||
|
this.selectaddDevice = val;
|
||||||
|
},
|
||||||
|
|
||||||
|
getSelectUser() {
|
||||||
|
selectNotSelectDevice(this.selectdeviceQuery).then((res) => {
|
||||||
|
this.selectUserList = res.data.list;
|
||||||
|
this.selectUserToatl = res.data.total;
|
||||||
|
}).catch((error) => {
|
||||||
|
this.$message.error("用户数据加载失败")
|
||||||
|
});
|
||||||
|
},
|
||||||
|
|
||||||
|
adddeviceData() { //提交选入用户
|
||||||
|
|
||||||
|
if(this.selectaddDevice.length==0){
|
||||||
|
this.$message.error("请选择要选入的库存设备!");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
let deviceList = [] ;
|
||||||
|
this.selectaddDevice.forEach((obj) => {
|
||||||
|
deviceList.push(obj.deviceCode);
|
||||||
|
});
|
||||||
|
let query = {
|
||||||
|
sfxm: this.currentCode,
|
||||||
|
deviceList: deviceList
|
||||||
|
};
|
||||||
|
addDeviceProject(query).then((res) => {
|
||||||
|
if (res.code === 20000) {
|
||||||
|
this.userFormVisible = false;
|
||||||
|
this.$message.success("添加成功");
|
||||||
|
this.deviceQuery = {
|
||||||
|
sfxm: this.currentCode,
|
||||||
|
page: 1,
|
||||||
|
limit: 10
|
||||||
|
}
|
||||||
|
//重新加载数据
|
||||||
|
deviceBusinessProjectDetailList(this.deviceQuery).then((res) => {
|
||||||
|
this.deviceData = res.data.list;
|
||||||
|
this.userTotal = res.data.total;
|
||||||
|
}).catch((error) => {
|
||||||
|
this.deviceData = [];
|
||||||
|
this.userTotal = 0;
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
this.$message.error(res.message);
|
||||||
|
}
|
||||||
|
}).catch((error) => {
|
||||||
|
this.$message.error("添加失败");
|
||||||
|
});
|
||||||
|
},
|
||||||
|
|
||||||
|
//用户-单据类型 相关
|
||||||
|
relBusttype(row) {
|
||||||
|
this.curSeleUser = row;
|
||||||
|
this.relBusUserVisile = true;
|
||||||
|
},
|
||||||
|
cancelRelBusDiaolog() {
|
||||||
|
this.relBusUserVisile = false;
|
||||||
|
},
|
||||||
|
},
|
||||||
|
watch: {
|
||||||
|
inputQuery: function () {
|
||||||
|
this.deviceQuery.sfxm = this.inputQuery.sfxm;
|
||||||
|
this.loadUserList();
|
||||||
|
},
|
||||||
|
},
|
||||||
|
created() {
|
||||||
|
this.deviceQuery.sfxm = this.inputQuery.sfxm;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped>
|
||||||
|
|
||||||
|
</style>
|
Loading…
Reference in New Issue