فهرست منبع

Merge branch 'release/PDA-1.2.2'

cc12458 7 ماه پیش
والد
کامیت
9fe48e73b5

+ 66 - 0
src/api/drugs/storage.js

@@ -0,0 +1,66 @@
+import request from '@/utils/request';
+
+// 查询药斗药品信息列表
+export function listMedicineStorageCupboard(query) {
+  const {pageNum, pageSize, ...data} = query;
+  return request({
+    url: `/yfc-admin/web/bucket/pageList`,
+    method: 'post',
+    data,
+    params: {pageNum, pageSize},
+  });
+}
+
+// 编辑药斗药品信息
+export function editMedicineStorageCupboard(model) {
+  if (typeof model.createTime === 'string') model.createTime = model.createTime.replace(' ', 'T');
+  if (typeof model.updateTime === 'string') model.updateTime = model.updateTime.replace(' ', 'T');
+  return request({
+    url: model.id ? `/yfc-admin/web/bucket/update` : `/yfc-admin/web/bucket/add`,
+    method: 'post',
+    data: model,
+  });
+}
+
+// 编辑药斗补货复核
+export function editMedicineStorageIntoRecheck(model) {
+  if (!Array.isArray(model)) model = model ? [model] : [];
+  return request({
+    url: `/yfc-admin/web/restock/doReview`,
+    method: 'post',
+    data: model.map(item => item.id),
+  });
+}
+
+// 查询药斗补货复核列表
+export function listMedicineStorageIntoRecheck(query) {
+  const {pageNum, pageSize, ...data} = query;
+  return request({
+    url: `/yfc-admin/web/restock/review-list`,
+    method: 'post',
+    data,
+    params: {pageNum, pageSize},
+  });
+}
+
+// 查询药斗补货记录列表
+export function listMedicineStorageIntoRecord(query) {
+  const {pageNum, pageSize, ...data} = query;
+  return request({
+    url: `/yfc-admin/web/restock/restock-list`,
+    method: 'post',
+    data,
+    params: {pageNum, pageSize},
+  });
+}
+
+// 查询药斗出货记录列表
+export function listMedicineStorageOutRecord(query) {
+  const {pageNum, pageSize, ...data} = query;
+  return request({
+    url: `/yfc-admin/web/outbound/page-list`,
+    method: 'post',
+    data,
+    params: {pageNum, pageSize},
+  });
+}

+ 2 - 2
src/components/DictTag/index.vue

@@ -2,7 +2,7 @@
   <div>
   <div>
     <template v-for="(item, index) in options">
     <template v-for="(item, index) in options">
       <template
       <template
-        v-if="values.includes(item.dictValue) || item.id==value"
+        v-if="values.includes(item.dictValue) || (item.id==value && value != null)"
       >
       >
         <span
         <span
           v-if="item.listClass == 'default' || item.listClass == '' || !item.listClass"
           v-if="item.listClass == 'default' || item.listClass == '' || !item.listClass"
