123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416 |
- <template>
- <div class="main-contain">
- <div class="position">
- <bread-crumb :crumbs="crumbs"></bread-crumb>
- <div>
- <el-button
- size="small"
- class="filter-item"
- type="primary"
- @click="setting"
- >设置
- </el-button>
- <el-button
- size="small"
- class="filter-item"
- type="primary"
- icon="el-icon-printer"
- @click="printOrder"
- >打印
- </el-button>
- <el-button
- size="small"
- class="filter-item"
- type="primary"
- @click="exportStock"
- >导出
- </el-button>
- </div>
- </div>
- <div class="app-container">
- <div class="cell clearfix">
- <div>
- <span>仓库名称:</span>
- <el-select
- v-model="storehouse_id"
- style="width: 200px; margin-right: 10px"
- placeholder="请选择"
- filterable
- @change="changeStorehouseName"
- >
- <el-option
- v-for="item in storeList"
- :key="item.id"
- :label="item.storehouse_name"
- :value="item.id"
- >
- </el-option>
- </el-select>
- <span>药品名称:</span>
- <el-select
- v-model="drug_id"
- style="width: 200px; margin-right: 10px"
- placeholder="请选择"
- filterable
- @change="changeDrugName"
- >
- <el-option
- v-for="item in medicalList"
- :key="item.id"
- :label="item.drug_name"
- :value="item.id"
- >
- </el-option>
- </el-select>
- </div>
- <!-- <el-select v-model="drug_type" style="width:160px;margin-right:10px;" placeholder="请选择" @change="changeDrug">
- <el-option
- v-for="(item,index) in drugTypeList"
- :key="index"
- :label="item.name"
- :value="item.id">
- </el-option>
- </el-select> -->
- <!-- <el-date-picker
- v-model="start_time"
- prefix-icon="el-icon-date"
- :editable="false"
- style="width: 196px;"
- type="date"
- placeholder="选择日期时间"
- align="right"
- format="yyyy-MM-dd"
- value-format="yyyy-MM-dd"
- @change="startTimeChange"
- ></el-date-picker>-
- <el-date-picker
- v-model="end_time"
- prefix-icon="el-icon-date"
- :editable="false"
- style="width: 196px;margin-right:10px;"
- type="date"
- placeholder="选择日期时间"
- align="right"
- format="yyyy-MM-dd"
- value-format="yyyy-MM-dd"
- @change="endTimeChange"
- ></el-date-picker> -->
- <!-- <el-input
- style="width: 200px;"
- class="filter-item"
- v-model.trim="keywords"
- placeholder="药品名称"
- />
- <el-button
- size="small"
- class="filter-item"
- type="primary"
- icon="el-icon-search"
- @click="search"
- >搜索
- </el-button> -->
- </div>
-
- <el-table
- :data="tableList"
- border
- style="width: 100%"
- :cell-class-name="cellStyle"
- >
- <el-table-column
- prop="drug_type"
- label="药品类型"
- width="100"
- align="center"
- >
- <template slot-scope="scope">
- {{ getDrugType(scope.row.drug_type) }}
- </template>
- </el-table-column>
- <el-table-column prop="drug_name" label="药品名称" align="center">
- <template slot-scope="scope">
- {{ scope.row.drug_name }}
- </template>
- </el-table-column>
- <el-table-column prop="drug_name" label="规格&&单位" align="center">
- <template slot-scope="scope">
- {{
- scope.row.dose +
- scope.row.dose_unit +
- "*" +
- scope.row.min_number +
- scope.row.min_unit +
- "/" +
- scope.row.max_unit
- }}
- </template>
- </el-table-column>
- <el-table-column prop="drug_name" label="国家编码" align="center">
- <template slot-scope="scope">
- {{ scope.row.medical_insurance_number }}
- </template>
- </el-table-column>
- <el-table-column prop="drug_name" label="进货单价" align="center">
- <template slot-scope="scope">
- {{ scope.row.last_price }}
- </template>
- </el-table-column>
- <el-table-column prop="drug_name" label="厂家" align="center">
- <template slot-scope="scope">
- {{ getManufacturerList(scope.row.manufacturer) }}
- </template>
- </el-table-column>
- <el-table-column prop="drug_name" label="仓库名称" align="center">
- <template slot-scope="scope">
- <tr
- style="background: none"
- v-for="(item, index) in scope.row.drug_warehouse"
- :key="index"
- >
- <td
- style="
- border-right: none;
- border-inline-end: none;
- text-align: center;
- "
- >
- {{ getHouseName(item.storehouse_id) }}
- </td>
- </tr>
- </template>
- </el-table-column>
- <el-table-column prop="drug_name" label="入库数量" align="center">
- <template slot-scope="scope">
- <tr
- style="background: none"
- v-for="(item, index) in scope.row.drug_warehouse"
- :key="index"
- >
- <td
- style="
- border-right: none;
- border-inline-end: none;
- text-align: center;
- "
- >
- {{
- getWarehoseInfoSeven(
- scope.row.drug_warehouse_info,
- scope.row.max_unit,
- scope.row.min_unit,
- scope.row.min_number,
- item.storehouse_id
- )
- }}
- </td>
- </tr>
- </template>
- </el-table-column>
- <el-table-column prop="drug_name" label="出库数量" align="center">
- <template slot-scope="scope">
- <tr
- style="background: none"
- v-for="(item, index) in scope.row.drug_warehouse"
- :key="index"
- >
- <td
- style="
- border-right: none;
- border-inline-end: none;
- text-align: center;
- "
- >
- {{
- getOutFlushNight(
- scope.row.drug_warehouse_info,
- scope.row.max_unit,
- scope.row.min_unit,
- scope.row.min_number,
- scope.row.drug_cancel_stock_info,
- item.storehouse_id
- )
- }}
- </td>
- </tr>
- </template>
- </el-table-column>
-
- <el-table-column prop="drug_name" label="剩余库存量" align="center">
- <template slot-scope="scope">
- <tr
- style="background: none"
- v-for="(item, index) in scope.row.drug_warehouse"
- :key="index"
- >
- <td
- style="
- border-right: none;
- border-inline-end: none;
- text-align: center;
- "
- >
- {{
- getOverFlushInfoEight(
- scope.row.drug_warehouse_info,
- scope.row.max_unit,
- scope.row.min_unit,
- scope.row.min_number,
- item.storehouse_id,
- scope.row.storehouse_id
- )
- }}
- </td>
- </tr>
- </template>
- </el-table-column>
-
- <el-table-column
- prop="drug_name"
- label="总库存量"
- align="center"
- v-if="showThree"
- >
- <template slot-scope="scope">
- <div v-if="getWarehoseInfo(scope.row.drug_warehouse_info) > 0">
- {{
- getOverFlushInfo(
- scope.row.drug_warehouse_info,
- scope.row.max_unit,
- scope.row.min_unit,
- scope.row.min_number
- )
- ? getOverFlushInfo(
- scope.row.drug_warehouse_info,
- scope.row.max_unit,
- scope.row.min_unit,
- scope.row.min_number
- )
- : 0
- }}
- </div>
- </template>
- </el-table-column>
- <el-table-column
- prop="drug_name"
- label="操作"
- align="center"
- width="200px"
- >
- <template slot-scope="scope">
- <el-button
- size="small"
- type="primary"
- @click="handleDetail(scope.row)"
- >库存流水
- </el-button>
- <el-button
- size="small"
- type="primary"
- @click="handleBatch(scope.row)"
- >批次
- </el-button>
- </template>
- </el-table-column>
- </el-table>
-
- <el-pagination
- @size-change="handleSizeChange"
- @current-change="handleCurrentChange"
- :page-sizes="[10, 50, 100, 200, 500, 1000]"
- :page-size="10"
- background
- align="right"
- style="margin-top: 20px"
- layout="total, sizes, prev, pager, next, jumper"
- :total="total"
- >
- </el-pagination>
- </div>
-
- <setting-dialog ref="dialog"></setting-dialog>
- </div>
- </template>
-
- <script>
- import { uParseTime } from "@/utils/tools";
- import BreadCrumb from "@/xt_pages/components/bread-crumb";
- import { getDrugStockList, getDrugCountList } from "@/api/drug/drug_stock";
- import SettingDialog from "./settingDialog/index";
- import { getDictionaryDataConfig } from "@/utils/data";
- import { min } from "moment";
- export default {
- name: "stockIn",
- created() {
- if (this.$route.path == "/Pharmacy/MedicianManagement") {
- this.crumbs = [
- { path: false, name: "药品管理" },
- { path: "/stock/drugs/stock/query", name: "药品库存查询" },
- ];
- }
- var start_time = window.sessionStorage.getItem("start_time");
- var end_time = window.sessionStorage.getItem("end_time");
-
- if (start_time != null) {
- this.start_time = start_time;
- }
- if (end_time != null) {
- this.end_time = end_time;
- }
- window.sessionStorage.removeItem("start_time");
- window.sessionStorage.removeItem("end_time");
- this.getlist();
- var drugCategory = getDictionaryDataConfig("system", "drug_category");
- this.drugCategory.push(...drugCategory);
- var drugTypeList = getDictionaryDataConfig("system", "drug_type");
- this.drugTypeList.push(...drugTypeList);
- this.org_id = this.$store.getters.xt_user.org.id;
- },
- components: {
- SettingDialog,
- BreadCrumb,
- },
- data() {
- return {
- crumbs: [
- { path: false, name: "库存管理" },
- { path: "/stock/drugs/stock/query", name: "药品库存查询" },
- ],
- keywords: "",
-
- multipleSelection: [],
- signAndWeighBoxPatients: "sign-and-weigh-box-patients",
- start_time: "",
- end_time: "",
- page: 1,
- limit: 10,
- total: 0,
- goodType: [],
- goodInfo: [],
- tempArr: [],
- sameRowArr: [],
- WarehouseInfo: {
- loading: false,
- warehouseInfoDate: [],
- },
- tableData: [],
- drug_category: 0,
- drugCategory: [{ id: 0, name: "全部" }],
- drugTypeList: [{ id: 0, name: "全部" }],
- tableList: [],
- manufacturerList: [],
- countList: [],
- outCountList: [],
- autoCountList: [],
- keyword: "",
- drug_type: 0,
- minCount: [],
- drugOutList: [],
- cancelCountList: [],
- allCountList: [],
- org_id: "",
- showOne: true,
- showTwo: false,
- showThree: true,
- showFour: false,
- houseList: [],
- medicalList: [],
- storehouse_id: 0,
- drug_id: 0,
- storeList: [],
- };
- },
-
- methods: {
- //获取库存
- getlist() {
- const params = {
- page: this.page,
- limit: this.limit,
- keyword: this.keywords,
- drug_type: this.drug_type,
- start_time: this.start_time,
- end_time: this.end_time,
- drug_id: this.drug_id,
- storehouse_id: this.storehouse_id,
- };
- getDrugStockList(params).then((response) => {
- if (response.data.state == 1) {
- var list = response.data.data.list;
-
- for (let i = 0; i < list.length; i++) {
- for (let j = 0; j < list[i].drug_warehouse_info.length; j++) {
- if (list[i].max_unit == list[i].drug_warehouse_info[j].max_unit) {
- list[i].drug_warehouse_info[j].stock_max_number =
- list[i].min_number *
- list[i].drug_warehouse_info[j].stock_max_number;
- list[i].drug_warehouse_info[j].warehousing_count =
- list[i].min_number *
- list[i].drug_warehouse_info[j].warehousing_count;
- }
- }
- for (let y = 0; y < list[i].drug_warehouse_out.length; y++) {
- if (
- list[i].drug_warehouse_out[y].count_unit == list[i].max_unit
- ) {
- list[i].drug_warehouse_out[y].count =
- list[i].drug_warehouse_out[y].count * list[i].min_number;
- }
- }
- for (let z = 0; z < list[i].drug_cancel_stock_info.length; z++) {
- if (
- list[i].drug_cancel_stock_info[z].max_unit == list[i].max_unit
- ) {
- list[i].drug_cancel_stock_info[z].count =
- list[i].drug_cancel_stock_info[z].count * list[i].min_number;
- }
- }
- }
- var arr = [];
- for (let i = 0; i < list.length; i++) {
- if (list[i].drug_warehouse_info.length > 0) {
- arr.push(list[i]);
- }
- }
- this.tableList = arr;
- var total = response.data.data.total;
- this.total = total;
- this.manufacturerList = response.data.data.manufacturerList;
- this.houseList = [];
- this.storeList = [];
- var obj = {
- id: 0,
- storehouse_name: "全部",
- };
- var objOne = {
- id: 0,
- drug_name: "全部",
- };
-
- this.storeList.push(obj);
- for (let i = 0; i < response.data.data.houseList.length; i++) {
- this.houseList.push(response.data.data.houseList[i]);
- this.storeList.push(response.data.data.houseList[i]);
- }
- this.medicalList = [];
- this.medicalList.push(objOne);
- for (let i = 0; i < response.data.data.medicalList.length; i++) {
- for (
- let j = 0;
- j < response.data.data.manufacturerList.length;
- j++
- ) {
- if (
- response.data.data.medicalList[i].manufacturer ==
- response.data.data.manufacturerList[j].id
- ) {
- response.data.data.medicalList[i].manufacturer =
- response.data.data.manufacturerList[j].manufacturer_name;
- }
- }
- response.data.data.medicalList[i].drug_name =
- response.data.data.medicalList[i].drug_name +
- response.data.data.medicalList[i].dose +
- response.data.data.medicalList[i].dose_unit +
- "*" +
- response.data.data.medicalList[i].min_number +
- response.data.data.medicalList[i].min_unit +
- "/" +
- response.data.data.medicalList[i].max_unit +
- " " +
- response.data.data.medicalList[i].manufacturer;
- this.medicalList.push(response.data.data.medicalList[i]);
- }
- }
- });
- },
- handleSpanTempArr() {
- this.tempArr = [];
-
- for (let i = 0; i < this.WarehouseInfo.warehouseInfoDate.length; i++) {
- if (i === 0) {
- this.tempArr.push(1);
- this.pos = 0;
- } else {
- // 判断当前元素与上一个元素是否相同
- if (
- this.WarehouseInfo.warehouseInfoDate[i].drug_name ===
- this.WarehouseInfo.warehouseInfoDate[i - 1].drug_name
- ) {
- this.tempArr[this.pos] += 1;
- this.tempArr.push(0);
- } else {
- this.tempArr.push(1);
- this.pos = i;
- }
- }
- }
-
- let sameRowArr = [],
- sIdx = 0;
- this.WarehouseInfo.warehouseInfoDate.forEach((item, index) => {
- item.index = index;
- if (index === 0) {
- sameRowArr.push([index]);
- } else {
- if (
- item.drug_name ===
- this.WarehouseInfo.warehouseInfoDate[index - 1].drug_name
- ) {
- sameRowArr[sIdx].push(index);
- } else {
- sIdx = sIdx + 1;
- sameRowArr.push([index]);
- }
- }
- });
- this.sameRowArr = sameRowArr;
- },
- merge({ row, column, rowIndex, columnIndex }) {
- if (columnIndex === 0) {
- const _row = this.tempArr[rowIndex];
- const _col = _row > 0 ? 1 : 0;
- return {
- rowspan: _row,
- colspan: _col,
- };
- }
- },
-
- getSpecificationName: function (id) {
- let name = "";
- for (let i = 0; i < this.goodInfo.length; i++) {
- if (this.goodInfo[i].id == id) {
- name = this.goodInfo[i].specification_name;
- }
- }
- return name;
- },
- getTypeName: function (id) {
- let name = "";
- for (let i = 0; i < this.goodType.length; i++) {
- if (this.goodType[i].id == id) {
- name = this.goodType[i].type_name;
- }
- }
- return name;
- },
-
- handleBack: function () {
- this.$router.go(-1);
- },
- handleSizeChange(val) {
- this.limit = val;
- this.getlist();
- },
- handleCurrentChange(val) {
- this.page = val;
- this.getlist();
- },
- calculate: function (val) {
- return Math.round(parseFloat(val) * 100) / 100;
- },
-
- startTimeChange: function (val) {
- window.sessionStorage.removeItem("start_time");
- var time = this.getTimestamp(val) - this.getTimestamp(this.end_time);
- if (time > 0) {
- this.$message.error("开始时间不能大于结束时间");
- this.start_time = "";
- } else {
- this.getlist();
- }
- },
- endTimeChange: function (val) {
- window.sessionStorage.removeItem("end_time");
- var time = this.getTimestamp(val) - this.getTimestamp(this.start_time);
- if (time < 0) {
- this.$message.error("结束时间不能小于开始时间");
- this.end_time = "";
- } else {
- if (this.end_time == "") {
- this.showOne = true;
- this.showTwo = false;
- this.showThree = true;
- this.showFour = false;
- this.getlist();
- }
- if (this.end_time != "") {
- this.showOne = false;
- this.showTwo = true;
- this.showThree = false;
- this.showFour = true;
- this.getlist();
- this.getDrugCountList();
- }
- }
- },
- stockInCount: function (row) {
- let total = 0;
- for (let i = 0; i < row.query_drug_warehousing_info.length; i++) {
- total = total + row.query_drug_warehousing_info[i].warehousing_count;
- }
- return total;
- },
- salesReturnCount: function (row) {
- let total = 0;
-
- for (let i = 0; i < row.query_drug_sales_return_info.length; i++) {
- total = total + row.query_drug_sales_return_info[i].count;
- }
- return total;
- },
- stockOutCount: function (row) {
- let total = 0;
-
- for (let i = 0; i < row.query_drug_warehouseout_info.length; i++) {
- total = total + row.query_drug_warehouseout_info[i].count;
- }
- return total;
- },
- cancelStockCount: function (row) {
- let total = 0;
- for (let i = 0; i < row.query_drug_cancel_stock_info.length; i++) {
- total = total + row.query_drug_cancel_stock_info[i].count;
- }
- return total;
- },
- search: function () {
- this.getlist();
- },
- setting: function () {
- this.$refs.dialog.show();
- },
- exportStock() {
- for (let i = 0; i < this.tableList.length; i++) {
- this.tableList[i].index = i + 1;
- this.tableList[i].drug_type_name = this.getDrugType(
- this.tableList[i].drug_type
- );
- this.tableList[i].unit =
- this.tableList[i].dose +
- this.tableList[i].dose_unit +
- "*" +
- this.tableList[i].min_number +
- this.tableList[i].min_unit +
- "/" +
- this.tableList[i].max_unit;
- this.tableList[i].manufacturer_name = this.getManufacturerList(
- this.tableList[i].manufacturer
- );
- this.tableList[i].inCount = this.getWarehoseInfoOne(
- this.tableList[i].drug_warehouse_info,
- this.tableList[i].max_unit,
- this.tableList[i].min_unit,
- this.tableList[i].min_number
- );
- if (this.end_time == 0) {
- this.tableList[i].outCount = this.getWarehouseOutInfo(
- this.tableList[i].drug_warehouse_out,
- this.tableList[i].max_unit,
- this.tableList[i].min_unit,
- this.tableList[i].min_number
- );
- this.tableList[i].overplusCount = this.getOverFlushInfo(
- this.tableList[i].drug_warehouse_info,
- this.tableList[i].max_unit,
- this.tableList[i].min_unit,
- this.tableList[i].min_number
- );
- }
- if (this.end_time != 0) {
- this.tableList[i].outCount =
- this.getOutCount(this.tableList[i].id) +
- this.getAutoCount(this.tableList[i].id);
- this.tableList[i].overplusCount =
- this.getWarehoseInfo(this.tableList[i].drug_warehouse_info) -
- this.getOutCount(this.tableList[i].id) -
- this.getAutoCount(this.tableList[i].id);
- }
- }
- import("@/vendor/Export2Excel").then((excel) => {
- const tHeader = [
- "序号",
- "药品类型",
- "药品名称",
- "规格型号&单位",
- "国家编码",
- "进货单价",
- "厂家",
- "入库数量",
- "出库数量",
- "剩余库存量",
- ];
- const filterVal = [
- "index",
- "drug_type_name",
- "drug_name",
- "unit",
- "medical_insurance_number",
- "last_price",
- "manufacturer_name",
- "inCount",
- "outCount",
- "overplusCount",
- ];
-
- const data = this.formatJson(filterVal, this.tableList);
- excel.export_json_to_excel({
- header: tHeader,
- data,
- filename: "药品查询",
- });
- this.downloadLoading = false;
- });
- },
- formatJson(filterVal, jsonData) {
- return jsonData.map((v) => filterVal.map((j) => v[j]));
- },
- getDictionaryDataConfig(module, filed_name) {
- return getDictionaryDataConfig(module, filed_name);
- },
- getTimestamp(time) {
- // 把时间日期转成时间戳
- return new Date(time).getTime() / 1000;
- },
- changeDrug() {
- this.getlist();
- },
- printOrder() {
- window.sessionStorage.setItem("start_time", this.start_time);
- window.sessionStorage.setItem("end_time", this.end_time);
- this.$router.push({
- name: "drugQueryPrint",
- query: {
- drug_type: this.drug_type,
- keyword: this.keywords,
- start_time: this.start_time,
- end_time: this.end_time,
- page: this.page,
- limit: this.limit,
- },
- });
- },
- getDrugType(id) {
- var name = "";
- for (let i = 0; i < this.drugTypeList.length; i++) {
- if (this.drugTypeList[i].id == id) {
- name = this.drugTypeList[i].name;
- }
- }
-
- return name;
- },
- getManufacturerList(id) {
- var name = "";
- for (let i = 0; i < this.manufacturerList.length; i++) {
- if (id == this.manufacturerList[i].id) {
- name = this.manufacturerList[i].manufacturer_name;
- }
- }
- return name;
- },
- handleDetail(val) {
- console.log("val232332323223323", val);
- var manufacturer_name = "";
- for (let i = 0; i < this.manufacturerList.length; i++) {
- if (val.manufacturer == this.manufacturerList[i].id) {
- manufacturer_name = this.manufacturerList[i].manufacturer_name;
- }
- }
- var unit =
- val.dose +
- val.dose_unit +
- "*" +
- val.min_number +
- val.min_unit +
- "/" +
- val.max_unit;
- var over_plus = this.getOverFlushInfo(
- val.drug_warehouse_info,
- val.max_unit,
- val.min_unit,
- val.min_number
- );
- this.$router.push({
- path:
- "/drugstock/in/drugstockflow?drug_id=" +
- val.id +
- "&manufacturer=" +
- manufacturer_name +
- "&unit=" +
- unit +
- "&min_number=" +
- val.min_number +
- "&max_unit=" +
- val.max_unit +
- "&min_unit=" +
- val.min_unit +
- "&over_plus=" +
- over_plus,
- });
- window.sessionStorage.setItem("start_time", this.start_time);
- window.sessionStorage.setItem("end_time", this.end_time);
- },
- handleBatch(val) {
- console.log("val322332323232", val);
- var manufacturer_name = "";
- for (let i = 0; i < this.manufacturerList.length; i++) {
- if (val.manufacturer == this.manufacturerList[i].id) {
- manufacturer_name = this.manufacturerList[i].manufacturer_name;
- }
- }
- var unit =
- val.dose +
- val.dose_unit +
- "*" +
- val.min_number +
- val.min_unit +
- "/" +
- val.max_unit;
- var over_plus = this.getOverFlushInfo(
- val.drug_warehouse_info,
- val.max_unit,
- val.min_unit,
- val.min_number
- );
-
- window.sessionStorage.setItem("start_time", this.start_time);
- window.sessionStorage.setItem("end_time", this.end_time);
- this.$router.push({
- path:
- "/drugstock/in/drugbatchnumber?drug_id=" +
- val.id +
- "&manufacturer=" +
- manufacturer_name +
- "&unit=" +
- unit +
- "&min_number=" +
- val.min_number +
- "&max_unit=" +
- val.max_unit +
- "&min_unit=" +
- val.min_unit +
- "&over_plus=" +
- over_plus,
- });
- },
- getDrugCountList() {
- var params = {
- keyword: this.keywords,
- start_time: this.start_time,
- end_time: this.end_time,
- };
- console.log("paramsw2ww", params);
- getDrugCountList(params).then((response) => {
- if (response.data.state == 1) {
- var minCount = response.data.data.minCount;
- console.log("minCount", minCount);
- this.minCount = minCount;
- var cancelCountList = response.data.data.cancelCountList;
- this.cancelCountList = cancelCountList;
- var info = response.data.data.info;
- for (let i = 0; i < info.length; i++) {
- if (info[i].count_unit == info[i].max_unit) {
- info[i].count = info[i].count * info[i].min_number;
- }
- }
-
- this.outCountList = response.data.data.outCountList;
- console.log("手动出库", this.outCountList);
- this.auCountList = response.data.data.auCountList;
- console.log("自动出库", this.auCountList);
- this.drugOutList = info;
- }
- });
- },
- getInCount(id) {
- var count = 0;
- for (let i = 0; i < this.countList.length; i++) {
- if (id == this.countList[i].drug_id) {
- count = this.countList[i].count;
- }
- }
- return count;
- },
-
- getOutCount(id) {
- var count = 0;
- for (let i = 0; i < this.outCountList.length; i++) {
- if (id == this.outCountList[i].drug_id) {
- count = this.outCountList[i].count;
- }
- }
- return count;
- },
- getAutoCount(id) {
- var count = 0;
- for (let i = 0; i < this.autoCountList.length; i++) {
- if (id == this.autoCountList[i].drug_id) {
- count = this.autoCountList[i].count;
- }
- }
- return count;
- },
- getMinCount(id) {
- var count = 0;
- for (let i = 0; i < this.minCount.length; i++) {
- if (id == this.minCount[i].drug_id) {
- count = this.minCount[i].count;
- }
- }
- return count;
- },
- getCount(drug_id, min_number, max_unit, min_unit) {
- var total = 0;
- var str = "";
- var min_str = "";
- var arr = [];
- for (let i = 0; i < this.allCountList.length; i++) {
- if (drug_id == this.allCountList[i].drug_id) {
- arr.push(this.allCountList[i]);
- }
- }
- var arrTwo = [];
- for (let i = 0; i < arr.length; i++) {
- if (arr[i].drug_id == 1236) {
- arrTwo.push(arr[i]);
- }
- if (arr[i].count_unit == max_unit) {
- arr[i].count = arr[i].count * min_number;
- }
- if (arr[i].count_unit == min_unit) {
- arr[i].count = arr[i].count;
- }
- total += arr[i].count;
- }
- if (total < min_number) {
- str = "";
- min_str = total + min_unit;
- }
- if (total >= min_number) {
- if (parseInt(total / min_number) != 0) {
- str = parseInt(total / min_number) + max_unit;
- }
- if (total % min_number != 0) {
- min_str = (total % min_number) + min_unit;
- }
- }
-
- return str + min_str;
- },
-
- getCountOne(drug_id) {
- var count = 0;
- for (let i = 0; i < this.drugOutList.length; i++) {
- if (drug_id == this.drugOutList[i].drug_id) {
- count += parseInt(this.drugOutList[i].count);
- }
- }
- return count;
- },
- getCountTwo(drug_id, min_number, max_unit, min_unit) {
- var total_count = 0;
- var out_count = 0;
- var count = 0;
- var str = "";
- var str_min = "";
- total_count = this.getInCount(drug_id) * min_number;
-
- out_count = this.getCountOne(drug_id);
- count = total_count - out_count;
-
- if (parseInt(count / min_number) != 0) {
- str = parseInt(count / min_number) + max_unit;
- }
-
- if (count % min_number != 0) {
- str_min = (count % min_number) + min_unit;
- }
- return str + str_min;
- },
- getCancelCount(id) {
- var count = 0;
- for (let i = 0; i < this.cancelCountList.length; i++) {
- if (id == this.cancelCountList[i].drug_id) {
- count = this.cancelCountList[i].count;
- }
- }
- return count;
- },
- getWarehoseInfo(arr) {
- var total = 0;
- if (arr.length > 0) {
- for (let i = 0; i < arr.length; i++) {
- total += parseInt(arr[i].warehousing_count);
- }
- }
- if (total == 0) {
- total = "";
- }
-
- return total;
- },
-
- getWarehoseInfoOne(arr, max_unit, min_unit, min_number) {
- var total = 0;
- var max_str = "";
- var min_str = "";
- if (arr.length > 0) {
- for (let i = 0; i < arr.length; i++) {
- total += parseInt(arr[i].warehousing_count);
- }
- }
- if (total < min_number) {
- min_str = total + min_unit;
- }
- if (total == 0) {
- min_str = "";
- max_str = "";
- }
- if (total >= min_number) {
- if (parseInt(total / min_number) != 0) {
- max_str = parseInt(total / min_number) + max_unit;
- }
- if (total % min_number != 0) {
- min_str = (total % min_number) + min_unit;
- }
- }
- return max_str + min_str;
- },
-
- getOverFlushInfo(arr, max_unit, min_unit, min_number) {
- var max_str = "";
- var min_str = "";
- var total = 0;
- var newarr = arr;
- if (newarr.length > 0) {
- for (let i = 0; i < newarr.length; i++) {
- total += newarr[i].stock_max_number + newarr[i].stock_min_number;
- }
- }
- if (total < min_number) {
- min_str = total + min_unit;
- }
- if (total == 0) {
- min_str = "";
- max_str = "";
- }
- if (total >= min_number) {
- if (parseInt(total / min_number) != 0) {
- max_str = parseInt(total / min_number) + max_unit;
- }
- if (total % min_number != 0) {
- min_str = (total % min_number) + min_unit;
- }
- }
- return max_str + min_str;
- },
- getWarehouseOutInfo(arr, max_unit, min_unit, min_number) {
- var min_str = "";
- var max_str = "";
- var total = 0;
- if (arr.length > 0) {
- for (let i = 0; i < arr.length; i++) {
- total += parseInt(arr[i].count);
- }
- }
-
- if (total < min_number) {
- min_str = total + min_unit;
- }
- if (total == 0) {
- min_str = "";
- max_str = "";
- }
- if (total >= min_number) {
- if (parseInt(total / min_number) != 0) {
- max_str = parseInt(total / min_number) + max_unit;
- }
- if (total % min_number != 0) {
- min_str = (total % min_number) + min_unit;
- }
- }
- return max_str + min_str;
- },
-
- getDrugOutList(arr, max_unit, min_unit, min_number) {
- var str = "";
- var str_min = "";
- if (arr.length > 0) {
- for (let i = 0; i < arr.length; i++) {
- if (parseInt(arr[i].count / min_number) != 0) {
- str = parseInt(arr[i].count / min_number) + max_unit;
- }
- if (arr[i].count % min_number != 0) {
- str_min = (arr[i].count % min_number) + min_unit;
- }
- }
- }
- return str + str_min;
- },
-
- getDrugChaCount(
- info,
- out_info,
- max_unit,
- min_unit,
- min_number,
- cancel_info
- ) {
- var total_info = 0;
- var total_out = 0;
- var cha_count = 0;
- var cancel_count = 0;
- if (info.length > 0) {
- for (let i = 0; i < info.length; i++) {
- total_info += info[i].warehousing_count * min_number;
- }
- }
- if (out_info.length > 0) {
- for (let j = 0; j < out_info.length; j++) {
- total_out += out_info[j].count;
- }
- }
- if (cancel_info.length > 0) {
- for (let z = 0; z < cancel_info.length; z++) {
- cancel_count += cancel_info[z].count;
- }
- }
- cha_count = total_info - total_out + cancel_count;
- var str = "";
- var str_min = "";
- if (parseInt(cha_count / min_number) != 0) {
- str = parseInt(cha_count / min_number) + max_unit;
- }
- if (cha_count % min_number != 0) {
- str_min = (cha_count % min_number) + min_unit;
- }
- return str + str_min;
- },
- getOutFlush(info, max_unit, min_unit, min_number, cancel_info) {
- var str = "";
- var str_min = "";
- //总库存
- var total = 0;
- var out_count = 0;
- var over_count = 0;
- var cancel_count = 0;
- for (let i = 0; i < info.length; i++) {
- total += info[i].warehousing_count;
- }
-
- for (let j = 0; j < info.length; j++) {
- out_count += info[j].stock_max_number + info[j].stock_min_number;
- }
-
- // for(let z=0;z<cancel_info.length;z++){
- // cancel_count += cancel_info[z].count
- // }
- // over_count = total - out_count + cancel_count
- over_count = total - out_count;
- if (parseInt(over_count / min_number) != 0) {
- str = parseInt(over_count / min_number) + max_unit;
- }
- if (over_count % min_number != 0) {
- str_min = (over_count % min_number) + min_unit;
- }
- return str + str_min;
- },
- getHouseName(id) {
- var storehouse_name = "";
- for (let i = 0; i < this.houseList.length; i++) {
- if (id == this.houseList[i].id) {
- storehouse_name = this.houseList[i].storehouse_name;
- }
- }
- return storehouse_name;
- },
- getWarehoseInfoSeven(arr, max_unit, min_unit, min_number, storehouse_id) {
- var total = 0;
- var max_str = "";
- var min_str = "";
- if (arr.length > 0) {
- for (let i = 0; i < arr.length; i++) {
- if (arr[i].storehouse_id == storehouse_id) {
- total += parseInt(arr[i].warehousing_count);
- }
- }
- }
- if (total < min_number) {
- min_str = total + min_unit;
- }
- if (total == 0) {
- min_str = "";
- max_str = "";
- }
- if (total >= min_number) {
- if (parseInt(total / min_number) != 0) {
- max_str = parseInt(total / min_number) + max_unit;
- }
- if (total % min_number != 0) {
- min_str = (total % min_number) + min_unit;
- }
- }
- return max_str + min_str;
- },
-
- getOverFlushInfoEight(arr, max_unit, min_unit, min_number, storehouse_id) {
- var max_str = "";
- var min_str = "";
- var total = 0;
- var newarr = arr;
- if (newarr.length > 0) {
- for (let i = 0; i < newarr.length; i++) {
- if (newarr[i].storehouse_id == storehouse_id) {
- total += newarr[i].stock_max_number + newarr[i].stock_min_number;
- }
- }
- }
- if (total < min_number) {
- min_str = total + min_unit;
- }
- if (total == 0) {
- min_str = "";
- max_str = "";
- }
- if (total >= min_number) {
- if (parseInt(total / min_number) != 0) {
- max_str = parseInt(total / min_number) + max_unit;
- }
- if (total % min_number != 0) {
- min_str = (total % min_number) + min_unit;
- }
- }
- return max_str + min_str;
- },
- getOutFlushNight(
- info,
- max_unit,
- min_unit,
- min_number,
- cancel_info,
- storehouse_id
- ) {
- var str = "";
- var str_min = "";
- //总库存
- var total = 0;
- var out_count = 0;
- var over_count = 0;
- var cancel_count = 0;
- for (let i = 0; i < info.length; i++) {
- if (info[i].storehouse_id == storehouse_id) {
- total += info[i].warehousing_count;
- }
- }
-
- for (let j = 0; j < info.length; j++) {
- if (info[j].storehouse_id == storehouse_id) {
- out_count += info[j].stock_max_number + info[j].stock_min_number;
- }
- }
-
- // for(let z=0;z<cancel_info.length;z++){
- // cancel_count += cancel_info[z].count
- // }
- // over_count = total - out_count + cancel_count
- over_count = total - out_count;
- if (parseInt(over_count / min_number) != 0) {
- str = parseInt(over_count / min_number) + max_unit;
- }
- if (over_count % min_number != 0) {
- str_min = (over_count % min_number) + min_unit;
- }
- return str + str_min;
- },
- changeStorehouseName() {
- this.getlist();
- },
- changeDrugName() {
- this.getlist();
- },
- // 合并单元格样式
- cellStyle({ row, column, rowIndex, columnIndex }) {
- let arr = [6, 7, 8, 9];
- if (arr.indexOf(columnIndex) > -1) {
- return "spanClass";
- }
- },
- },
- };
- </script>
-
- <style rel="stylesheet/css" lang="scss" scoped>
- .information {
- border: 1px #dcdfe6 solid;
- padding: 30px 20px 30px 20px;
-
- .border {
- border-bottom: 1px #dcdfe6 solid;
- margin: 0px 0 20px 0;
- }
- }
-
- .title {
- background: #409eff;
- height: 44px;
- line-height: 44px;
- padding: 0 0 0 10px;
- color: #fff;
- margin: 0 0 10px 0;
- }
-
- .edit_separater {
- border-top: 1px solid rgb(233, 233, 233);
- margin-top: 15px;
- margin-bottom: 15px;
- }
- </style>
-
- <style>
- .sign-and-weigh-box .sign-and-weigh-box-patients .cell {
- font-size: 12px;
- }
-
- .sign-and-weigh-box .sign-and-weigh-box-patients .current-row > td {
- background: #6fb5fa;
- }
-
- .count {
- color: #bd2c00;
- }
-
- .el-table td,
- .el-table th.is-leaf,
- .el-table--border,
- .el-table--group {
- border-color: #d0d3da;
- }
-
- .el-table--border::after,
- .el-table--group::after,
- .el-table::before {
- background-color: #d0d3da;
- }
-
- /* 合并表格线样式 */
- .spanClass .cell {
- padding: 0 !important;
- }
-
- .spanClass .cell tr {
- display: inline-block;
- width: 100%;
- }
-
- .spanClass .cell tr td {
- padding: 10px 0;
- border-bottom: 1px solid #ebeef5;
- display: block;
- width: 100%;
- }
- .spanClass .cell tr:last-of-type td {
- border-bottom: none;
- }
- </style>
|