feat: 科室设备经营分析功能

lh_dev_ksck
chenhc 7 months ago
parent 594ca864c4
commit ef40f02308

@ -62,3 +62,21 @@ export function businessPage(query) {
)
}
export function excelBusinessProjectImport(params) {
return axios({
url: "/udi/device/businessProject/exportExcel",
method: "get",
responseType: 'blob',
params: params
});
}
export function postExcelBusinessProjectImport(data) {
return axios({
url: "/udi/device/businessProject/selectExportExcel",
method: "post",
responseType: 'blob',
data: data
});
}

@ -267,7 +267,7 @@ export default {
let a = document.createElement("a");
a.href = url;
a.click();
this.$message("成功")
this.$message.success("成功")
})
});
@ -314,7 +314,7 @@ export default {
let a = document.createElement("a");
a.href = url;
a.click();
this.$message("成功")
this.$message.success("成功")
})
});

@ -336,7 +336,7 @@ export default {
let a = document.createElement("a");
a.href = url;
a.click();
this.$message("成功")
this.$message.success("成功")
})
},

@ -297,7 +297,7 @@ export default {
let a = document.createElement("a");
a.href = url;
a.click();
this.$message("成功")
this.$message.success("成功")
})
},

@ -275,7 +275,7 @@ export default {
let a = document.createElement("a");
a.href = url;
a.click();
this.$message("成功")
this.$message.success("成功")
})
},

@ -295,7 +295,7 @@ export default {
let a = document.createElement("a");
a.href = url;
a.click();
this.$message("成功")
this.$message.success("成功")
})
},

@ -270,7 +270,7 @@ export default {
let a = document.createElement("a");
a.href = url;
a.click();
this.$message("成功")
this.$message.success("成功")
})
},

@ -584,7 +584,7 @@ export default {
let a = document.createElement("a");
a.href = url;
a.click();
this.$message("成功")
this.$message.success("成功")
}).catch(() => {
this.selectExportLoading = false
})
@ -642,7 +642,7 @@ export default {
let a = document.createElement("a");
a.href = url;
a.click();
this.$message("成功")
this.$message.success("成功")
})
});

@ -785,7 +785,7 @@ export default {
let a = document.createElement("a");
a.href = url;
a.click();
this.$message("成功")
this.$message.success("成功")
}).catch(() => {
this.selectExportLoading = false
})
@ -843,7 +843,7 @@ export default {
let a = document.createElement("a");
a.href = url;
a.click();
this.$message("成功")
this.$message.success("成功")
})
});

@ -581,7 +581,7 @@ export default {
let a = document.createElement("a");
a.href = url;
a.click();
this.$message("成功")
this.$message.success("成功")
}).catch(() => {
this.selectExportLoading = false
})
@ -639,7 +639,7 @@ export default {
let a = document.createElement("a");
a.href = url;
a.click();
this.$message("成功")
this.$message.success("成功")
})
});

@ -586,7 +586,7 @@ export default {
let a = document.createElement("a");
a.href = url;
a.click();
this.$message("成功")
this.$message.success("成功")
}).catch(() => {
this.selectExportLoading = false
})
@ -644,7 +644,7 @@ export default {
let a = document.createElement("a");
a.href = url;
a.click();
this.$message("成功")
this.$message.success("成功")
})
});

@ -636,7 +636,7 @@ export default {
let a = document.createElement("a");
a.href = url;
a.click();
this.$message("成功")
this.$message.success("成功")
}).catch(() => {
this.selectExportLoading = false
})
@ -674,7 +674,7 @@ export default {
let a = document.createElement("a");
a.href = url;
a.click();
this.$message("成功")
this.$message.success("成功")
})
});

@ -603,7 +603,7 @@ export default {
let a = document.createElement("a");
a.href = url;
a.click();
this.$message("成功")
this.$message.success("成功")
}).catch(() => {
this.selectExportLoading = false
})
@ -661,7 +661,7 @@ export default {
let a = document.createElement("a");
a.href = url;
a.click();
this.$message("成功")
this.$message.success("成功")
})
});

