gaoluyang
2026-05-11 bdc5539eca6e1126960efdd70b8b561c484fbf8f
天津军泰伟业
1.销售台账添加新字段
已修改1个文件
177 ■■■■ 文件已修改
src/views/salesManagement/salesLedger/index.vue 177 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/salesManagement/salesLedger/index.vue
@@ -14,6 +14,18 @@
          <el-input v-model="searchForm.projectName" placeholder="请输入" clearable prefix-icon="Search"
            @change="handleQuery" />
        </el-form-item>
        <el-form-item label="订单类型:">
          <el-input v-model="searchForm.orderType" placeholder="请输入" clearable prefix-icon="Search"
            @change="handleQuery" />
        </el-form-item>
        <el-form-item label="订单行:">
          <el-input v-model="searchForm.orderLine" placeholder="请输入" clearable prefix-icon="Search"
            @change="handleQuery" />
        </el-form-item>
        <el-form-item label="需求日期:">
          <el-date-picker v-model="searchForm.demandDate" value-format="YYYY-MM-DD" format="YYYY-MM-DD" type="daterange"
            placeholder="请选择" clearable @change="(val) => changeDaterange(val, 'demandDate')" />
        </el-form-item>
        <el-form-item label="录入日期:">
          <el-date-picker v-model="searchForm.entryDate" value-format="YYYY-MM-DD" format="YYYY-MM-DD" type="daterange"
            placeholder="请选择" clearable @change="changeDaterange" />
@@ -46,8 +58,14 @@
              <el-table-column align="center" label="序号" type="index"/>
              <el-table-column label="产品大类" prop="productCategory" />
              <el-table-column label="图纸编号" prop="specificationModel" />
                            <el-table-column label="物料号" prop="material" />
              <el-table-column label="物料号" prop="materialNo" width="120" show-overflow-tooltip />
              <el-table-column label="单位" prop="unit" />
              <el-table-column label="是否喷砂" prop="isSpray" width="100" align="center">
                <template #default="scope">
                  <el-tag v-if="scope.row.isSpray" type="warning">是</el-tag>
                  <el-tag v-else type="info">否</el-tag>
                </template>
              </el-table-column>
                            <el-table-column label="产品状态"
                                                             width="100px"
                                                             align="center">
@@ -68,10 +86,10 @@
              <el-table-column label="已发货数量" prop="shippingNum" align="center" />
              <el-table-column label="已退货数量" prop="returnNum" align="center" />
              <el-table-column label="数量" prop="quantity" />
              <el-table-column label="税率(%)" prop="taxRate" />
              <el-table-column label="含税单价(元)" prop="taxInclusiveUnitPrice" :formatter="formattedNumber" />
              <el-table-column label="含税总价(元)" prop="taxInclusiveTotalPrice" :formatter="formattedNumber" />
              <el-table-column label="不含税总价(元)" prop="taxExclusiveTotalPrice" :formatter="formattedNumber" />
              <el-table-column v-if="isSalesDepartment" label="税率(%)" prop="taxRate" />
              <el-table-column v-if="isSalesDepartment" label="含税单价(元)" prop="taxInclusiveUnitPrice" :formatter="formattedNumber" />
              <el-table-column v-if="isSalesDepartment" label="含税总价(元)" prop="taxInclusiveTotalPrice" :formatter="formattedNumber" />
              <el-table-column v-if="isSalesDepartment" label="不含税总价(元)" prop="taxExclusiveTotalPrice" :formatter="formattedNumber" />
            <!--操作-->
              <el-table-column width="150" label="操作" align="center" fixed="right">
                <template #default="scope">
@@ -102,7 +120,7 @@
        <el-table-column label="业务员" prop="salesman" width="100" show-overflow-tooltip />
        <el-table-column label="项目名称" prop="projectName" width="180" show-overflow-tooltip />
        <el-table-column label="付款方式" prop="paymentMethod" show-overflow-tooltip />
        <el-table-column label="合同金额(元)" prop="contractAmount" width="220" show-overflow-tooltip
        <el-table-column v-if="isSalesDepartment" label="合同金额(元)" prop="contractAmount" width="220" show-overflow-tooltip
          :formatter="formattedNumber" />
        <el-table-column label="录入人" prop="entryPersonName" width="100" show-overflow-tooltip />
        <el-table-column label="录入日期" prop="entryDate" width="120" show-overflow-tooltip />