@@ -51,4 +51,4 @@ export default {
 .el-tag + .el-tag {
 .el-tag + .el-tag {
   margin-left: 10px;
   margin-left: 10px;
 }
 }
-</style>
+</style>

+ 212 - 0
src/views/drugs/storage/cupboard.vue

@@ -0,0 +1,212 @@
+<script>
+import {editMedicineStorageCupboard, listMedicineStorageCupboard} from '@/api/drugs/storage';
+
+/**
+ * 药斗药品信息
+ */
+export default {
+  name: 'MedicineStorageCupboard',
+  components: {},
+  data() {
+    return {
+      chinesMedicineTypeArr: [],
+      // 查询参数
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+
+        drugType: void 0,
+        param: void 0,
+      },
+      loading: false,
+      dataset: [],
+      total: 0,
+      // 编辑参数
+      editTitle: '',
+      editOpen: false,
+      editModel: {
+        locatorNum: void 0,
+        capacity: void 0,
+      },
+      editRules: {
+        capacity: [{required: true, message: '承载量不能为空', trigger: 'blur'}],
+        locatorNum: [{required: true, message: '药斗号不能为空', trigger: 'blur'}],
+      },
+      editError: '',
+      submitting: false,
+
+      // 选择的
+      selected: [],
+    };
+  },
+  created() {
+    this.getDicts('chinese_medicine_type').then((res) => {this.chinesMedicineTypeArr = res.data;});
+    this.resetQuery();
+  },
+  methods: {
+    async getList() {
+      this.loading = true;
+      try {
+        const res = await listMedicineStorageCupboard(this.queryParams);
+        this.dataset = res.rows;
+        this.total = res.total;
+      } catch (e) {}
+      this.loading = false;
+    },
+    /** 搜索按钮操作 */
+    handleQuery() {
+      this.queryParams.pageNum = 1;
+      this.getList();
+    },
+    /** 重置按钮操作 */
+    resetQuery() {
+      this.resetForm('queryForm');
+      this.queryParams.pharmacyId = window.localStorage.getItem("pharmacyId");
+      this.handleQuery();
+    },
+    handleSelectionChange(selection) {
+      this.selected = [...selection];
+    },
+
+    async handleEdit(model) {
+      this.editModel = Object.assign({
+        locatorNum: void 0,
+        capacity: void 0,
+      }, model);
+
+      this.editTitle = model.drugsName || `设置`;
+      this.editOpen = true;
+      this.editError = '';
+      this.$nextTick(() => {
+        this.$refs['editForm'].clearValidate();
+      });
+    },
+    async handleEditSubmit() {
+      this.editError = '';
+      const valid = await this.$refs['editForm'].validate().then(() => true, (err) => {
+        this.$message.warning({showClose: true, message: `请补充完整表单`});
+        return false;
+      });
+      if (!valid) return;
+
+      this.submitting = true;
+      try {
+        await editMedicineStorageCupboard(this.editModel);
+        this.$message.success('保存成功');
+        this.editOpen = false;
+        await this.getList();
+      } catch (e) {
+        this.editError = e.message;
+      }
+      this.submitting = false;
+    },
+  },
+};
+</script>
+
+<template>
+  <div class="app-container">
+    <el-row :gutter="24">
+      <el-col :span="24" :xs="24">
+        <el-form ref="queryForm" label-width="68px" :inline="true" :model="queryParams">
+          <div class="query-box">
+            <div class="query-box__left">
+              <el-form-item label="快捷查询" prop="param">
+                <el-input style="width: 240px" placeholder="请输入药品名称、药斗号" clearable size="small"
+                          v-model="queryParams.param" @keyup.enter.native="handleQuery"/>
+              </el-form-item>
+              <el-form-item label="" prop="drugType">
+                <el-select v-model="queryParams.drugType" placeholder="中药类型" filterable clearable>
+                  <el-option :label="item.dictLabel" :value="item.dictValue" v-for="item in chinesMedicineTypeArr"
+                             :key="item.dictCode"></el-option>
+                </el-select>
+              </el-form-item>
+              <el-form-item>
+                <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
+                <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
+              </el-form-item>
+            </div>
+          </div>
+        </el-form>
+
+        <el-table v-loading="loading" :data="dataset" @selection-change="handleSelectionChange" border>
+          <!--<el-table-column type="selection" width="50" align="center"/>-->
+          <el-table-column type="index" label="序号" align="center" width="55"/>
+          <el-table-column label="药品名称" align="center" prop="drugsName"/>
+          <el-table-column label="规格" align="center" prop="specsName"/>
+          <el-table-column label="产地" align="center" prop="placeName" :show-overflow-tooltip="true"/>
+          <el-table-column label="单位" align="center" prop="unit"/>
+          <el-table-column label="中药类型" align="center" prop="drugType" :show-overflow-tooltip="true">
+            <template slot-scope="scope">
+              <dict-tag :options="chinesMedicineTypeArr" :value="scope.row.drugType"/>
+            </template>
+          </el-table-column>
+          <el-table-column label="供货商" align="center" prop="supplierName" :show-overflow-tooltip="true"/>
+          <el-table-column label="药斗号" align="center" prop="locatorNum"/>
+          <el-table-column label="承载量" align="center" prop="capacity"/>
+          <el-table-column label="库存量" align="center" prop="stock"/>
+          <el-table-column label="修改人" align="center" prop="updateBy"/>
+          <el-table-column label="修改时间" align="center" prop="updateTime" :show-overflow-tooltip="true"/>
+          <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
+            <template slot-scope="scope">
+              <el-button type="primary" style="width: 40px" size="mini"
+                         @click="handleEdit(scope.row)"
+                         v-has-permi="['drugs-storage:cupboard:edit']"
+              >设置
+              </el-button>
+            </template>
+          </el-table-column>
+        </el-table>
+
+        <pagination
+          v-show="total > 0" :total="total"
+          :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize"
+          @pagination="getList"
+        />
+      </el-col>
+    </el-row>
+    <el-dialog class="edit-dialog-wrapper" :title="editTitle" :visible.sync="editOpen" width="600px" append-to-body>
+      <el-form ref="editForm" :model="editModel" :rules="editRules" label-width="100px" @submit="handleEditSubmit()">
+        <el-form-item label="承载量" prop="capacity">
+          <el-input v-model.number="editModel.capacity" placeholder="请输入承载量"/>
+        </el-form-item>
+        <el-form-item label="药斗号" prop="locatorNum">
+          <el-input v-model="editModel.locatorNum" placeholder="请输入药斗号" maxlength="30"/>
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <div style="display: flex;justify-content: space-between;align-items: center;">
+          <div style="color: #ff4949;">{{ editError }}</div>
+          <div>
+            <el-button type="primary" :loading="submitting" @click="handleEditSubmit()">保 存</el-button>
+            <el-button :disabled="submitting" @click="editOpen = false;">取 消</el-button>
+          </div>
+        </div>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<style scoped lang="scss">
+.edit-dialog-wrapper {
+  ::v-deep {
+    .el-select {
+      width: 100%;
+    }
+
+    .el-input-group {
+      border-top-left-radius: 8px;
+      border-bottom-left-radius: 8px;
+
+      .el-input__inner {
+        border-radius: inherit;
+      }
+
+      .el-input-group__append {
+        border-top-right-radius: 8px;
+        border-bottom-right-radius: 8px;
+      }
+    }
+  }
+}
+</style>

