gaoluyang
6 天以前 02312d40f76a77036237e35eea6a24c357204fbc
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,12 +20,12 @@
          </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.id"
                    :label="item.customerName"
                    :value="item.id"
                    :key="item.value"
                    :label="item.label"
                    :value="item.value"
                />
              </el-select>
            </el-form-item>
@@ -33,79 +34,79 @@
        <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"
                    :key="item.coalId"
                    :label="item.coal"
                    :value="item.id"
                    :value="item.coalId"
                />
              </el-select>
            </el-form-item>
          </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">
              <el-input v-model="form.priceIncludingTax" placeholder="请输入销售单价(含税)" maxlength="30" type="number" />
            <el-form-item label="单价(含税)" prop="priceIncludingTax" @change="mathProfit">
              <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">
              <el-input v-model="form.saleQuantity" placeholder="请输入销售数量" maxlength="30" type="number" />
            <el-form-item label="销售数量" prop="saleQuantity" @change="mathProfit">
              <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>
@@ -122,7 +123,7 @@
<script setup>
import {reactive, ref} from "vue";
import {addOrEditSalesRecord, customerList, officialList} from "../../../api/salesOutbound/index.js";
import {addOrEditSalesRecord, customerList, officialList} from "@/api/salesOutbound/index.js";
import useUserStore from '@/store/modules/user'
const { proxy } = getCurrentInstance()
@@ -151,6 +152,19 @@
  },
  rules: {
    saleDate: [{ required: true, message: "请选择日期", trigger: "change" },],
      customerId: [{ required: true, message: "请选择客户", trigger: "change" },],
      coalId: [{ required: true, message: "请选择煤种", trigger: "change" },],
      unit: [{ required: true, message: "请输入", trigger: "blur" },],
      saleQuantity: [{ required: true, message: "请输入", trigger: "blur" },],
      salePrice: [{ required: true, message: "请输入", trigger: "blur" },],
      totalAmount: [{ required: true, message: "请输入", trigger: "blur" },],
      freight: [{ required: true, message: "请输入", trigger: "blur" },],
      taxCoal: [{ required: true, message: "请输入", trigger: "blur" },],
      taxTrans: [{ required: true, message: "请输入", trigger: "blur" },],
      grossProfit: [{ required: true, message: "请输入", trigger: "blur" },],
      netProfit: [{ required: true, message: "请输入", trigger: "blur" },],
      inventoryQuantity: [{ required: true, message: "请输入", trigger: "blur" },],
      priceIncludingTax: [{ required: true, message: "请输入", trigger: "blur" },],
  }
})
@@ -158,20 +172,25 @@
// 打开弹框
const openDialog = async (type, row) => {
  operationType.value = type
  dialogVisitable.value = true
  form.value.saleDate = proxy.getCurrentDate()
  customerList().then((res) => {
    customerOptions.value = res.data
  })
  officialList().then((res) => {
    coalOptions.value = res.data
  })
  const [supplyRes, coalRes] = await Promise.all([
    customerList(),
    officialList(),
  ]);
  let supplyData = supplyRes.data;
  coalOptions.value = coalRes.data;
  customerOptions.value = supplyData.map((item) => ({
    value: item.id,
    label: item.customerName,
  }));
  let res = await userStore.getInfo()
  form.value.registrantId = res.user.userId
  form.value.taxCoal = 13
  form.value.taxTrans = 9
  form.value.freight = 20
  if (type === 'edit') {
  if (type !== 'add') {
    form.value = {...row}
  }
}