@ -3,70 +3,31 @@
<el-card class="el-card">
<el-form :model="filterQuery" class="query-form" size="mini" label-width="100px" v-if="showSearch">
<el-row style=" display:flex; flex-wrap: wrap; ">
<el-col :span="8">
<el-form-item class="query-form-item" label="领用仓库:">
<el-select v-model="filterQuery.fromInvCode" placeholder="请选择领用仓库" clearable="true"
size="mini"
style="width: 90%"
>
<el-option
v-for="item in invList"
:key="item.code"
:label="item.label"
:value="item.code">
<span style="float: left">{{ item.label }}</span>
</el-option>
</el-select>
</el-form-item>
<el-form-item label="部门名称:" class="query-form-item">
<el-input v-model="filterQuery.deptName" placeholder="部门名称" clearable></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item class="query-form-item" label="出入库类型:">
<el-select v-model="filterQuery.mainAction" placeholder="请选择出入库类型" style="width: 90%" @change="changeActionType">
<el-option label="入库" value="WareHouseIn"></el-option>
<el-option label="出库" value="WareHouseOut"></el-option>
</el-select>
</el-form-item>
<el-form-item label="收费项目:" class="query-form-item">
<el-input
v-model="filterQuery.sfxm"
clearable
placeholder="项目名称"
></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item class="query-form-item" label="单据类型:" label-width="100px" >
<el-select
v-model="filterQuery.action"
filterable
remote
clearable="true"
reserve-keyword
placeholder="请输入单据类型"
size="mini"
style="width: 90%"
>
<el-option
v-for="item in actions"
:key="item.code"
:label="item.label"
:value="item.code"
>
<span style="float: left">{{ item.label }}</span>
</el-option>
</el-select>
</el-form-item>
<el-form-item label="项目名称:" class="query-form-item">
<el-input
v-model="filterQuery.sfmc"
clearable
placeholder="项目名称"
></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item class="query-form-item" label="耗材类型:">
<el-select v-model="filterQuery.hcType" placeholder="请选择耗材类型" style="width: 90%" clearable="true">
<el-option label="高耗" value="1"></el-option>
<el-option label="普耗" value="2"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item class="query-form-item" label="出入库时间:">
<el-form-item class="query-form-item" label="项目收费日期:">
<el-date-picker
:picker-options="pickerOptions"
v-model="actDateRange"
@ -76,7 +37,7 @@
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期"
style="width: 90%"
style="width: 100%"
></el-date-picker>
</el-form-item>
</el-col>
@ -96,10 +57,10 @@
>查询
</el-button
>
<!-- <el-button type="primary" icon="el-icon-document" @click="selectExport" :loading="selectExportLoading">选中导出Excel</el-button>-->
<!-- <el-button type="primary" icon="el-icon-document" @click="searchExport" :loading="searchExportLoading">结果导出Excel</el-button>-->
<el-button type="primary" icon="el-icon-printer" @click="optinPrint" :loading="optinPrintLoading">选中打印</el-button>
<el-button type="primary" icon="el-icon-printer" @click="selectPrint" :loading="selectPrinttLoading">查询结果打印</el-button>
<el-button type="primary" icon="el-icon-document" @click="selectExport" :loading="selectExportLoading">选中导出Excel</el-button>
<el-button type="primary" icon="el-icon-document" @click="searchExport" :loading="searchExportLoading">结果导出Excel</el-button>
<!-- <el-button type="primary" icon="el-icon-printer" @click="optinPrint" :loading="optinPrintLoading">选中打印</el-button>-->
<!-- <el-button type="primary" icon="el-icon-printer" @click="selectPrint" :loading="selectPrinttLoading">查询结果打印</el-button>-->
</el-button-group>
</div>
<el-divider style="margin: 15px"></el-divider>
@ -112,8 +73,8 @@
<el-table-column prop="sfmc" width="140" label="项目名称" > </el-table-column>
<el-table-column prop="totalProjectCost" width="140" label="项目总成本" > </el-table-column>
<el-table-column prop="totalProjectRevenue" width="140" label="项目总收益" > </el-table-column>
<el-table-column prop="totalDeviceBenefit" width="140" label="设备效益" > </el-table-column>
<el-table-column prop="totalROI" width="140" label="总投资回报率ROI" > </el-table-column>
<el-table-column prop="totalDeviceBenefit" width="140" label="设备效益" :formatter="formatPercentage"> </el-table-column>
<el-table-column prop="totalROI" width="140" label="总投资回报率ROI" :formatter="formatPercentage"> </el-table-column>
</el-table>
@ -131,13 +92,7 @@
</template>
<script>
import {
getResultOrderProductList,
verifyTemplateFile,
printOrderProduct,
printOrderDeptProduct,
excelInoutImport, postExcelInoutImport
} from '@/api/inout/orderDetailResult'
import {getCorrespondence,getBasicUnitMaintainsOptimize} from "@/api/basic/basicUnitMaintain";
import {
getHead,executeFuc
@ -146,7 +101,7 @@ import {getDeptListByUser} from "@/api/auth/authDept";
import {filterSubAllOptimize} from "@/api/system/invSubWarehouse";
import {getOrderDetailBusOptimize} from "@/api/basic/busType";
import {
businessPage,
businessPage,postExcelBusinessProjectImport,excelBusinessProjectImport
} from "@/api/dev/deviceBusinessProjectApi";
export default {
@ -158,18 +113,18 @@ export default {
busTypeOptions: [],
filterQuery: {
id: "",
orderIdFk: null,
deptName: null,
invCode: this.$store.getters.locInvCode,
fromCorp: null,
hcType: null,
sfxm: null,
sfmc: null,
fromCorpName: null,
coName: null,
spec: null,
batchNo: null,
page: 1,
limit: 30,
startAduditTime: null,
endAduditTime: null,
startChargTime: null,
endChargTime: null,
action: null,
actionType: null,
fromInvCode: null,
@ -249,6 +204,10 @@ export default {
};
},
methods: {
formatPercentage(row, column, cellValue) {
//
return (cellValue * 100).toFixed(2) + '%';
},
getInvList() {
filterSubAllOptimize({lyInvType:true})
.then((response) => {
@ -308,11 +267,11 @@ export default {
onSubmit() {
this.loading = true;
if (this.actDateRange !== null) {
this.filterQuery.startAduditTime = this.actDateRange[0];
this.filterQuery.endAduditTime = this.actDateRange[1];
this.filterQuery.startChargTime = this.actDateRange[0];
this.filterQuery.endChargTime= this.actDateRange[1];
} else {
this.filterQuery.startAduditTime = null;
this.filterQuery.endAduditTime = null;
this.filterQuery.startChargTime = null;
this.filterQuery.endChargTime = null;
}
if (this.confirmDateRange!== null) {
this.filterQuery.confirmStarTime = this.confirmDateRange[0];
@ -539,14 +498,14 @@ export default {
list: this.orderSelection
};
this.selectExportLoading = true
postExcelInoutImport(printParams).then((response) => {
postExcelBusinessProjectImport(printParams).then((response) => {
this.selectExportLoading = false
let blob = new Blob([response], {type: "application/vnd.ms-excel"});
let url = window.URL.createObjectURL(blob); // urlblob
let a = document.createElement("a");
a.href = url;
a.click();
this.$message("成功")
this.$message.success("成功")
}).catch(() => {
this.selectExportLoading = false
})
@ -563,6 +522,9 @@ export default {
.then(() => {
let printParams = {
deptName: this.filterQuery.deptName,
sfxm: this.filterQuery.sfxm,
sfmc: this.filterQuery.sfmc,
orderIdFk: this.filterQuery.orderIdFk,
nameCode: this.filterQuery.nameCode,
coName: this.filterQuery.coName,
@ -583,11 +545,11 @@ export default {
}
if (this.actDateRange !== null) {
printParams.startAduditTime = this.actDateRange[0];
printParams.endAduditTime = this.actDateRange[1];
printParams.startChargTime = this.actDateRange[0];
printParams.endChargTime= this.actDateRange[1];
} else {
printParams.startAduditTime = null;
printParams.endAduditTime = null;
printParams.startChargTime = null;
printParams.endChargTime = null;
}
if (this.confirmDateRange!== null) {
printParams.confirmStarTime = this.confirmDateRange[0];
@ -597,14 +559,14 @@ export default {
printParams.confirmEndTime = null;
}
this.searchExportLoading = true
excelInoutImport(printParams).then((response) => {
excelBusinessProjectImport(printParams).then((response) => {
this.searchExportLoading = false
let blob = new Blob([response], {type: "application/vnd.ms-excel"});
let url = window.URL.createObjectURL(blob); // urlblob
let a = document.createElement("a");
a.href = url;
a.click();
this.$message("成功")
this.$message.success("成功")
})
});
@ -627,11 +589,11 @@ export default {
}
,
created() {
this.actionType = 'norDetail';
// this.actionType = 'norDetail';
this.getList();
this.getInvList();
this.getInvListAllFlagInv();
this.getBusTypeByInv();
// this.getInvList();
// this.getInvListAllFlagInv();
// this.getBusTypeByInv();
}
,
}

Loading…
Cancel
Save