+ 198 - 0
src/views/drugs/storage/into-recheck.vue

@@ -0,0 +1,198 @@
+<script>
+import dayjs from 'dayjs';
+import {editMedicineStorageIntoRecheck, listMedicineStorageIntoRecheck} from '@/api/drugs/storage';
+import {listSupplier} from '@/api/pharmacy/supplier';
+
+/**
+ * 药斗补货复核
+ */
+export default {
+  name: 'MedicineStorageIntoRecheck',
+  components: {},
+  data() {
+    return {
+      supplierArr: [],
+      // 查询参数
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+
+        date: [],
+        supplierId: void 0,
+        supplierName: void 0,
+        param: void 0,
+      },
+      loading: false,
+      dataset: [],
+      total: 0,
+
+      // 选择的
+      selected: [],
+    };
+  },
+  created() {
+    listSupplier().then((res) => { this.supplierArr = res.rows; });
+    this.resetQuery();
+  },
+  methods: {
+    getQueryParams() {
+      const {date, ...params} = this.queryParams;
+      if (date && date.length) {
+        params.startTime = date[0];
+        params.endTime = date[1];
+      } else {
+        params.startTime = '';
+        params.endTime = '';
+      }
+      return params;
+    },
+    async getList() {
+      this.loading = true;
+      try {
+        const res = await listMedicineStorageIntoRecheck(this.getQueryParams());
+        this.dataset = res.rows;
+        this.total = res.total;
+      } catch (e) {}
+      this.loading = false;
+    },
+    /** 搜索按钮操作 */
+    handleQuery() {
+      this.queryParams.pageNum = 1;
+      this.getList();
+    },
+    /** 重置按钮操作 */
+    resetQuery() {
+      this.resetForm('queryForm');
+      const now = dayjs();
+      this.queryParams.date = [now.startOf('d').format('YYYY-MM-DD HH:mm:ss'), now.endOf('d').format('YYYY-MM-DD HH:mm:ss')];
+      this.queryParams.pharmacyId = window.localStorage.getItem("pharmacyId");
+      this.handleQuery();
+    },
+    handleSelectionChange(selection) {
+      this.selected = [...selection];
+    },
+
+    async handleRecheck(model) {
+      const selected = model ? [model] : this.selected;
+      this.$confirm(`是否确定${selected.length > 1 ? '一键' : ''}复核?`, '提示', {
+        type: 'warning',
+        confirmButtonText: '复核',
+        cancelButtonText: '取消',
+        beforeClose: (action, instance, done) => {
+          if (action === 'confirm') {
+            instance.confirmButtonLoading = true;
+            instance.confirmButtonText = '复核中...';
+            editMedicineStorageIntoRecheck(selected)
+              .then(() => {
+                this.$message.success(`复核成功`);
+                instance.confirmButtonLoading = false;
+                this.getList();
+                done();
+              })
+              .catch((err) => {
+                instance.confirmButtonText = '复核';
+                instance.confirmButtonLoading = false;
+              });
+          } else {
+            done();
+          }
+        }
+      });
+    },
+  },
+};
+</script>
+
+<template>
+  <div class="app-container">
+    <el-row :gutter="24">
+      <el-col :span="24" :xs="24">
+        <el-form ref="queryForm" label-width="68px" :inline="true" :model="queryParams">
+          <div class="query-box">
+            <div class="query-box__left">
+              <el-form-item label="" prop="date">
+                <el-date-picker v-model="queryParams.date" size="mini"
+                                type="datetimerange" value-format="yyyy-MM-dd HH:mm:ss"
+                                range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期"
+                />
+              </el-form-item>
+              <el-form-item label="" prop="supplierName">
+                <!--<el-input placeholder="请输入供货商" clearable size="small"
+                          v-model="queryParams.supplierName" @keyup.enter.native="handleQuery"/>-->
+                <el-select v-model="queryParams.supplierId" placeholder="供货商" filterable clearable>
+                  <el-option v-for="item in supplierArr" :key="item.id" :label="item.name" :value="item.id"/>
+                </el-select>
+              </el-form-item>
+              <el-form-item label="快捷查询" prop="param">
+                <el-input style="width: 240px" placeholder="请输入药品名称、药斗号" clearable size="small"
+                          v-model="queryParams.param" @keyup.enter.native="handleQuery"/>
+              </el-form-item>
+              <el-form-item>
+                <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
+                <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
+                <el-button size="mini" :disabled="selected.length === 0"
+                           @click="handleRecheck()"
+                           v-has-permi="['drugs-storage:into:recheck']"
+                >一键复核
+                </el-button>
+              </el-form-item>
+            </div>
+          </div>
+        </el-form>
+
+        <el-table v-loading="loading" :data="dataset" @selection-change="handleSelectionChange" border>
+          <el-table-column type="selection" width="50" align="center"/>
+          <el-table-column type="index" label="序号" align="center" width="55"/>
+          <el-table-column label="补货申请时间" align="center" prop="applyDate" :show-overflow-tooltip="true"/>
+          <el-table-column label="药品名称" align="center" prop="drugsName"/>
+          <el-table-column label="申请药斗" align="center" prop="locatorNum"/>
+          <el-table-column label="申请数量" align="center" prop="stock"/>
+          <el-table-column label="药品编码" align="center" prop="drugsCode"/>
+          <el-table-column label="规格" align="center" prop="specsName"/>
+          <el-table-column label="供货商" align="center" prop="supplierName" :show-overflow-tooltip="true"/>
+          <el-table-column label="批号" align="center" prop="approvalCode"/>
+          <el-table-column label="生产日期" align="center" prop="produceDate"/>
+          <el-table-column label="申请人" align="center" prop="applyUser"/>
+          <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
+            <template slot-scope="scope">
+              <el-button type="primary" style="width: 40px" size="mini"
+                         @click="handleRecheck(scope.row)"
+                         v-has-permi="['drugs-storage:into:recheck']"
+              >复核
+              </el-button>
+            </template>
+          </el-table-column>
+        </el-table>
+
+        <pagination v-show="total > 0" :total="total"
+                    :page.sync="queryParams.pageNum"
+                    :limit.sync="queryParams.pageSize"
+                    @pagination="getList"/>
+      </el-col>
+    </el-row>
+  </div>
+</template>
+
+<style scoped lang="scss">
+.edit-dialog-wrapper {
+  ::v-deep {
+    .el-select {
+      width: 100%;
+    }
+
+    .el-input-group {
+      border-top-left-radius: 8px;
+      border-bottom-left-radius: 8px;
+
+      .el-input__inner {
+        border-radius: inherit;
+      }
+
+      .el-input-group__append {
+        border-top-right-radius: 8px;
+        border-bottom-right-radius: 8px;
+      }
+    }
+  }
+}
+</style>