@@ -167,7 +185,7 @@
                    <el-col :span="12">
                        <el-form-item label="签订日期:" prop="executionDate">
                            <el-date-picker style="width: 100%" v-model="form.executionDate" value-format="YYYY-MM-DD"
                                                            format="YYYY-MM-DD" type="date" placeholder="请选择" clearable :disabled="operationType === 'view'" />
                                                                format="YYYY-MM-DD" type="date" placeholder="请选择" clearable :disabled="operationType === 'view'" />
                        </el-form-item>
                    </el-col>
                    <el-col :span="12">
@@ -175,6 +193,32 @@
                            <el-input v-model="form.paymentMethod" placeholder="请输入" clearable :disabled="operationType === 'view'" />
                        </el-form-item>
                    </el-col>
                </el-row>
                <el-row :gutter="30">
                    <el-col :span="12">
                        <el-form-item label="订单类型:" prop="orderType">
                            <el-input v-model="form.orderType" placeholder="请输入" clearable :disabled="operationType === 'view'" />
                        </el-form-item>
                    </el-col>
                    <el-col :span="12">
                        <el-form-item label="订单行:" prop="orderLine">
                            <el-input v-model="form.orderLine" placeholder="请输入" clearable :disabled="operationType === 'view'" />
                        </el-form-item>
                    </el-col>
                </el-row>
                <el-row :gutter="30">
                    <el-col :span="12">
                        <el-form-item label="需求日期:" prop="demandDate">
                            <el-date-picker style="width: 100%" v-model="form.demandDate" value-format="YYYY-MM-DD" format="YYYY-MM-DD"
                                                                type="date" placeholder="请选择" clearable :disabled="operationType === 'view'" />
                        </el-form-item>
                    </el-col>
                    <el-col :span="12">
            <el-form-item label="交货日期:" prop="entryDate">
              <el-date-picker style="width: 100%" v-model="form.deliveryDate" value-format="YYYY-MM-DD" format="YYYY-MM-DD"
                              type="date" placeholder="请选择" clearable />
            </el-form-item>
          </el-col>
                </el-row>
                <el-row :gutter="30">
                    <el-col :span="12">
@@ -194,14 +238,6 @@
                        </el-form-item>
                    </el-col>
                </el-row>
        <el-row :gutter="30">
          <el-col :span="12">
            <el-form-item label="交货日期:" prop="entryDate">
              <el-date-picker style="width: 100%" v-model="form.deliveryDate" value-format="YYYY-MM-DD" format="YYYY-MM-DD"
                              type="date" placeholder="请选择" clearable />
            </el-form-item>
          </el-col>
        </el-row>
                <el-row>
                    <el-form-item label="产品信息:" prop="entryDate">
                        <el-button v-if="operationType !== 'view'" type="primary" @click="openProductForm('add')">添加</el-button>
