Browse Source

药品申购订金功能

lighter 5 months ago
parent
commit
de5c6dad7f
2 changed files with 156 additions and 0 deletions
  1. 25 0
      src/api/outpatient/drug-purchase.js
  2. 131 0
      src/views/clinic/DrugPurchase.vue

+ 25 - 0
src/api/outpatient/drug-purchase.js

@@ -0,0 +1,25 @@
+import request from '../../utils/request'
+
+export function findByCondition(data) {
+  return request({
+    url: '/drugPurchase/findByCondition',
+    method: 'post',
+    data
+  })
+}
+
+export function setPrepayAmt(data) {
+  return request({
+    url: '/drugPurchase/setPrepayAmt',
+    method: 'post',
+    data
+  })
+}
+
+export function dealPurchase(data) {
+  return request({
+    url: '/drugPurchase/dealPurchase',
+    method: 'post',
+    data
+  })
+}

+ 131 - 0
src/views/clinic/DrugPurchase.vue

@@ -0,0 +1,131 @@
+<template>
+  <div class="layout_container">
+    <header class="round-header">
+      日期范围:
+      <CyDateRange v-model="inquiry" start="start" end="end" :shortcuts-index="2"/>
+      <span style="margin-left: 8px">
+        处理状态:
+      </span>
+      <el-select v-model="inquiry.dealFlag" style="width: 80px" clearable>
+        <el-option :value="0" label="未处理" />
+        <el-option :value="1" label="已处理" />
+      </el-select>
+      <span style="margin-left: 8px">
+        订金状态:
+      </span>
+      <el-select v-model="inquiry.prepayState" style="width: 80px" clearable>
+        <el-option value="NOTPAY" label="未支付" />
+        <el-option value="SUCCESS" label="已支付" />
+        <el-option value="REFUND" label="已退款" />
+      </el-select>
+      <el-divider direction="vertical"></el-divider>
+      <el-button @click="queryData" type="primary" icon="Search">查询</el-button>
+    </header>
+    <div class="layout_main layout_el-table" >
+      <vxe-table
+          ref="tableRef"
+          border
+          keep-source
+          :data="dataList"
+      >
+        <vxe-column field="phoneNo" title="手机号" width="120"></vxe-column>
+        <vxe-column field="drugName" title="药品名称"></vxe-column>
+        <vxe-column field="drugQuantity" title="数量" width="60"></vxe-column>
+        <vxe-column field="drugSpecification" title="规格" width="120"></vxe-column>
+        <vxe-column field="drugFactory" title="生产厂家"></vxe-column>
+        <vxe-column field="expContent" title="备注"></vxe-column>
+        <vxe-column title="图片" width="120">
+          <template #default="{row}">
+            <el-image
+                v-if="row.drugImg"
+                :src="row.drugImg"
+                fit="fill"
+                :preview-src-list="[row.drugImg]"
+                style="width: 100px;height: 100px;position: relative"
+            />
+          </template>
+        </vxe-column>
+        <vxe-column field="createTime" title="创建时间" width="160"></vxe-column>
+        <vxe-column title="订金金额" width="120">
+          <template #default="{row}">
+            <el-input
+                type="number"
+                :disabled="row.prepayState!=='NOTPAY'"
+                v-model="row.prepayAmt"
+                @keyup.enter.native="handleEnter(row)"
+            />
+            <div v-if="row.prepayState === 'SUCCESS'">
+              <el-tag type="success">订金已支付</el-tag>
+            </div>
+            <div v-else-if="row.prepayState === 'NOTPAY' && row.prepayAmt > 0">
+              <el-tag type="danger">订金未支付</el-tag>
+            </div>
+            <div v-if="row.prepayState === 'REFUND'">
+              <el-tag type="warning">订金已退款</el-tag>
+            </div>
+          </template>
+        </vxe-column>
+        <vxe-column field="dealFlag" title="处理状态" width="120">
+          <template #default="{row}">
+            <div v-if="row.prepayAmt > 0 && row.prepayState !== 'SUCCESS'">
+              <el-tag type="danger" effect="dark" size="default">
+                无法处理
+              </el-tag>
+            </div>
+            <div v-else>
+              <div v-if="row.dealFlag">
+                <el-tag type="info" effect="dark" size="default">
+                  已处理
+                </el-tag>
+              </div>
+              <div v-else>
+                <el-button type="success" @click="dealDrug(row)">处理</el-button>
+              </div>
+            </div>
+          </template>
+        </vxe-column>
+      </vxe-table>
+    </div>
+  </div>
+</template>
+
+<script setup>
+import {findByCondition,setPrepayAmt,dealPurchase} from "@/api/outpatient/drug-purchase";
+import CyDateRange from "@/components/cy/date-range/CyDateRange.vue";
+import {ElMessageBox} from "element-plus";
+import {xcMessage} from "@/utils/xiaochan-element-plus";
+
+const inquiry = reactive({
+  start: null,
+  end: null,
+  dealFlag: null,
+  prepayState: null,
+})
+const tableRef = ref()
+const dataList = ref([])
+function queryData() {
+  findByCondition(inquiry).then(res => {
+    dataList.value = res
+  })
+}
+
+function handleEnter(row) {
+  ElMessageBox.confirm('是否确认修改订金金额?','提示',{
+    type: 'warning',
+  }).then(() => {
+    setPrepayAmt(row).then(res => {
+      xcMessage.success(res)
+      tableRef.value.reloadRow(row)
+    })
+  }).catch(() => {
+    tableRef.value.revertData(row)
+  })
+}
+
+function dealDrug(row) {
+  dealPurchase(row).then(res => {
+    xcMessage.success(res)
+    row.dealFlag = 1
+  })
+}
+</script>