+ 158 - 0
src/views/drugs/storage/into-record.vue

@@ -0,0 +1,158 @@
+<script>
+import dayjs from 'dayjs';
+import {listMedicineStorageIntoRecord} from '@/api/drugs/storage';
+import {listSupplier} from '@/api/pharmacy/supplier';
+
+/**
+ * 药斗补货记录
+ */
+export default {
+  name: 'MedicineStorageIntoRecord',
+  components: {},
+  data() {
+    return {
+      supplierArr: [],
+      // 查询参数
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+
+        date: [],
+        supplierId: void 0,
+        supplierName: void 0,
+        param: void 0,
+      },
+      loading: false,
+      dataset: [],
+      total: 0,
+
+      // 选择的
+      selected: [],
+    };
+  },
+  created() {
+    listSupplier().then((res) => { this.supplierArr = res.rows; });
+    this.resetQuery();
+  },
+  methods: {
+    getQueryParams() {
+      const {date, ...params} = this.queryParams;
+      if (date && date.length) {
+        params.startTime = date[0];
+        params.endTime = date[1];
+      } else {
+        params.startTime = '';
+        params.endTime = '';
+      }
+      return params;
+    },
+    async getList() {
+      this.loading = true;
+      try {
+        const res = await listMedicineStorageIntoRecord(this.getQueryParams());
+        this.dataset = res.rows;
+        this.total = res.total;
+      } catch (e) {}
+      this.loading = false;
+    },
+    /** 搜索按钮操作 */
+    handleQuery() {
+      this.queryParams.pageNum = 1;
+      this.getList();
+    },
+    /** 重置按钮操作 */
+    resetQuery() {
+      this.resetForm('queryForm');
+      const now = dayjs();
+      this.queryParams.date = [now.startOf('d').format('YYYY-MM-DD HH:mm:ss'), now.endOf('d').format('YYYY-MM-DD HH:mm:ss')];
+      this.queryParams.pharmacyId = window.localStorage.getItem("pharmacyId");
+      this.handleQuery();
+    },
+    handleSelectionChange(selection) {
+      this.selected = [...selection];
+    },
+  },
+};
+</script>
+
+<template>
+  <div class="app-container">
+    <el-row :gutter="24">
+      <el-col :span="24" :xs="24">
+        <el-form ref="queryForm" label-width="68px" :inline="true" :model="queryParams">
+          <div class="query-box">
+            <div class="query-box__left">
+              <el-form-item label="" prop="date">
+                <el-date-picker v-model="queryParams.date" size="mini"
+                                type="datetimerange" value-format="yyyy-MM-dd HH:mm:ss"
+                                range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期"
+                />
+              </el-form-item>
+              <el-form-item label="" prop="supplierName">
+                <!--<el-input placeholder="请输入供货商" clearable size="small"
+                          v-model="queryParams.supplierName" @keyup.enter.native="handleQuery"/>-->
+                <el-select v-model="queryParams.supplierId" placeholder="供货商" filterable clearable>
+                  <el-option v-for="item in supplierArr" :key="item.id" :label="item.name" :value="item.id"/>
+                </el-select>
+              </el-form-item>
+              <el-form-item label="快捷查询" prop="param">
+                <el-input style="width: 240px" placeholder="请输入药品名称、药斗号" clearable size="small"
+                          v-model="queryParams.param" @keyup.enter.native="handleQuery"/>
+              </el-form-item>
+              <el-form-item>
+                <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
+                <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
+              </el-form-item>
+            </div>
+          </div>
+        </el-form>
+
+        <el-table v-loading="loading" :data="dataset" @selection-change="handleSelectionChange" border>
+          <!--<el-table-column type="selection" width="50" align="center"/>-->
+          <el-table-column type="index" label="序号" align="center" width="55"/>
+          <el-table-column label="补货申请时间" align="center" prop="applyDate" :show-overflow-tooltip="true"/>
+          <el-table-column label="补货复核时间" align="center" prop="reviewDate" :show-overflow-tooltip="true"/>
+          <el-table-column label="药品名称" align="center" prop="drugsName"/>
+          <el-table-column label="药斗" align="center" prop="locatorNum"/>
+          <el-table-column label="补货量" align="center" prop="stock"/>
+          <el-table-column label="药品编码" align="center" prop="drugsCode"/>
+          <el-table-column label="规格" align="center" prop="specsName"/>
+          <el-table-column label="供货商" align="center" prop="supplierName" :show-overflow-tooltip="true"/>
+          <el-table-column label="批号" align="center" prop="approvalCode"/>
+          <el-table-column label="生产日期" align="center" prop="produceDate"/>
+          <el-table-column label="补货申请人" align="center" prop="applyUser"/>
+          <el-table-column label="补货复核人" align="center" prop="reviewUser"/>
+        </el-table>
+
+        <pagination v-show="total > 0" :total="total"
+                    :page.sync="queryParams.pageNum"
+                    :limit.sync="queryParams.pageSize"
+                    @pagination="getList"/>
+      </el-col>
+    </el-row>
+  </div>
+</template>
+
+<style scoped lang="scss">
+.edit-dialog-wrapper {
+  ::v-deep {
+    .el-select {
+      width: 100%;
+    }
+
+    .el-input-group {
+      border-top-left-radius: 8px;
+      border-bottom-left-radius: 8px;
+
+      .el-input__inner {
+        border-radius: inherit;
+      }
+
+      .el-input-group__append {
+        border-top-right-radius: 8px;
+        border-bottom-right-radius: 8px;
+      }
+    }
+  }
+}
+</style>

