gaoluyang
2025-07-02 71fcb192074d72105b1668f6cf9b32a2e54838d8
1.库存管理、销售出库-添加查看详情功能
已修改3个文件
68 ■■■■ 文件已修改
src/views/salesOutbound/components/formDia.vue 30 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/salesOutbound/index.vue 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/warehouseManagement/index.vue 27 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/salesOutbound/components/formDia.vue
@@ -7,6 +7,7 @@
          <el-col :span="12">
            <el-form-item label="销售日期" prop="saleDate">
              <el-date-picker
                  :disabled="operationType === 'view'"
                  v-model="form.saleDate"
                  type="date"
                  value-format="YYYY-MM-DD"
@@ -19,7 +20,7 @@
          </el-col>
          <el-col :span="12">
            <el-form-item label="客户" prop="customerId">
              <el-select v-model="form.customerId" placeholder="请选择客户">
              <el-select v-model="form.customerId" placeholder="请选择客户" :disabled="operationType === 'view'">
                <el-option
                    v-for="item in customerOptions"
                    :key="item.value"
@@ -33,7 +34,7 @@
        <el-row>
          <el-col :span="12">
            <el-form-item label="煤种" prop="coalId">
              <el-select v-model="form.coalId" placeholder="请选择煤种" @change="setInfo">
              <el-select v-model="form.coalId" placeholder="请选择煤种" @change="setInfo" :disabled="operationType === 'view'">
                <el-option
                    v-for="item in coalOptions"
                    :key="item.id"
@@ -45,67 +46,67 @@
          </el-col>
          <el-col :span="12">
            <el-form-item label="单位" prop="unit">
              <el-input v-model="form.unit" placeholder="请输入单位" maxlength="30" />
              <el-input v-model="form.unit" placeholder="请输入单位" maxlength="30" :disabled="operationType === 'view'"/>
            </el-form-item>
          </el-col>
        </el-row>
        <el-row>
          <el-col :span="12">
            <el-form-item label="库存数量" prop="inventoryQuantity">
              <el-input v-model="form.inventoryQuantity" placeholder="请输入销售数量" maxlength="30" type="number" />
              <el-input v-model="form.inventoryQuantity" placeholder="请输入销售数量" maxlength="30" type="number" :disabled="operationType === 'view'"/>
            </el-form-item>
          </el-col>
          <el-col :span="12">
            <el-form-item label="单价(含税)" prop="priceIncludingTax" @change="mathProfit">
              <el-input v-model="form.priceIncludingTax" placeholder="请输入销售单价(含税)" maxlength="30" type="number" />
              <el-input v-model="form.priceIncludingTax" placeholder="请输入销售单价(含税)" maxlength="30" type="number" :disabled="operationType === 'view'"/>
            </el-form-item>
          </el-col>
        </el-row>
        <el-row>
          <el-col :span="12">
            <el-form-item label="销售数量" prop="saleQuantity" @change="mathProfit">
              <el-input v-model="form.saleQuantity" placeholder="请输入销售数量" maxlength="30" type="number" />
              <el-input v-model="form.saleQuantity" placeholder="请输入销售数量" maxlength="30" type="number" :disabled="operationType === 'view'"/>
            </el-form-item>
          </el-col>
          <el-col :span="12">
            <el-form-item label="销售单价(含税)" prop="salePrice" @change="mathProfit">
              <el-input v-model="form.salePrice" placeholder="请输入销售单价(含税)" maxlength="30" type="number" />
              <el-input v-model="form.salePrice" placeholder="请输入销售单价(含税)" maxlength="30" type="number" :disabled="operationType === 'view'"/>
            </el-form-item>
          </el-col>
        </el-row>
        <el-row>
          <el-col :span="12">
            <el-form-item label="销售总价(含税)" prop="totalAmount">
              <el-input v-model="form.totalAmount" placeholder="请输入销售总价(含税)" maxlength="30" type="number" />
              <el-input v-model="form.totalAmount" placeholder="请输入销售总价(含税)" maxlength="30" type="number" :disabled="operationType === 'view'"/>
            </el-form-item>
          </el-col>
          <el-col :span="12">
            <el-form-item label="运费" prop="freight">
              <el-input v-model="form.freight" placeholder="请输入销售总价(含税)" maxlength="30" type="number" />
              <el-input v-model="form.freight" placeholder="请输入销售总价(含税)" maxlength="30" type="number" :disabled="operationType === 'view'"/>
            </el-form-item>
          </el-col>
        </el-row>
        <el-row>
          <el-col :span="12">
            <el-form-item label="购销煤税率(%)" prop="taxCoal">
              <el-input v-model="form.taxCoal" placeholder="请输入销售总价(含税)" maxlength="30" type="number" />
              <el-input v-model="form.taxCoal" placeholder="请输入销售总价(含税)" maxlength="30" type="number" :disabled="operationType === 'view'"/>
            </el-form-item>
          </el-col>
          <el-col :span="12">
            <el-form-item label="运输税率(%)" prop="taxTrans">
              <el-input v-model="form.taxTrans" placeholder="请输入销售总价(含税)" maxlength="30" type="number" />
              <el-input v-model="form.taxTrans" placeholder="请输入销售总价(含税)" maxlength="30" type="number" :disabled="operationType === 'view'"/>
            </el-form-item>
          </el-col>
        </el-row>
        <el-row>
          <el-col :span="12">
            <el-form-item label="毛利润" prop="grossProfit">
              <el-input v-model="form.grossProfit" placeholder="毛利润" maxlength="30" type="number" />
              <el-input v-model="form.grossProfit" placeholder="毛利润" maxlength="30" type="number" :disabled="operationType === 'view'"/>
            </el-form-item>
          </el-col>
          <el-col :span="12">
            <el-form-item label="净利润" prop="netProfit">
              <el-input v-model="form.netProfit" placeholder="净利润" maxlength="30" type="number" />
              <el-input v-model="form.netProfit" placeholder="净利润" maxlength="30" type="number" :disabled="operationType === 'view'"/>
            </el-form-item>
          </el-col>
        </el-row>
