<template>
  <div class="app-container">
    <el-form :model="queryParams" ref="queryRef" :inline="true" label-width="90px">
      <el-form-item label="药品名称：" prop="searchKey">
        <el-input
          v-model="queryParams.searchKey"
          placeholder="药品编码/药品名称/名称拼音/供应商名"
          clearable
          style="width: 250px"
          @keyup.enter="handleQuery"
        />
      </el-form-item>
      <!-- <el-form-item label="编码：" prop="medicationDefId">
        <el-input
          v-model="queryParams.medicationDefId"
          placeholder="编码："
          clearable
          style="width: 200px;"
          @keyup.enter="handleQuery"
        />
      </el-form-item> -->
      <!-- <el-form-item label="剩余过期天数：" prop="remainingDays" label-width="110px">
        <el-input
          v-model="queryParams.remainingDays"
          placeholder="查询 ≤ X 天的记录"
          clearable
          style="width: 200px;"
          @keyup.enter="handleQuery"
        />
      </el-form-item> -->

      <el-form-item label="药品类别：" prop="categoryCode">
        <el-select
          v-model="queryParams.categoryCode"
          placeholder="请选择药品类别"
          clearable
          style="width: 150px"
        >
          <el-option
            v-for="categoryCode in item_category_code"
            :key="categoryCode.value"
            :label="categoryCode.label"
            :value="categoryCode.value"
          />
        </el-select>
      </el-form-item>
      <el-form-item label="医保等级：" prop="chrgitmLv">
        <el-select
          v-model="queryParams.chrgitmLv"
          placeholder="请选择医保等级"
          clearable
          style="width: 150px"
        >
          <el-option
            v-for="chrgitmLv_enumText in chrgitmLv_enumTextOptions"
            :key="chrgitmLv_enumText.value"
            :label="chrgitmLv_enumText.info"
            :value="chrgitmLv_enumText.value"
          />
        </el-select>
      </el-form-item>
      <el-form-item label="仓库药房：" prop="locationId">
        <el-select
          v-model="queryParams.locationId"
          placeholder="请选择仓库药房"
          clearable
          style="width: 150px"
        >
          <el-option
            v-for="supplyStatus in locationIdList"
            :key="supplyStatus.value"
            :label="supplyStatus.name"
            :value="supplyStatus.id"
          />
        </el-select>
      </el-form-item>
      <el-form-item label="库存范围：" prop="warehouseScope">
        <el-select
          v-model="queryParams.warehouseScope"
          placeholder="请选择库存范围"
          clearable
          style="width: 150px"
        >
          <el-option
            v-for="supplyStatus in inventory_range"
            :key="supplyStatus.value"
            :label="supplyStatus.label"
            :value="supplyStatus.value"
          />
        </el-select>
      </el-form-item>
    </el-form>

    <el-row :gutter="10" class="mb8">
      <el-col :span="1.5">
        <!-- v-hasPermi="['system:user:import']" -->
        <el-button type="primary" plain icon="Search" @click="handleQuery">查询</el-button>
      </el-col>
      <el-col :span="1.5">
        <!-- v-hasPermi="['system:user:export']" -->
        <el-button type="warning" plain icon="CircleClose" @click="handleClear">重置</el-button>
      </el-col>
    </el-row>

    <el-table
      v-loading="loading"
      :data="purchaseinventoryList"
      @selection-change="handleSelectionChange"
    >
      <el-table-column type="selection" width="50" align="center" />
      <el-table-column
        label="药品类别"
        align="center"
        key="categoryCode_dictText"
        prop="categoryCode_dictText"
        :show-overflow-tooltip="true"
      />
      <el-table-column
        label="药品编码"
        align="center"
        key="busNo"
        prop="busNo"
        width="130"
        :show-overflow-tooltip="true"
      />
      <el-table-column
        label="药品名称"
        align="center"
        key="medicineName"
        prop="medicineName"
        width="160"
        :show-overflow-tooltip="true"
      />
      <el-table-column
        label="规格"
        align="center"
        key="totalVolume"
        prop="totalVolume"
        width="120"
        :show-overflow-tooltip="true"
      />
      <el-table-column
        label="请领数量(本月药房入库数量)"
        align="center"
        key="quantityUnit"
        prop="quantityUnit"
        width="190px"
        :show-overflow-tooltip="true"
      />
      <el-table-column
        label="请领进价"
        align="center"
        key="price"
        prop="price"
        :show-overflow-tooltip="true"
      />
      <el-table-column
        label="请领零售价"
        align="center"
        key="retailPrice"
        prop="retailPrice"
        width="89px"
        :show-overflow-tooltip="true"
      />
      <el-table-column
        label="销售数量"
        align="center"
        key="quantity"
        prop="quantity"
        :show-overflow-tooltip="true"
      />
      <el-table-column
        label="销售进价"
        align="center"
        key="price"
        prop="price"
        :show-overflow-tooltip="true"
      />
      <el-table-column
        label="销售零售价"
        align="center"
        key="retailPrice"
        prop="retailPrice"
        width="89px"
        :show-overflow-tooltip="true"
      />
      <el-table-column
        label="返库数量(退货数量)"
        align="center"
        key="quantity"
        prop="quantity"
        width="140px"
        :show-overflow-tooltip="true"
      />
      <el-table-column
        label="返库进价"
        align="center"
        key="price"
        prop="price"
        :show-overflow-tooltip="true"
      />
      <el-table-column
        label="返库零价"
        align="center"
        key="retailPrice"
        prop="retailPrice"
        :show-overflow-tooltip="true"
      />
      <el-table-column
        label="报损数量"
        align="center"
        key="quantity"
        prop="quantity"
        :show-overflow-tooltip="true"
      />
      <el-table-column
        label="报损进价"
        align="center"
        key="price"
        prop="price"
        :show-overflow-tooltip="true"
      />
      <el-table-column
        label="报损零售价"
        align="center"
        key="retailPrice"
        prop="retailPrice"
        width="89px"
        :show-overflow-tooltip="true"
      />
      <el-table-column
        label="盘点数量"
        align="center"
        key="quantity"
        prop="quantity"
        :show-overflow-tooltip="true"
      />
      <el-table-column
        label="盘点进价"
        align="center"
        key="price"
        prop="price"
        :show-overflow-tooltip="true"
      />
      <el-table-column
        label="本期库存数量"
        align="center"
        key="quantity"
        prop="quantity"
        width="105px"
        :show-overflow-tooltip="true"
      />
      <el-table-column
        label="库存进价合计"
        align="center"
        key="totalPrice"
        prop="totalPrice"
        width="105"
        :show-overflow-tooltip="true"
      />
      <el-table-column
        label="库存零价合计"
        align="center"
        key="totalSalePrice"
        prop="totalSalePrice"
        width="105"
        :show-overflow-tooltip="true"
      />
    </el-table>
    <pagination
      v-show="total > 0"
      :total="total"
      v-model:page="queryParams.pageNo"
      v-model:limit="queryParams.pageSize"
      @pagination="getList"
    />
  </div>