+ 156 - 0
src/views/drugs/storage/out-record.vue

@@ -0,0 +1,156 @@
+<script>
+import dayjs from 'dayjs';
+import {listMedicineStorageOutRecord} from '@/api/drugs/storage';
+import {listSupplier} from '@/api/pharmacy/supplier';
+
+/**
+ * 药斗出货记录
+ */
+export default {
+  name: 'MedicineStorageOutRecord',
+  components: {},
+  data() {
+    return {
+      supplierArr: [],
+      // 查询参数
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+
+        date: [],
+        supplierId: void 0,
+        supplierName: void 0,
+        param: void 0,
+      },
+      loading: false,
+      dataset: [],
+      total: 0,
+
+      // 选择的
+      selected: [],
+    };
+  },
+  created() {
+    listSupplier().then((res) => { this.supplierArr = res.rows; });
+    this.resetQuery();
+  },
+  methods: {
+    getQueryParams() {
+      const {date, ...params} = this.queryParams;
+      if (date && date.length) {
+        params.startTime = date[0];
+        params.endTime = date[1];
+      } else {
+        params.startTime = '';
+        params.endTime = '';
+      }
+      return params;
+    },
+    async getList() {
+      this.loading = true;
+      try {
+        const res = await listMedicineStorageOutRecord(this.getQueryParams());
+        this.dataset = res.rows;
+        this.total = res.total;
+      } catch (e) {}
+      this.loading = false;
+    },
+    /** 搜索按钮操作 */
+    handleQuery() {
+      this.queryParams.pageNum = 1;
+      this.getList();
+    },
+    /** 重置按钮操作 */
+    resetQuery() {
+      this.resetForm('queryForm');
+      const now = dayjs();
+      this.queryParams.date = [now.startOf('d').format('YYYY-MM-DD HH:mm:ss'), now.endOf('d').format('YYYY-MM-DD HH:mm:ss')];
+      this.queryParams.pharmacyId = window.localStorage.getItem("pharmacyId");
+      this.handleQuery();
+    },
+    handleSelectionChange(selection) {
+      this.selected = [...selection];
+    },
+  },
+};
+</script>
+
+<template>
+  <div class="app-container">
+    <el-row :gutter="24">
+      <el-col :span="24" :xs="24">
+        <el-form ref="queryForm" label-width="68px" :inline="true" :model="queryParams">
+          <div class="query-box">
+            <div class="query-box__left">
+              <el-form-item label="" prop="date">
+                <el-date-picker v-model="queryParams.date" size="mini"
+                                type="datetimerange" value-format="yyyy-MM-dd HH:mm:ss"
+                                range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期"
+                />
+              </el-form-item>
+              <el-form-item label="" prop="supplierName">
+                <!--<el-input placeholder="请输入供货商" clearable size="small"
+                          v-model="queryParams.supplierName" @keyup.enter.native="handleQuery"/>-->
+                <el-select v-model="queryParams.supplierId" placeholder="供货商" filterable clearable>
+                  <el-option v-for="item in supplierArr" :key="item.id" :label="item.name" :value="item.id"/>
+                </el-select>
+              </el-form-item>
+              <el-form-item label="快捷查询" prop="param">
+                <el-input style="width: 240px" placeholder="请输入药品名称、药斗号" clearable size="small"
+                          v-model="queryParams.param" @keyup.enter.native="handleQuery"/>
+              </el-form-item>
+              <el-form-item>
+                <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
+                <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
+              </el-form-item>
+            </div>
+          </div>
+        </el-form>
+
+        <el-table v-loading="loading" :data="dataset" @selection-change="handleSelectionChange" border>
+          <!--<el-table-column type="selection" width="50" align="center"/>-->
+          <el-table-column type="index" label="序号" align="center" width="55"/>
+          <el-table-column label="出斗时间" align="center" prop="outboundDate" :show-overflow-tooltip="true"/>
+          <el-table-column label="药品名称" align="center" prop="drugsName"/>
+          <el-table-column label="药斗" align="center" prop="locatorNum"/>
+          <el-table-column label="出斗量" align="center" prop="stock"/>
+          <el-table-column label="药品编码" align="center" prop="drugsCode"/>
+          <el-table-column label="规格" align="center" prop="specsName"/>
+          <el-table-column label="供货商" align="center" prop="supplierName" :show-overflow-tooltip="true"/>
+          <el-table-column label="批号" align="center" prop="approvalCode"/>
+          <el-table-column label="生产日期" align="center" prop="produceDate"/>
+          <el-table-column label="操作人" align="center" prop="createUser"/>
+        </el-table>
+
+        <pagination v-show="total > 0" :total="total"
+                    :page.sync="queryParams.pageNum"
+                    :limit.sync="queryParams.pageSize"
+                    @pagination="getList"/>
+      </el-col>
+    </el-row>
+  </div>
+</template>
+
+<style scoped lang="scss">
+.edit-dialog-wrapper {
+  ::v-deep {
+    .el-select {
+      width: 100%;
+    }
+
+    .el-input-group {
+      border-top-left-radius: 8px;
+      border-bottom-left-radius: 8px;
+
+      .el-input__inner {
+        border-radius: inherit;
+      }
+
+      .el-input-group__append {
+        border-top-right-radius: 8px;
+        border-bottom-right-radius: 8px;
+      }
+    }
+  }
+}
+</style>