@@ -215,13 +251,23 @@
                    <el-table-column align="center" label="序号" type="index" width="60" />
                    <el-table-column label="产品大类" prop="productCategory" />
                    <el-table-column label="图纸编号" prop="specificationModel" />
                    <el-table-column label="物料号" prop="material" />
                    <el-table-column label="物料号" prop="materialNo" width="120" show-overflow-tooltip />
                    <el-table-column label="单位" prop="unit" />
                    <el-table-column label="数量" prop="quantity" />
                    <el-table-column label="税率(%)" prop="taxRate" />
                    <el-table-column label="含税单价(元)" prop="taxInclusiveUnitPrice" :formatter="formattedNumber" />
                    <el-table-column label="含税总价(元)" prop="taxInclusiveTotalPrice" :formatter="formattedNumber" />
                    <el-table-column label="不含税总价(元)" prop="taxExclusiveTotalPrice" :formatter="formattedNumber" />
                    <el-table-column label="交货数量" prop="deliveryQuantity" />
                    <el-table-column label="剩余数量" prop="remainingQuantity" />
                    <el-table-column label="子库存" prop="subInventory" width="120" show-overflow-tooltip />
                    <el-table-column label="货位" prop="location" width="120" show-overflow-tooltip />
                    <el-table-column label="是否喷砂" prop="isSpray" width="100" align="center">
                        <template #default="scope">
                            <el-tag v-if="scope.row.isSpray" type="warning">是</el-tag>
                            <el-tag v-else type="info">否</el-tag>
                        </template>
                    </el-table-column>
                    <el-table-column v-if="isSalesDepartment" label="税率(%)" prop="taxRate" />
                    <el-table-column v-if="isSalesDepartment" label="含税单价(元)" prop="taxInclusiveUnitPrice" :formatter="formattedNumber" />
                    <el-table-column v-if="isSalesDepartment" label="含税总价(元)" prop="taxInclusiveTotalPrice" :formatter="formattedNumber" />
                    <el-table-column v-if="isSalesDepartment" label="不含税总价(元)" prop="taxExclusiveTotalPrice" :formatter="formattedNumber" />
                    <el-table-column fixed="right" label="操作" min-width="60" align="center" v-if="operationType !== 'view'">
                        <template #default="scope">
                            <el-button link type="primary" size="small" 
@@ -345,8 +391,8 @@
                </el-row>
                <el-row :gutter="30">
                    <el-col :span="24">
                        <el-form-item label="物料号:" prop="material">
                            <el-input v-model="productForm.material" placeholder="请输入物料号" clearable />
                        <el-form-item label="物料号:" prop="materialNo">
                            <el-input v-model="productForm.materialNo" placeholder="请输入物料号" clearable />
                        </el-form-item>
                    </el-col>
                </el-row>
@@ -356,9 +402,10 @@
                            <el-input v-model="productForm.unit" placeholder="请输入" clearable />
                        </el-form-item>
                    </el-col>
                    <el-col :span="12">
                    <el-col :span="12" v-if="isSalesDepartment">
                        <el-form-item label="税率(%):" prop="taxRate">
                            <el-select v-model="productForm.taxRate" placeholder="请选择" clearable @change="calculateFromTaxRate">
                                <el-option label="0" value="0" />
                                <el-option label="1" value="1" />
                                <el-option label="6" value="6" />
                                <el-option label="13" value="13" />
@@ -368,10 +415,43 @@
                </el-row>
                <el-row :gutter="30">
                    <el-col :span="12">
                        <el-form-item label="交货数量:" prop="deliveryQuantity">
                            <el-input-number :step="0.1" :min="0" v-model="productForm.deliveryQuantity" placeholder="请输入" clearable
                                :precision="2" style="width: 100%" />
                        </el-form-item>
                    </el-col>
                    <el-col :span="12">
                        <el-form-item label="剩余数量:" prop="remainingQuantity">
                            <el-input-number :step="0.1" :min="0" v-model="productForm.remainingQuantity" placeholder="请输入" clearable
                                :precision="2" style="width: 100%" />
                        </el-form-item>
                    </el-col>
                </el-row>
                <el-row :gutter="30">
                    <el-col :span="12">
                        <el-form-item label="子库存:" prop="subInventory">
                            <el-input v-model="productForm.subInventory" placeholder="请输入" clearable />
                        </el-form-item>
                    </el-col>
                    <el-col :span="12">
                        <el-form-item label="货位:" prop="location">
                            <el-input v-model="productForm.location" placeholder="请输入" clearable />
                        </el-form-item>
                    </el-col>
                </el-row>
                <el-row :gutter="30">
                    <el-col :span="12">
                        <el-form-item label="是否喷砂:" prop="isSpray">
                            <el-switch v-model="productForm.isSpray" active-text="是" inactive-text="否" />
                        </el-form-item>
                    </el-col>
                </el-row>
                <el-row :gutter="30">
                    <el-col :span="12" v-if="isSalesDepartment">
                        <el-form-item label="含税单价(元):" prop="taxInclusiveUnitPrice">
                            <el-input-number :step="0.01" :min="0" v-model="productForm.taxInclusiveUnitPrice" style="width: 100%"
                                                             :precision="2"
                                                             placeholder="请输入" clearable @change="calculateFromUnitPrice" />
                                                                 :precision="2"
                                                                 placeholder="请输入" clearable @change="calculateFromUnitPrice" />
                        </el-form-item>
                    </el-col>
                    <el-col :span="12">