@@ -158,6 +159,7 @@
// 打开弹框
const openDialog = async (type, row) => {
  operationType.value = type
  dialogVisitable.value = true
  form.value.saleDate = proxy.getCurrentDate()
  const [supplyRes, coalRes] = await Promise.all([
@@ -175,7 +177,7 @@
  form.value.taxCoal = 13
  form.value.taxTrans = 9
  form.value.freight = 20
  if (type === 'edit') {
  if (type !== 'add') {
    form.value = {...row}
  }
}
src/views/salesOutbound/index.vue
@@ -26,7 +26,7 @@
      </el-tabs>
      <!-- 操作按钮区 -->
      <el-space>
        <el-button type="primary" :icon="Plus" @click="openDia()">新建</el-button>
        <el-button type="primary" :icon="Plus" @click="openDia(undefined, 'add')">新建</el-button>
        <el-button type="danger" :icon="Delete" @click="handleDelete">删除</el-button>
        <!-- <el-button type="info" plain :icon="Download" @click="handleExport">导出</el-button> -->
      </el-space>
@@ -38,8 +38,11 @@
                @selection-change="handleSelectionChange"
                :show-selection="true"
                :border="true"
                :operations="operationsArr"
                style="width: 100%;height: calc(100vh - 30em)"
                @edit="openDia"></ETable>
                @edit="(row) => openDia(row, 'edit')"
                @viewRow="(row) => openDia(row, 'view')"
        ></ETable>
      </div>
      <pagination
          v-if="total>0"
@@ -70,6 +73,7 @@
  { name: "out", label: "销售出库" },
]);
// 表格数据
const operationsArr = ref(['edit', 'viewRow']);
const tableLoading = ref(false);
const tableData = ref([]);
const columns = ref([
@@ -125,9 +129,8 @@
  handleQuery();
};
// 新增出库
const openDia = (row) => {
const openDia = (row, type) => {
  console.log(row)
  const type = row === undefined ? 'add' : 'edit'
  nextTick(() => {
    formDia.value?.openDialog(type, row)
  })
src/views/warehouseManagement/index.vue
@@ -52,10 +52,11 @@
          </el-table-column>
          <el-table-column prop="registrant" label="登记人" width="180"/>
          <el-table-column prop="registrationDate" label="登记日期" width="180"/>
          <el-table-column fixed="right" label="操作" min-width="60" align="center">
          <el-table-column fixed="right" label="操作" min-width="100" align="center">
            <template #default="scope">
              <el-button link type="primary" size="small" @click="reviewDia(scope.row)" v-if="activeTab !== 'officialInventory'">审核</el-button>
              <el-button link type="primary" size="small" @click="mergeRows('edit', scope.row)" v-else>编辑</el-button>
              <el-button link type="primary" size="small" @click="mergeRows('edit', scope.row)" v-if="activeTab === 'officialInventory'">编辑</el-button>
              <el-button link type="primary" size="small" @click="mergeRows('view', scope.row)" v-if="activeTab === 'officialInventory'">详情</el-button>
            </template>
          </el-table-column>
        </el-table>
@@ -160,14 +161,14 @@
        <el-row>
          <el-col :span="12">
            <el-form-item label="供应商名称" prop="supplierId">
              <el-select v-model="mergeForm.supplierId" placeholder="请选择供应商">
              <el-select v-model="mergeForm.supplierId" placeholder="请选择供应商" :disabled="operationType === 'view'">
                <el-option :label="item.label" v-for="item in supplyList" :key="item.value" :value="item.value"/>
              </el-select>
            </el-form-item>
          </el-col>
          <el-col :span="12">
            <el-form-item label="煤种" prop="coalId">
              <el-select v-model="mergeForm.coalId" placeholder="请选择煤种">
              <el-select v-model="mergeForm.coalId" placeholder="请选择煤种" :disabled="operationType === 'view'">
                <el-option :label="item.label" v-for="item in coalList" :key="item.value" :value="item.value"/>
              </el-select>
            </el-form-item>
@@ -176,43 +177,43 @@
        <el-row>
          <el-col :span="12">
            <el-form-item label="单位" prop="unit">
              <el-input v-model="mergeForm.unit" placeholder="请输入单位" maxlength="30" />
              <el-input v-model="mergeForm.unit" placeholder="请输入单位" maxlength="30" :disabled="operationType === 'view'"/>
            </el-form-item>
          </el-col>
          <el-col :span="12">
            <el-form-item label="库存数量" prop="inventoryQuantity">
              <el-input v-model="mergeForm.inventoryQuantity" placeholder="请输入库存数量" :max="inventoryQuantity" type="number"/>
              <el-input v-model="mergeForm.inventoryQuantity" placeholder="请输入库存数量" :max="inventoryQuantity" type="number" :disabled="operationType === 'view'"/>
            </el-form-item>
          </el-col>
        </el-row>
        <el-row>
          <el-col :span="12">
            <el-form-item label="单价(含税)" prop="priceIncludingTax">
              <el-input v-model="mergeForm.priceIncludingTax" placeholder="请输入单价(含税)" maxlength="30" />
              <el-input v-model="mergeForm.priceIncludingTax" placeholder="请输入单价(含税)" maxlength="30" :disabled="operationType === 'view'" />
            </el-form-item>
          </el-col>
          <el-col :span="12">
            <el-form-item label="总价(含税)" prop="totalPriceIncludingTax">
              <el-input v-model="mergeForm.totalPriceIncludingTax" placeholder="请输入总价(含税)" maxlength="30" />
              <el-input v-model="mergeForm.totalPriceIncludingTax" placeholder="请输入总价(含税)" maxlength="30" :disabled="operationType === 'view'" />
            </el-form-item>
          </el-col>
        </el-row>
        <el-row>
          <el-col :span="12">
            <el-form-item label="单价(不含税)" prop="priceExcludingTax">
              <el-input v-model="mergeForm.priceExcludingTax" placeholder="请输入单价(不含税)" maxlength="30" />
              <el-input v-model="mergeForm.priceExcludingTax" placeholder="请输入单价(不含税)" maxlength="30" :disabled="operationType === 'view'" />
            </el-form-item>
          </el-col>
          <el-col :span="12">
            <el-form-item label="总价(不含税)" prop="totalPriceExcludingTax">
              <el-input v-model="mergeForm.totalPriceExcludingTax" placeholder="请输入总价(不含税)" maxlength="30" />
              <el-input v-model="mergeForm.totalPriceExcludingTax" placeholder="请输入总价(不含税)" maxlength="30" :disabled="operationType === 'view'" />
            </el-form-item>
          </el-col>
        </el-row>
        <el-row>
          <el-col :span="12">
            <el-form-item label="煤质方案" prop="coalPlanId">
              <el-select v-model="mergeForm.coalPlanId" placeholder="请选择" @change="coalPlanByIdList" clearable>
              <el-select v-model="mergeForm.coalPlanId" placeholder="请选择" @change="coalPlanByIdList" clearable :disabled="operationType === 'view'">
                <el-option
                    v-for="dict in qualityPlanOption"
                    :key="dict.id"
@@ -227,7 +228,7 @@
        <el-row>
          <el-col :span="12" v-for="item in filteredList" :key="item.id">
            <el-form-item :label="item.fieldName">
              <el-input v-model="mergeForm[item.fields]" />
              <el-input v-model="mergeForm[item.fields]" :disabled="operationType === 'view'" />
            </el-form-item>
          </el-col>
        </el-row>
@@ -464,7 +465,7 @@
  coalPlanListOptions()
  mergeVisible.value = true;
  operationType.value = type;
  if (type === 'edit') {
  if (type !== 'merge') {
    mergeForm.value = {...row}
  } else {
    if (selectedRows.value.length < 2) {