+ 2 - 1
src/views/reportManagement/blendReport/index.vue

@@ -17,7 +17,8 @@
         v-model="form.date"
         v-model="form.date"
         size="mini"
         size="mini"
         type="datetimerange"
         type="datetimerange"
-        value-format="yyyy-MM-dd hh:mm:ss"
+        value-format="yyyy-MM-dd HH:mm:ss"
+        :default-time="['00:00:00', '23:59:59']"
         range-separator="至"
         range-separator="至"
         start-placeholder="开始日期"
         start-placeholder="开始日期"
         end-placeholder="结束日期"
         end-placeholder="结束日期"

+ 16 - 2
src/views/reportManagement/expenditure/index.vue

@@ -3,15 +3,18 @@
   	<div class="tools">
   	<div class="tools">
   		<span class="text-df">结转日期:</span>
   		<span class="text-df">结转日期:</span>
 	  	<el-date-picker
 	  	<el-date-picker
+        :clearable="false"
 	      v-model="date"
 	      v-model="date"
 	      size="mini"
 	      size="mini"
 	      type="datetimerange"
 	      type="datetimerange"
-	      value-format="yyyy-MM-dd hh:mm:ss"
+        value-format="yyyy-MM-dd HH:mm:ss"
+        :default-time="['00:00:00', '23:59:59']"
 	      range-separator="至"
 	      range-separator="至"
 	      start-placeholder="开始日期"
 	      start-placeholder="开始日期"
 	      end-placeholder="结束日期">
 	      end-placeholder="结束日期">
 	    </el-date-picker>
 	    </el-date-picker>