@@ -382,7 +462,7 @@
                        </el-form-item>
                    </el-col>
                </el-row>
                <el-row :gutter="30">
                <el-row :gutter="30" v-if="isSalesDepartment">
                    <el-col :span="12">
                        <el-form-item label="含税总价(元):" prop="taxInclusiveTotalPrice">
                            <el-input v-model="productForm.taxInclusiveTotalPrice" placeholder="请输入" clearable @change="calculateFromTotalPrice" />
@@ -394,7 +474,7 @@
                        </el-form-item>
                    </el-col>
                </el-row>
                <el-row :gutter="30">
                <el-row :gutter="30" v-if="isSalesDepartment">
                    <el-col :span="12">
                        <el-form-item label="发票类型:" prop="invoiceType">
                            <el-select v-model="productForm.invoiceType" placeholder="请选择" clearable>
@@ -631,6 +711,12 @@
const userStore = useUserStore();
const { proxy } = getCurrentInstance();
// 是否是销售部(控制价格字段显示/隐藏)
const isSalesDepartment = computed(() => {
    return currentFactoryName.value === '销售部';
});
const tableData = ref([]);
const productData = ref([]);
const selectedRows = ref([]);
@@ -654,6 +740,12 @@
    searchForm: {
        customerName: "", // 客户名称
        salesContractNo: "", // 销售合同编号
        projectName: "", // 项目名称
        orderType: "", // 订单类型
        orderLine: "", // 订单行
        demandDate: null, // 需求日期
        demandDateStart: undefined,
        demandDateEnd: undefined,
        entryDate: null, // 录入日期
        entryDateStart: undefined,
        entryDateEnd: undefined,
@@ -662,12 +754,16 @@
        salesContractNo: "",
        salesman: "",
        customerId: "",
        projectName: "",
        entryPerson: "",
        entryDate: "",
    deliveryDate: "",
        maintenanceTime: "",
        productData: [],
        executionDate: "",
        orderType: "",
        orderLine: "",
        demandDate: "",
    },
    rules: {
        salesman: [{ required: true, message: "请选择", trigger: "change" }],
@@ -690,10 +786,15 @@
        productId: "",
        productModelId: "",
        productCategory: "",
        material: "",
        materialNo: "",
        specificationModel: "",
        unit: "",
        quantity: "",
        deliveryQuantity: 0,
        remainingQuantity: 0,
        subInventory: "",
        location: "",
        isSpray: false,
        taxInclusiveUnitPrice: "",
        taxRate: "",
        taxInclusiveTotalPrice: "",
@@ -801,13 +902,23 @@
    },
});
const changeDaterange = (value) => {
const changeDaterange = (value, type = 'entryDate') => {
    if (value) {
        searchForm.entryDateStart = dayjs(value[0]).format("YYYY-MM-DD");
        searchForm.entryDateEnd = dayjs(value[1]).format("YYYY-MM-DD");
        if (type === 'demandDate') {
            searchForm.demandDateStart = dayjs(value[0]).format("YYYY-MM-DD");
            searchForm.demandDateEnd = dayjs(value[1]).format("YYYY-MM-DD");
        } else {
            searchForm.entryDateStart = dayjs(value[0]).format("YYYY-MM-DD");
            searchForm.entryDateEnd = dayjs(value[1]).format("YYYY-MM-DD");
        }
    } else {
        searchForm.entryDateStart = undefined;
        searchForm.entryDateEnd = undefined;
        if (type === 'demandDate') {
            searchForm.demandDateStart = undefined;
            searchForm.demandDateEnd = undefined;
        } else {
            searchForm.entryDateStart = undefined;
            searchForm.entryDateEnd = undefined;
        }
    }
    handleQuery();
};