</template>

<script setup name="settlementDoc">
import { getproductReturnPage, getInit, getPharmacyCabinetList } from './statisticalManagent';

const { proxy } = getCurrentInstance();

const {
  item_category_code,
  inventory_range,
} = proxy.useDict(
  "item_category_code",
  "inventory_range",
);

const purchaseinventoryList = ref([]);

const loading = ref(true);

const ids = ref([]);
const single = ref(true);
const multiple = ref(true);
const total = ref(0);
const supplyTypeOptions = ref(undefined);
const supplyStatusOptions = ref(undefined);
const chrgitmLv_enumTextOptions = ref([]);
const locationIdList = ref([]);

const data = reactive({
  form: {},
  queryParams: {
    pageNo: 1,
    pageSize: 10,
    searchKey: undefined,
    remainingDays: undefined,
    // hospital:undefined,
    categoryCode: undefined,
    chrgitmLv: undefined,
    warehouseScope: undefined,
    locationId: undefined,
    // occurrenceTimeSTime:undefined,
    // occurrenceTimeETime:undefined,
  },
  rules: {},
});

const { queryParams, form, rules } = toRefs(data);

function getPharmacyCabinetLists() {
  getPharmacyCabinetList().then((response) => {
    locationIdList.value = response.data;
  });
  getInit().then((response) => {
    chrgitmLv_enumTextOptions.value = response.data.chrgitmLvOptions;
  });
}
/** 查询调拨管理项目列表 */
function getList() {
  loading.value = true;
  getproductReturnPage(queryParams.value).then((res) => {
    loading.value = false;
    purchaseinventoryList.value = res.data.records;

    if (purchaseinventoryList.value && purchaseinventoryList.value.length > 0) {
      purchaseinventoryList.value.map((k, index) => {
        k.inventoryStatusEnum_enumText =
          k.inventoryStatusEnum == 2 ? '未停供' : k.inventoryStatusEnum == 3 ? '已停供' : '';
        k.quantityUnit = k.quantity / k.partPercent;
        const integerPart1 = Math.floor(k.quantityUnit); // 获取整数部分
        const decimalPart1 = k.quantityUnit - integerPart1; // 获取小数部分

        if (decimalPart1) {
          k.quantityUnit =
            integerPart1 +
            k.unitCode_dictText +
            (decimalPart1 * k.partPercent).toFixed(0) +
            k.minUnitCode_dictText;
        }
        k.price = k.price ? k.price.toFixed(2) : 0;
        k.retailPrice = k.retailPrice ? k.retailPrice.toFixed(2) : 0;
        k.totalPrice = k.price * (Number(k.quantity) / k.partPercent);
        k.totalPrice = k.totalPrice ? k.totalPrice.toFixed(2) : 0;
        k.totalSalePrice = k.retailPrice * (Number(k.quantity) / k.partPercent);
        k.totalSalePrice = k.totalSalePrice ? k.totalSalePrice.toFixed(2) : 0;
      });
    }
    total.value = res.data.total;
  });
}

/** 搜索按钮操作 */
function handleQuery() {
  //   queryParams.value.occurrenceTimeSTime =
  //     occurrenceTime.value && occurrenceTime.value.length == 2
  //       ? occurrenceTime.value[0] + " 00:00:00"
  //       : "";
  //   queryParams.value.occurrenceTimeETime =
  //     occurrenceTime.value && occurrenceTime.value.length == 2
  //       ? occurrenceTime.value[1] + " 23:59:59"
  //       : "";
  queryParams.value.pageNo = 1;
  getList();
}

/** 清空条件按钮操作 */
function handleClear() {
  // 清空查询条件
  proxy.resetForm('queryRef');
  getList();
}

/** 选择条数  */
function handleSelectionChange(selection) {
  ids.value = selection.map((item) => item.id);
  single.value = selection.length != 1;
  multiple.value = !selection.length;
}

getList();
getPharmacyCabinetLists();
</script>
<style scoped>
.custom-tree-node {
  display: flex;
  align-items: center;
}
</style>