-	    <el-button size="mini" type="primary" @click="search">搜索</el-button>
+      <el-button icon="el-icon-search" size="mini" type="primary" @click="search()">搜索</el-button>
+      <el-button icon="el-icon-refresh" size="mini" @click="clear()">清空</el-button>
 	    <el-button size="mini" type="primary" @click="exportExcel">导出</el-button>
 	    <el-button size="mini" type="primary" @click="exportExcel">导出</el-button>
       <!--<el-button size="mini" type="primary" @click="print">打印</el-button>-->
       <!--<el-button size="mini" type="primary" @click="print">打印</el-button>-->
 	  	</div>
 	  	</div>
@@ -50,6 +53,7 @@
 
 
 <script>
 <script>
 import { getReport, reportExport } from '@/api/inventory/inventory'
 import { getReport, reportExport } from '@/api/inventory/inventory'
+import dayjs                       from 'dayjs'
 
 
 export default {
 export default {
   data() {
   data() {
@@ -61,6 +65,9 @@ export default {
     	tableData: []
     	tableData: []
     }
     }
   },
   },
+  mounted() {
+    this.clear()
+  },
   methods: {
   methods: {
     tableRowClassName({row, rowIndex}) {
     tableRowClassName({row, rowIndex}) {
       if (rowIndex === this.tableData.length - 1) {
       if (rowIndex === this.tableData.length - 1) {
@@ -90,6 +97,13 @@ export default {
   	search () {
   	search () {
       this.page = 1
       this.page = 1
       this.getDataList()
       this.getDataList()
+    },
+    clear() {
+      this.date = [
+        dayjs().startOf('month').format('YYYY-MM-DD HH:mm:ss'),
+        dayjs().endOf('day').format('YYYY-MM-DD HH:mm:ss')
+      ];
+      this.search();
     },
     },
   	exportExcel () {
   	exportExcel () {
       if (!this.date || !this.date.length) {
       if (!this.date || !this.date.length) {