已添加1个文件
已修改27个文件
1092 ■■■■■ 文件已修改
src/api/equipmentManagement/calibration.js 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/publicApi/commonFile.js 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/basicData/customerFile/index.vue 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/basicData/supplierManage/index.vue 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/collaborativeApproval/approvalProcess/fileList.vue 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/collaborativeApproval/noticeManagement/index.vue 83 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/equipmentManagement/calibration/index.vue 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/equipmentManagement/inspectionManagement/components/formDia.vue 64 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/equipmentManagement/inspectionManagement/index.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/inventoryManagement/dispatchLog/index.vue 132 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/inventoryManagement/issueManagement/index.vue 102 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/inventoryManagement/receiptManagement/index.vue 106 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/inventoryManagement/stockManagement/index.vue 102 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/procurementManagement/invoiceEntry/components/Modal.vue 47 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/procurementManagement/invoiceEntry/index.vue 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/procurementManagement/paymentEntry/index.vue 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/procurementManagement/procurementInvoiceLedger/index.vue 41 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/procurementManagement/procurementLedger/index.vue 58 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/reportAnalysis/dataDashboard/index.vue 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/salesManagement/invoiceLedger/index.vue 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/salesManagement/invoiceRegistration/index.vue 39 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/salesManagement/orderManagement/index.vue 20 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/salesManagement/paymentShipping/index.vue 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/salesManagement/receiptPayment/index.vue 37 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/salesManagement/receiptPaymentHistory/index.vue 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/salesManagement/salesLedger/fileList.vue 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/salesManagement/salesLedger/index.vue 42 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/salesManagement/salesQuotation/index.vue 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/equipmentManagement/calibration.js
@@ -24,4 +24,12 @@
    method: "post",
    data: query,
  });
}
// åˆ é™¤è®°å½•
export function ledgerRecordDelete(ids) {
  return request({
    url: "/measuringInstrumentLedgerRecord/delete",
    method: "delete",
    data: ids,
  });
}
src/api/publicApi/commonFile.js
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,11 @@
// å…¬å…±æ–‡ä»¶ç®¡ç†æŽ¥å£
import request from '@/utils/request'
// åˆ é™¤å…¬å…±æ–‡ä»¶
export function delCommonFile(ids) {
  return request({
    url: '/commonFile/delCommonFile',
    method: 'delete',
    data: ids
  })
}
src/views/basicData/customerFile/index.vue
@@ -557,12 +557,6 @@
const handleDelete = () => {
  let ids = [];
  if (selectedRows.value.length > 0) {
    // æ£€æŸ¥æ˜¯å¦æœ‰ä»–人维护的数据
    const unauthorizedData = selectedRows.value.filter(item => item.maintainer !== userStore.nickName);
    if (unauthorizedData.length > 0) {
      proxy.$modal.msgWarning("不可删除他人维护的数据");
      return;
    }
    ids = selectedRows.value.map((item) => item.id);
  } else {
    proxy.$modal.msgWarning("请选择数据");
src/views/basicData/supplierManage/index.vue
@@ -495,12 +495,6 @@
const handleDelete = () => {
  let ids = [];
  if (selectedRows.value.length > 0) {
        // æ£€æŸ¥æ˜¯å¦æœ‰ä»–人维护的数据
        const unauthorizedData = selectedRows.value.filter(item => item.maintainUserName !== userStore.nickName);
        if (unauthorizedData.length > 0) {
            proxy.$modal.msgWarning("不可删除他人维护的数据");
            return;
        }
    ids = selectedRows.value.map((item) => item.id);
  } else {
    proxy.$modal.msgWarning("请选择数据");
src/views/collaborativeApproval/approvalProcess/fileList.vue
@@ -2,10 +2,11 @@
  <el-dialog v-model="dialogVisible" title="附件" width="40%" :before-close="handleClose">
    <el-table :data="tableData" border height="40vh">
      <el-table-column label="附件名称" prop="name" min-width="400" show-overflow-tooltip />
      <el-table-column fixed="right" label="操作" width="100" align="center">
      <el-table-column fixed="right" label="操作" width="150" align="center">
        <template #default="scope">
          <el-button link type="primary" size="small" @click="downLoadFile(scope.row)">下载</el-button>
          <el-button link type="primary" size="small" @click="lookFile(scope.row)">预览</el-button>
          <el-button link type="danger" size="small" @click="handleDelete(scope.row)">删除</el-button>
        </template>
      </el-table-column>
    </el-table>
@@ -16,6 +17,8 @@
<script setup>
import { ref } from 'vue'
import filePreview from '@/components/filePreview/index.vue'
import { ElMessageBox, ElMessage } from 'element-plus'
import { delCommonFile } from '@/api/publicApi/commonFile.js'
const dialogVisible = ref(false)
const tableData = ref([])
@@ -35,6 +38,27 @@
const lookFile = (row) => {
  filePreviewRef.value.open(row.url)
}
// åˆ é™¤é™„ä»¶
const handleDelete = (row) => {
  ElMessageBox.confirm(`确认删除附件"${row.name}"吗?`, '提示', {
    confirmButtonText: '确定',
    cancelButtonText: '取消',
    type: 'warning'
  }).then(() => {
    delCommonFile([row.id]).then(() => {
      ElMessage.success('删除成功')
      // ä»Žåˆ—表中移除已删除的附件
      const index = tableData.value.findIndex(item => item.id === row.id)
      if (index !== -1) {
        tableData.value.splice(index, 1)
      }
    }).catch(() => {
      ElMessage.error('删除失败')
    })
  }).catch(() => {
    ElMessage.info('已取消删除')
  })
}
defineExpose({
  open
})
src/views/collaborativeApproval/noticeManagement/index.vue
@@ -10,16 +10,17 @@
    <!-- é€šçŸ¥å…¬å‘Šæ¿ -->
    <div class="notice-board">
      <!-- æ”¾å‡é€šçŸ¥åŒºåŸŸ -->
      <div class="notice-section" v-if="holidayNoticeCount > 0">
      <!-- ç»Ÿä¸€é€šçŸ¥åŒºåŸŸ -->
      <div class="notice-section" v-if="totalNoticeCount > 0">
        <div class="section-header">
          <h3>📅 æ”¾å‡é€šçŸ¥</h3>
          <span class="section-count">{{ holidayNoticeCount }}条</span>
          <h3>� é€šçŸ¥å…¬å‘Š</h3>
          <span class="section-count">{{ totalNoticeCount }}条</span>
        </div>
        <div class="notice-cards">
          <!-- æ”¾å‡é€šçŸ¥ -->
          <div
              v-for="notice in holidayNotices"
              :key="notice.id"
              :key="'holiday-' + notice.id"
              class="notice-card holiday-card"
              :class="{ 'urgent': notice.priority === '3' }"
          >
@@ -40,6 +41,9 @@
            </div>
            <div class="card-footer">
              <div class="card-meta">
                <span class="type" :class="'type-' + notice.type">
                  {{ notice.type }}
                </span>
                <span class="priority" :class="'priority-' + notice.priority">
                  {{ getPriorityText(notice.priority) }}
                </span>
@@ -59,27 +63,11 @@
              <span>{{ notice.remark }}</span>
            </div>
          </div>
        </div>
      </div>
      <pagination
          v-if="holidayNoticePage.total > 0"
          :total="holidayNoticePage.total"
          :page="holidayNoticePage.current"
          :limit="holidayNoticePage.size"
          @pagination="handleHolidayNoticeCurrentChange"
      />
      <!-- è®¾å¤‡ç»´ä¿®é€šçŸ¥åŒºåŸŸ -->
      <div class="notice-section" v-if="maintenanceNoticeCount > 0">
        <div class="section-header">
          <h3>🔧 è®¾å¤‡ç»´ä¿®é€šçŸ¥</h3>
          <span class="section-count">{{ maintenanceNoticeCount }}条</span>
        </div>
        <div class="notice-cards">
          <!-- è®¾å¤‡ç»´ä¿®é€šçŸ¥ -->
          <div
              v-for="notice in maintenanceNotices"
              :key="notice.id"
              :key="'maintenance-' + notice.id"
              class="notice-card maintenance-card"
              :class="{ 'urgent': notice.priority === '3' }"
          >
@@ -122,12 +110,13 @@
        </div>
      </div>
      <!-- ç»Ÿä¸€åˆ†é¡µ -->
      <pagination
          v-if="maintenanceNoticePage.total > 0"
          :total="maintenanceNoticePage.total"
          :page="maintenanceNoticePage.current"
          :limit="maintenanceNoticePage.size"
          @pagination="handleMaintenanceNoticeCurrentChange"
          v-if="(holidayNoticePage.total + maintenanceNoticePage.total) > 0"
          :total="holidayNoticePage.total + maintenanceNoticePage.total"
          :page="Math.max(holidayNoticePage.current, maintenanceNoticePage.current)"
          :limit="Math.max(holidayNoticePage.size, maintenanceNoticePage.size)"
          @pagination="handleCurrentChange"
      />
      <!-- ç©ºçŠ¶æ€ -->
@@ -153,10 +142,7 @@
          </el-col>
          <el-col :span="12">
            <el-form-item label="公告类型" prop="type">
              <el-select v-model="form.type" placeholder="请选择公告类型" style="width: 100%">
                <el-option label="放假通知" :value="1"/>
                <el-option label="设备维修通知" :value="2"/>
              </el-select>
                            <el-input v-model="form.type" placeholder="请输入公告标题"/>
            </el-form-item>
          </el-col>
        </el-row>
@@ -419,16 +405,10 @@
  });
};
const holidayNoticeCount = ref()
const maintenanceNoticeCount = ref()
const totalNoticeCount = ref(0)
const fetchCount = () => {
  getCount().then(res => {
    holidayNoticeCount.value = res.data.filter(item => {
      return item.type === 1
    })[0].count;
    maintenanceNoticeCount.value = res.data.filter(item => {
      return item.type === 2
    })[0].count;
    totalNoticeCount.value = res.data.reduce((total, item) => total + item.count, 0);
  });
}
@@ -447,7 +427,7 @@
})
const fetchHolidayNotices = () => {
  listNotice({...holidayNoticePage.value, type: 1}).then(res => {
  listNotice({...holidayNoticePage.value}).then(res => {
    holidayNotices.value = res.data.records
    holidayNoticePage.value.total = res.data.total
  });
@@ -460,15 +440,12 @@
  });
};
const handleHolidayNoticeCurrentChange = (val) => {
const handleCurrentChange = (val) => {
  holidayNoticePage.value.size = val.limit
  holidayNoticePage.value.current = val.page
  fetchHolidayNotices()
};
const handleMaintenanceNoticeCurrentChange = (val) => {
  maintenanceNoticePage.value.size = val.limit
  maintenanceNoticePage.value.current = val.page
  fetchHolidayNotices()
  fetchMaintenanceNotices()
};
@@ -638,13 +615,23 @@
  gap: 8px;
}
.priority, .status {
.type, .priority, .status {
  padding: 2px 8px;
  border-radius: 12px;
  font-size: 12px;
  font-weight: 500;
}
.type-1 {
  background: #f0f9ff;
  color: #0369a1;
}
.type-2 {
  background: #fef3c7;
  color: #d97706;
}
.priority-1 {
  background: #f0f9ff;
  color: #0369a1;
src/views/equipmentManagement/calibration/index.vue
@@ -57,10 +57,10 @@
<script setup>
import {onMounted, ref} from "vue";
import {ElMessageBox} from "element-plus";
import {ElMessageBox, ElMessage} from "element-plus";
import useUserStore from "@/store/modules/user.js";
import CalibrationDia from "@/views/equipmentManagement/measurementEquipment/components/calibrationDia.vue";
import {ledgerRecordListPage} from "@/api/equipmentManagement/calibration.js";
import {ledgerRecordListPage, ledgerRecordDelete} from "@/api/equipmentManagement/calibration.js";
const { proxy } = getCurrentInstance();
const userStore = useUserStore()
@@ -134,6 +134,7 @@
    {
        dataType: "action",
        label: "操作",
        width: 100,
        align: "center",
        fixed: 'right',
        operation: [
@@ -142,6 +143,16 @@
                type: "text",
                clickFun: (row) => {
                    openCalibrationDia("edit", row);
                },
            },
            {
                name: "删除",
                type: "text",
                style: {
                    color: "#F56C6C"
                },
                clickFun: (row) => {
                    handleDelete(row);
                },
            },
        ],
@@ -191,6 +202,26 @@
    })
}
// åˆ é™¤è®°å½•
const handleDelete = (row) => {
    ElMessageBox.confirm(`确认删除计量器具编号为"${row.code}"的检定记录吗?`, "删除确认", {
        confirmButtonText: "确认",
        cancelButtonText: "取消",
        type: "warning",
    })
        .then(() => {
            ledgerRecordDelete([row.id]).then(() => {
                ElMessage.success("删除成功");
                getList();
            }).catch(() => {
                ElMessage.error("删除失败");
            });
        })
        .catch(() => {
            proxy.$modal.msg("已取消删除");
        });
};
// å¯¼å‡º
const handleOut = () => {
    ElMessageBox.confirm("选中的内容将被导出,是否确认导出?", "导出", {
src/views/equipmentManagement/inspectionManagement/components/formDia.vue
@@ -5,15 +5,8 @@
      <el-form ref="formRef" :model="form" :rules="rules" label-width="120px">
        <el-row>
          <el-col :span="12">
            <el-form-item label="设备名称" prop="taskId">
              <el-select v-model="form.taskId" @change="setDeviceModel">
                <el-option
                  v-for="(item, index) in deviceOptions"
                  :key="index"
                  :label="item.deviceName"
                  :value="item.id"
                ></el-option>
              </el-select>
            <el-form-item label="巡检任务" prop="taskName">
                            <el-input v-model="form.taskName" placeholder="请输入巡检任务" />
            </el-form-item>
          </el-col>
          <el-col :span="12">
@@ -30,6 +23,18 @@
          <el-col :span="12">
            <el-form-item label="备注" prop="remarks">
              <el-input v-model="form.remarks" placeholder="请输入备注" type="textarea" />
            </el-form-item>
          </el-col>
          <el-col :span="12">
            <el-form-item label="登记时间" prop="dateStr">
              <el-date-picker
                v-model="form.dateStr"
                type="date"
                placeholder="选择登记日期"
                format="YYYY-MM-DD"
                value-format="YYYY-MM-DD"
                style="width: 100%"
              />
            </el-form-item>
          </el-col>
        </el-row>
@@ -116,7 +121,7 @@
const deviceOptions = ref([]);
const data = reactive({
  form: {
    taskId: undefined,
        taskName: undefined,
    taskName: undefined,
    inspector: '',
    inspectorIds: '',
@@ -124,11 +129,13 @@
    frequencyType: '',
    frequencyDetail: '',
    week: '',
    time: ''
    time: '',
        dateStr: ''
  },
  rules: {
    taskId: [{ required: true, message: "请选择设备", trigger: "change" },],
        taskName: [{ required: true, message: "请选择设备", trigger: "blur" },],
    inspector: [{ required: true, message: "请输入巡检人", trigger: "blur" },],
        dateStr: [{ required: true, message: "请选择登记时间", trigger: "change" }]
  }
})
const { form, rules } = toRefs(data)
@@ -165,11 +172,6 @@
  if (type === 'edit' && row) {
    form.value = {...row}
    form.value.inspector = form.value.inspectorIds.split(',').map(Number)
    // å¦‚果有设备ID,自动设置设备信息
    if (form.value.taskId) {
      setDeviceModel(form.value.taskId);
    }
  }
}
@@ -187,15 +189,15 @@
  }
  // é‡ç½®è¡¨å•数据确保设备信息正确重置
  form.value = {
    taskId: undefined,
    taskName: undefined,
        taskName: '',
    inspector: '',
    inspectorIds: '',
    remarks: '',
    frequencyType: '',
    frequencyDetail: '',
    week: '',
    time: ''
    time: '',
        dateStr: ''
  }
}
@@ -204,19 +206,27 @@
  proxy.$refs["formRef"].validate(async valid => {
    if (valid) {
      try {
        form.value.inspectorIds = form.value.inspector.join(',')
        delete form.value.inspector
        // åˆ›å»ºæäº¤æ•°æ®çš„副本
        const submitData = {...form.value}
        
        if (form.value.frequencyType === 'WEEKLY') {
        submitData.inspectorIds = submitData.inspector.join(',')
        delete submitData.inspector
        // ç¼–辑模式下不传递登记时间
        if (operationType.value === 'edit') {
          delete submitData.createTime
        }
        if (submitData.frequencyType === 'WEEKLY') {
          let frequencyDetail = ''
          frequencyDetail = form.value.week + ',' + form.value.time
          form.value.frequencyDetail = frequencyDetail
          frequencyDetail = submitData.week + ',' + submitData.time
          submitData.frequencyDetail = frequencyDetail
        }
        
        let res = await userStore.getInfo()
        form.value.registrantId = res.user.userId
        submitData.registrantId = res.user.userId
        
        await addOrEditTimingTask(form.value)
        await addOrEditTimingTask(submitData)
        cancel()
        proxy.$modal.msgSuccess('提交成功')
      } catch (error) {
src/views/equipmentManagement/inspectionManagement/index.vue
@@ -160,7 +160,7 @@
    }
  },
  { prop: "registrant", label: "登记人", minWidth: 100 },
  { prop: "createTime", label: "登记日期", minWidth: 100 },
  { prop: "dateStr", label: "登记日期", minWidth: 100 },
]);
// æ“ä½œåˆ—配置
src/views/inventoryManagement/dispatchLog/index.vue
@@ -69,75 +69,75 @@
                </div>
            </el-tab-pane>
            <el-tab-pane label="采购出库" name="purchase">
                <div class="search_form">
                    <div>
<!--                        <span class="search_title">供应商名称:</span>-->
<!--                        <el-input-->
<!--                            v-model="searchForm.supplierName"-->
<!--                            style="width: 240px"-->
<!--                            placeholder="请输入"-->
<!--                            @change="handleQuery"-->
<!--            <el-tab-pane label="采购出库" name="purchase">-->
<!--                <div class="search_form">-->
<!--                    <div>-->
<!--&lt;!&ndash;                        <span class="search_title">供应商名称:</span>&ndash;&gt;-->
<!--&lt;!&ndash;                        <el-input&ndash;&gt;-->
<!--&lt;!&ndash;                            v-model="searchForm.supplierName"&ndash;&gt;-->
<!--&lt;!&ndash;                            style="width: 240px"&ndash;&gt;-->
<!--&lt;!&ndash;                            placeholder="请输入"&ndash;&gt;-->
<!--&lt;!&ndash;                            @change="handleQuery"&ndash;&gt;-->
<!--&lt;!&ndash;                            clearable&ndash;&gt;-->
<!--&lt;!&ndash;                            prefix-icon="Search"&ndash;&gt;-->
<!--&lt;!&ndash;                        />&ndash;&gt;-->
<!--                        <span class="search_title ml10">出库日期:</span>-->
<!--                        <el-date-picker-->
<!--                            v-model="searchForm.timeStr"-->
<!--                            type="date"-->
<!--                            placeholder="请选择日期"-->
<!--                            value-format="YYYY-MM-DD"-->
<!--                            format="YYYY-MM-DD"-->
<!--                            clearable-->
<!--                            prefix-icon="Search"-->
<!--                            @change="handleQuery"-->
<!--                        />-->
                        <span class="search_title ml10">出库日期:</span>
                        <el-date-picker
                            v-model="searchForm.timeStr"
                            type="date"
                            placeholder="请选择日期"
                            value-format="YYYY-MM-DD"
                            format="YYYY-MM-DD"
                            clearable
                            @change="handleQuery"
                        />
                        <el-button type="primary" @click="handleQuery" style="margin-left: 10px">搜索</el-button>
                    </div>
                    <div>
                        <el-button @click="handleOut">导出</el-button>
                        <el-button type="danger" plain @click="handleDelete">删除</el-button>
                        <el-button type="primary" plain @click="handlePrint">打印</el-button>
                    </div>
                </div>
                <div class="table_list">
                    <el-table
                        :data="tableData"
                        border
                        v-loading="tableLoading"
                        @selection-change="handleSelectionChange"
                        :expand-row-keys="expandedRowKeys"
                        :row-key="(row) => row.id"
                        show-summary
                        style="width: 100%"
                        :summary-method="summarizeMainTable"
                        height="calc(100vh - 18.5em)"
                    >
                        <el-table-column align="center" type="selection" width="55" />
                        <el-table-column align="center" label="序号" type="index" width="60" />
                        <el-table-column label="出库日期" prop="createTime" min-width="120" show-overflow-tooltip />
<!--                        <el-table-column label="供应商名称" prop="supplierName" width="250" show-overflow-tooltip />-->
                        <el-table-column label="产品大类" prop="productCategory" show-overflow-tooltip />
                        <el-table-column label="规格型号" prop="specificationModel" show-overflow-tooltip />
                        <el-table-column label="单位" prop="unit" width="80" show-overflow-tooltip />
                        <el-table-column label="出库数量" prop="inboundNum" width="100" show-overflow-tooltip />
<!--                        <el-table-column label="含税单价(元)" prop="taxInclusiveUnitPrice" width="100" show-overflow-tooltip />-->
<!--                        <el-table-column label="含税总价(元)" prop="taxInclusiveTotalPrice" width="100" show-overflow-tooltip />-->
<!--                        <el-table-column label="税率(%)" prop="taxRate" width="100" show-overflow-tooltip />-->
<!--                        <el-table-column label="不含税总价(元)" prop="taxExclusiveTotalPrice" width="180" show-overflow-tooltip />-->
                        <el-table-column label="出库人" prop="createBy" width="80" show-overflow-tooltip />
                    </el-table>
                    <pagination
                        v-show="total > 0"
                        :total="total"
                        layout="total, sizes, prev, pager, next, jumper"
                        :page="page.current"
                        :limit="page.size"
                        @pagination="paginationChange"
                    />
                </div>
            </el-tab-pane>
<!--                        <el-button type="primary" @click="handleQuery" style="margin-left: 10px">搜索</el-button>-->
<!--                    </div>-->
<!--                    <div>-->
<!--                        <el-button @click="handleOut">导出</el-button>-->
<!--                        <el-button type="danger" plain @click="handleDelete">删除</el-button>-->
<!--                        <el-button type="primary" plain @click="handlePrint">打印</el-button>-->
<!--                    </div>-->
<!--                </div>-->
<!--                <div class="table_list">-->
<!--                    <el-table-->
<!--                        :data="tableData"-->
<!--                        border-->
<!--                        v-loading="tableLoading"-->
<!--                        @selection-change="handleSelectionChange"-->
<!--                        :expand-row-keys="expandedRowKeys"-->
<!--                        :row-key="(row) => row.id"-->
<!--                        show-summary-->
<!--                        style="width: 100%"-->
<!--                        :summary-method="summarizeMainTable"-->
<!--                        height="calc(100vh - 18.5em)"-->
<!--                    >-->
<!--                        <el-table-column align="center" type="selection" width="55" />-->
<!--                        <el-table-column align="center" label="序号" type="index" width="60" />-->
<!--                        <el-table-column label="出库日期" prop="createTime" min-width="120" show-overflow-tooltip />-->
<!--&lt;!&ndash;                        <el-table-column label="供应商名称" prop="supplierName" width="250" show-overflow-tooltip />&ndash;&gt;-->
<!--                        <el-table-column label="产品大类" prop="productCategory" show-overflow-tooltip />-->
<!--                        <el-table-column label="规格型号" prop="specificationModel" show-overflow-tooltip />-->
<!--                        <el-table-column label="单位" prop="unit" width="80" show-overflow-tooltip />-->
<!--                        <el-table-column label="出库数量" prop="inboundNum" width="100" show-overflow-tooltip />-->
<!--&lt;!&ndash;                        <el-table-column label="含税单价(元)" prop="taxInclusiveUnitPrice" width="100" show-overflow-tooltip />&ndash;&gt;-->
<!--&lt;!&ndash;                        <el-table-column label="含税总价(元)" prop="taxInclusiveTotalPrice" width="100" show-overflow-tooltip />&ndash;&gt;-->
<!--&lt;!&ndash;                        <el-table-column label="税率(%)" prop="taxRate" width="100" show-overflow-tooltip />&ndash;&gt;-->
<!--&lt;!&ndash;                        <el-table-column label="不含税总价(元)" prop="taxExclusiveTotalPrice" width="180" show-overflow-tooltip />&ndash;&gt;-->
<!--                        <el-table-column label="出库人" prop="createBy" width="80" show-overflow-tooltip />-->
<!--                    </el-table>-->
<!--                    <pagination-->
<!--                        v-show="total > 0"-->
<!--                        :total="total"-->
<!--                        layout="total, sizes, prev, pager, next, jumper"-->
<!--                        :page="page.current"-->
<!--                        :limit="page.size"-->
<!--                        @pagination="paginationChange"-->
<!--                    />-->
<!--                </div>-->
<!--            </el-tab-pane>-->
            <el-tab-pane label="自定义出库" name="manual">
            <el-tab-pane label="成品出库" name="manual">
                <div class="search_form">
                    <div>
<!--                        <span class="search_title">供应商名称:</span>-->
src/views/inventoryManagement/issueManagement/index.vue
@@ -51,58 +51,58 @@
        </div>
      </el-tab-pane>
      <el-tab-pane label="采购出库" name="purchase">
        <div class="search_form">
          <div>
<!--            <span class="search_title">供应商名称:</span>-->
<!--            <el-input v-model="searchForm.supplierName" style="width: 240px" placeholder="请输入" @change="handleQuery"-->
<!--              clearable prefix-icon="Search" />-->
            <span class="search_title ml10">入库日期:</span>
            <el-date-picker
              v-model="searchForm.timeStr"
              type="date"
              placeholder="请选择日期"
              value-format="YYYY-MM-DD"
              format="YYYY-MM-DD"
              clearable
              @change="handleQuery"
            />
            <el-button type="primary" @click="handleQuery" style="margin-left: 10px">搜索</el-button>
          </div>
          <div>
            <el-button @click="handleOut">导出</el-button>
          </div>
        </div>
        <div class="table_list">
          <el-table :data="tableData" border v-loading="tableLoading" @selection-change="handleSelectionChange"
            :expand-row-keys="expandedRowKeys" :row-key="row => row.id" show-summary style="width: 100%"
            :summary-method="summarizeMainTable" height="calc(100vh - 18.5em)">
            <el-table-column align="center" type="selection" width="55" />
            <el-table-column align="center" label="序号" type="index" width="60" />
            <el-table-column label="入库时间" prop="createTime" width="100" show-overflow-tooltip />
            <el-table-column label="入库批次" prop="inboundBatches" width="160" show-overflow-tooltip />
<!--            <el-table-column label="供应商名称" prop="supplierName" width="240" show-overflow-tooltip />-->
            <el-table-column label="产品大类" prop="productCategory" show-overflow-tooltip />
            <el-table-column label="规格型号" prop="specificationModel" show-overflow-tooltip />
            <el-table-column label="单位" prop="unit" width="70" show-overflow-tooltip />
            <el-table-column label="入库数量" prop="inboundNum" width="90" show-overflow-tooltip />
<!--            <el-table-column label="含税单价" prop="taxInclusiveUnitPrice" width="100" show-overflow-tooltip />-->
<!--            <el-table-column label="含税总价" prop="taxInclusiveTotalPrice" width="100" show-overflow-tooltip />-->
<!--            <el-table-column label="税率(%)" prop="taxRate" width="80" show-overflow-tooltip />-->
<!--            <el-table-column label="不含税总价" prop="taxExclusiveTotalPrice" width="100" show-overflow-tooltip />-->
            <el-table-column label="入库人" prop="createBy" width="80" show-overflow-tooltip />
            <el-table-column fixed="right" label="操作" min-width="60" align="center">
              <template #default="scope">
                <el-button link type="primary" size="small" @click="openForm(scope.row);">领用</el-button>
              </template>
            </el-table-column>
          </el-table>
          <pagination v-show="total > 0" :total="total" layout="total, sizes, prev, pager, next, jumper"
            :page="page.current" :limit="page.size" @pagination="paginationChange" />
        </div>
      </el-tab-pane>
<!--      <el-tab-pane label="采购出库" name="purchase">-->
<!--        <div class="search_form">-->
<!--          <div>-->
<!--&lt;!&ndash;            <span class="search_title">供应商名称:</span>&ndash;&gt;-->
<!--&lt;!&ndash;            <el-input v-model="searchForm.supplierName" style="width: 240px" placeholder="请输入" @change="handleQuery"&ndash;&gt;-->
<!--&lt;!&ndash;              clearable prefix-icon="Search" />&ndash;&gt;-->
<!--            <span class="search_title ml10">入库日期:</span>-->
<!--            <el-date-picker-->
<!--              v-model="searchForm.timeStr"-->
<!--              type="date"-->
<!--              placeholder="请选择日期"-->
<!--              value-format="YYYY-MM-DD"-->
<!--              format="YYYY-MM-DD"-->
<!--              clearable-->
<!--              @change="handleQuery"-->
<!--            />-->
<!--            <el-button type="primary" @click="handleQuery" style="margin-left: 10px">搜索</el-button>-->
<!--          </div>-->
<!--          <div>-->
<!--            <el-button @click="handleOut">导出</el-button>-->
<!--          </div>-->
<!--        </div>-->
<!--        <div class="table_list">-->
<!--          <el-table :data="tableData" border v-loading="tableLoading" @selection-change="handleSelectionChange"-->
<!--            :expand-row-keys="expandedRowKeys" :row-key="row => row.id" show-summary style="width: 100%"-->
<!--            :summary-method="summarizeMainTable" height="calc(100vh - 18.5em)">-->
<!--            <el-table-column align="center" type="selection" width="55" />-->
<!--            <el-table-column align="center" label="序号" type="index" width="60" />-->
<!--            <el-table-column label="入库时间" prop="createTime" width="100" show-overflow-tooltip />-->
<!--            <el-table-column label="入库批次" prop="inboundBatches" width="160" show-overflow-tooltip />-->
<!--&lt;!&ndash;            <el-table-column label="供应商名称" prop="supplierName" width="240" show-overflow-tooltip />&ndash;&gt;-->
<!--            <el-table-column label="产品大类" prop="productCategory" show-overflow-tooltip />-->
<!--            <el-table-column label="规格型号" prop="specificationModel" show-overflow-tooltip />-->
<!--            <el-table-column label="单位" prop="unit" width="70" show-overflow-tooltip />-->
<!--            <el-table-column label="入库数量" prop="inboundNum" width="90" show-overflow-tooltip />-->
<!--&lt;!&ndash;            <el-table-column label="含税单价" prop="taxInclusiveUnitPrice" width="100" show-overflow-tooltip />&ndash;&gt;-->
<!--&lt;!&ndash;            <el-table-column label="含税总价" prop="taxInclusiveTotalPrice" width="100" show-overflow-tooltip />&ndash;&gt;-->
<!--&lt;!&ndash;            <el-table-column label="税率(%)" prop="taxRate" width="80" show-overflow-tooltip />&ndash;&gt;-->
<!--&lt;!&ndash;            <el-table-column label="不含税总价" prop="taxExclusiveTotalPrice" width="100" show-overflow-tooltip />&ndash;&gt;-->
<!--            <el-table-column label="入库人" prop="createBy" width="80" show-overflow-tooltip />-->
<!--            <el-table-column fixed="right" label="操作" min-width="60" align="center">-->
<!--              <template #default="scope">-->
<!--                <el-button link type="primary" size="small" @click="openForm(scope.row);">领用</el-button>-->
<!--              </template>-->
<!--            </el-table-column>-->
<!--          </el-table>-->
<!--          <pagination v-show="total > 0" :total="total" layout="total, sizes, prev, pager, next, jumper"-->
<!--            :page="page.current" :limit="page.size" @pagination="paginationChange" />-->
<!--        </div>-->
<!--      </el-tab-pane>-->
      <el-tab-pane label="自定义出库" name="manual">
      <el-tab-pane label="成品出库" name="manual">
        <div class="search_form">
          <div>
<!--            <span class="search_title">供应商名称:</span>-->
src/views/inventoryManagement/receiptManagement/index.vue
@@ -46,60 +46,60 @@
        </div>
      </el-tab-pane>
      
      <el-tab-pane label="采购入库" name="purchase">
        <div class="search_form">
          <div>
<!--            <span class="search_title">供应商名称:</span>-->
<!--            <el-input v-model="searchForm.supplierName" style="width: 240px" placeholder="请输入" @change="handleQuery"-->
<!--              clearable prefix-icon="Search" />-->
            <span class="search_title ml10">入库日期:</span>
            <el-date-picker
              v-model="searchForm.timeStr"
              type="date"
              placeholder="请选择日期"
              value-format="YYYY-MM-DD"
              format="YYYY-MM-DD"
              clearable
              @change="handleQuery"
            />
            <el-button type="primary" @click="handleQuery" style="margin-left: 10px">搜索</el-button>
          </div>
          <div>
            <el-button type="primary" @click="openForm('add', 'purchase')">新增入库</el-button>
            <el-button @click="handleOut">导出</el-button>
            <el-button type="danger" plain @click="handleDelete">删除</el-button>
          </div>
        </div>
        <div class="table_list">
          <el-table :data="tableData" border v-loading="tableLoading" @selection-change="handleSelectionChange"
            :expand-row-keys="expandedRowKeys" :row-key="row => row.id" show-summary style="width: 100%"
            :summary-method="summarizeMainTable" height="calc(100vh - 18.5em)">
            <el-table-column align="center" type="selection" width="55" />
            <el-table-column align="center" label="序号" type="index" width="60" />
            <el-table-column label="入库时间" prop="createTime" width="100" show-overflow-tooltip />
            <el-table-column label="入库批次" prop="inboundBatches" width="160" show-overflow-tooltip />
<!--            <el-table-column label="供应商名称" prop="supplierName" width="240" show-overflow-tooltip />-->
            <el-table-column label="产品大类" prop="productCategory" show-overflow-tooltip />
            <el-table-column label="规格型号" prop="specificationModel" show-overflow-tooltip />
            <el-table-column label="单位" prop="unit" width="70" show-overflow-tooltip />
            <el-table-column label="入库数量" prop="inboundNum" width="90" show-overflow-tooltip />
<!--            <el-table-column label="含税单价" prop="taxInclusiveUnitPrice" width="100" show-overflow-tooltip />-->
<!--            <el-table-column label="含税总价" prop="taxInclusiveTotalPrice" width="100" show-overflow-tooltip />-->
<!--            <el-table-column label="税率(%)" prop="taxRate" width="80" show-overflow-tooltip />-->
<!--            <el-table-column label="不含税总价" prop="taxExclusiveTotalPrice" width="100" show-overflow-tooltip />-->
            <el-table-column label="入库人" prop="createBy" width="80" show-overflow-tooltip />
            <el-table-column fixed="right" label="操作" min-width="60" align="center">
              <template #default="scope">
                <el-button link type="primary" size="small" @click="openForm('edit', scope.row, 'purchase');">编辑</el-button>
              </template>
            </el-table-column>
          </el-table>
          <pagination v-show="total > 0" :total="total" layout="total, sizes, prev, pager, next, jumper"
            :page="page.current" :limit="page.size" @pagination="paginationChange" />
        </div>
      </el-tab-pane>
<!--      <el-tab-pane label="采购入库" name="purchase">-->
<!--        <div class="search_form">-->
<!--          <div>-->
<!--&lt;!&ndash;            <span class="search_title">供应商名称:</span>&ndash;&gt;-->
<!--&lt;!&ndash;            <el-input v-model="searchForm.supplierName" style="width: 240px" placeholder="请输入" @change="handleQuery"&ndash;&gt;-->
<!--&lt;!&ndash;              clearable prefix-icon="Search" />&ndash;&gt;-->
<!--            <span class="search_title ml10">入库日期:</span>-->
<!--            <el-date-picker-->
<!--              v-model="searchForm.timeStr"-->
<!--              type="date"-->
<!--              placeholder="请选择日期"-->
<!--              value-format="YYYY-MM-DD"-->
<!--              format="YYYY-MM-DD"-->
<!--              clearable-->
<!--              @change="handleQuery"-->
<!--            />-->
<!--            <el-button type="primary" @click="handleQuery" style="margin-left: 10px">搜索</el-button>-->
<!--          </div>-->
<!--          <div>-->
<!--            <el-button type="primary" @click="openForm('add', 'purchase')">新增入库</el-button>-->
<!--            <el-button @click="handleOut">导出</el-button>-->
<!--            <el-button type="danger" plain @click="handleDelete">删除</el-button>-->
<!--          </div>-->
<!--        </div>-->
<!--        <div class="table_list">-->
<!--          <el-table :data="tableData" border v-loading="tableLoading" @selection-change="handleSelectionChange"-->
<!--            :expand-row-keys="expandedRowKeys" :row-key="row => row.id" show-summary style="width: 100%"-->
<!--            :summary-method="summarizeMainTable" height="calc(100vh - 18.5em)">-->
<!--            <el-table-column align="center" type="selection" width="55" />-->
<!--            <el-table-column align="center" label="序号" type="index" width="60" />-->
<!--            <el-table-column label="入库时间" prop="createTime" width="100" show-overflow-tooltip />-->
<!--            <el-table-column label="入库批次" prop="inboundBatches" width="160" show-overflow-tooltip />-->
<!--&lt;!&ndash;            <el-table-column label="供应商名称" prop="supplierName" width="240" show-overflow-tooltip />&ndash;&gt;-->
<!--            <el-table-column label="产品大类" prop="productCategory" show-overflow-tooltip />-->
<!--            <el-table-column label="规格型号" prop="specificationModel" show-overflow-tooltip />-->
<!--            <el-table-column label="单位" prop="unit" width="70" show-overflow-tooltip />-->
<!--            <el-table-column label="入库数量" prop="inboundNum" width="90" show-overflow-tooltip />-->
<!--&lt;!&ndash;            <el-table-column label="含税单价" prop="taxInclusiveUnitPrice" width="100" show-overflow-tooltip />&ndash;&gt;-->
<!--&lt;!&ndash;            <el-table-column label="含税总价" prop="taxInclusiveTotalPrice" width="100" show-overflow-tooltip />&ndash;&gt;-->
<!--&lt;!&ndash;            <el-table-column label="税率(%)" prop="taxRate" width="80" show-overflow-tooltip />&ndash;&gt;-->
<!--&lt;!&ndash;            <el-table-column label="不含税总价" prop="taxExclusiveTotalPrice" width="100" show-overflow-tooltip />&ndash;&gt;-->
<!--            <el-table-column label="入库人" prop="createBy" width="80" show-overflow-tooltip />-->
<!--            <el-table-column fixed="right" label="操作" min-width="60" align="center">-->
<!--              <template #default="scope">-->
<!--                <el-button link type="primary" size="small" @click="openForm('edit', scope.row, 'purchase');">编辑</el-button>-->
<!--              </template>-->
<!--            </el-table-column>-->
<!--          </el-table>-->
<!--          <pagination v-show="total > 0" :total="total" layout="total, sizes, prev, pager, next, jumper"-->
<!--            :page="page.current" :limit="page.size" @pagination="paginationChange" />-->
<!--        </div>-->
<!--      </el-tab-pane>-->
      
      <el-tab-pane label="自定义入库" name="manual">
      <el-tab-pane label="成品入库" name="manual">
        <div class="search_form">
          <div>
<!--            <span class="search_title">供应商名称:</span>-->
src/views/inventoryManagement/stockManagement/index.vue
@@ -55,62 +55,54 @@
        </div>
      </el-tab-pane>
      <el-tab-pane label="采购入库" name="purchase">
        <div class="search_form">
          <div>
<!--            <span class="search_title">供应商名称:</span>-->
<!--            <el-input v-model="searchForm.supplierName" style="width: 240px" placeholder="请输入" @change="handleQuery"-->
<!--              clearable prefix-icon="Search" />-->
            <span class="search_title ml10">入库日期:</span>
            <el-date-picker
              v-model="searchForm.timeStr"
              type="date"
              placeholder="请选择日期"
              value-format="YYYY-MM-DD"
              format="YYYY-MM-DD"
              clearable
              @change="handleQuery"
            />
            <el-button type="primary" @click="handleQuery" style="margin-left: 10px">搜索</el-button>
          </div>
          <div>
            <el-button @click="handleOut">导出</el-button>
            <el-button type="danger" plain @click="handleDelete">删除</el-button>
          </div>
        </div>
        <div class="table_list">
          <el-table :data="tableData" border v-loading="tableLoading" @selection-change="handleSelectionChange"
            :expand-row-keys="expandedRowKeys" :row-key="row => row.id" show-summary style="width: 100%"
            :row-class-name="tableRowClassName"
            :summary-method="summarizeMainTable" height="calc(100vh - 18.5em)">
            <el-table-column align="center" type="selection" width="55" />
            <el-table-column align="center" label="序号" type="index" width="60" />
            <el-table-column label="入库日期" prop="createTime" width="100" show-overflow-tooltip />
<!--            <el-table-column label="供应商名称" prop="supplierName" width="240" show-overflow-tooltip />-->
            <el-table-column label="产品大类" prop="productCategory" show-overflow-tooltip />
            <el-table-column label="规格型号" prop="specificationModel" show-overflow-tooltip />
            <el-table-column label="单位" prop="unit" width="80" show-overflow-tooltip />
                        <el-table-column label="库存数量" prop="inboundNum" width="100" show-overflow-tooltip />
                        <el-table-column label="已出库数量" prop="totalInboundNum" show-overflow-tooltip />
                        <el-table-column label="待出库数量" prop="inboundNum0" show-overflow-tooltip />
            <el-table-column label="库存预警数量" prop="warnNum" width="130" show-overflow-tooltip />
<!--            <el-table-column label="含税单价" prop="taxInclusiveUnitPrice" width="100" show-overflow-tooltip />-->
<!--            <el-table-column label="含税总价" prop="taxInclusiveTotalPrice" width="100" show-overflow-tooltip />-->
<!--            <el-table-column label="税率(%)" prop="taxRate" width="100" show-overflow-tooltip />-->
<!--            <el-table-column label="不含税总价" prop="taxExclusiveTotalPrice" width="100" show-overflow-tooltip />-->
            <el-table-column label="入库人" prop="createBy" width="80" show-overflow-tooltip />
            <el-table-column fixed="right" label="操作" min-width="60" align="center">
              <template #default="scope">
                <el-button link type="primary" size="small" @click="openForm('edit', scope.row);">编辑</el-button>
              </template>
            </el-table-column>
          </el-table>
          <pagination v-show="total > 0" :total="total" layout="total, sizes, prev, pager, next, jumper"
            :page="page.current" :limit="page.size" @pagination="paginationChange" />
        </div>
      </el-tab-pane>
<!--      <el-tab-pane label="采购入库" name="purchase">-->
<!--        <div class="search_form">-->
<!--          <div>-->
<!--            <span class="search_title ml10">入库日期:</span>-->
<!--            <el-date-picker-->
<!--              v-model="searchForm.timeStr"-->
<!--              type="date"-->
<!--              placeholder="请选择日期"-->
<!--              value-format="YYYY-MM-DD"-->
<!--              format="YYYY-MM-DD"-->
<!--              clearable-->
<!--              @change="handleQuery"-->
<!--            />-->
<!--            <el-button type="primary" @click="handleQuery" style="margin-left: 10px">搜索</el-button>-->
<!--          </div>-->
<!--          <div>-->
<!--            <el-button @click="handleOut">导出</el-button>-->
<!--            <el-button type="danger" plain @click="handleDelete">删除</el-button>-->
<!--          </div>-->
<!--        </div>-->
<!--        <div class="table_list">-->
<!--          <el-table :data="tableData" border v-loading="tableLoading" @selection-change="handleSelectionChange"-->
<!--            :expand-row-keys="expandedRowKeys" :row-key="row => row.id" show-summary style="width: 100%"-->
<!--            :row-class-name="tableRowClassName"-->
<!--            :summary-method="summarizeMainTable" height="calc(100vh - 18.5em)">-->
<!--            <el-table-column align="center" type="selection" width="55" />-->
<!--            <el-table-column align="center" label="序号" type="index" width="60" />-->
<!--            <el-table-column label="入库日期" prop="createTime" width="100" show-overflow-tooltip />-->
<!--            <el-table-column label="产品大类" prop="productCategory" show-overflow-tooltip />-->
<!--            <el-table-column label="规格型号" prop="specificationModel" show-overflow-tooltip />-->
<!--            <el-table-column label="单位" prop="unit" width="80" show-overflow-tooltip />-->
<!--                        <el-table-column label="库存数量" prop="inboundNum" width="100" show-overflow-tooltip />-->
<!--                        <el-table-column label="已出库数量" prop="totalInboundNum" show-overflow-tooltip />-->
<!--                        <el-table-column label="待出库数量" prop="inboundNum0" show-overflow-tooltip />-->
<!--            <el-table-column label="库存预警数量" prop="warnNum" width="130" show-overflow-tooltip />-->
<!--            <el-table-column label="入库人" prop="createBy" width="80" show-overflow-tooltip />-->
<!--            <el-table-column fixed="right" label="操作" min-width="60" align="center">-->
<!--              <template #default="scope">-->
<!--                <el-button link type="primary" size="small" @click="openForm('edit', scope.row);">编辑</el-button>-->
<!--              </template>-->
<!--            </el-table-column>-->
<!--          </el-table>-->
<!--          <pagination v-show="total > 0" :total="total" layout="total, sizes, prev, pager, next, jumper"-->
<!--            :page="page.current" :limit="page.size" @pagination="paginationChange" />-->
<!--        </div>-->
<!--      </el-tab-pane>-->
      <el-tab-pane label="自定义入库" name="manual">
      <el-tab-pane label="成品入库" name="manual">
        <div class="search_form">
          <div>
<!--            <span class="search_title">供应商名称:</span>-->
src/views/procurementManagement/invoiceEntry/components/Modal.vue
@@ -33,16 +33,7 @@
            />
          </el-form-item>
        </el-col>
        <el-col :span="12">
          <el-form-item label="项目名称:" prop="projectName">
            <el-input
              v-model="form.projectName"
              placeholder="自动填充"
              clearable
              disabled
            />
          </el-form-item>
        </el-col>
        <el-col :span="12">
          <el-form-item label="发票号:" prop="invoiceNumber">
            <el-input
@@ -84,22 +75,6 @@
          </el-form-item>
        </el-col>
        <el-col :span="12">
          <el-form-item label="上传附件">
            <FileUpload
              :showTip="false"
              accept="*"
              :autoUpload="true"
              :action="action"
              :headers="{
                Authorization: 'Bearer ' + getToken(),
              }"
              :limit="10"
              @success="uploadSuccess"
              @remove="removeFile"
            />
          </el-form-item>
        </el-col>
        <el-col :span="12">
          <el-form-item label="录入日期:" prop="enterDate">
            <el-date-picker
              style="width: 100%"
@@ -111,6 +86,22 @@
            />
          </el-form-item>
        </el-col>
                <el-col :span="12">
                    <el-form-item label="上传附件">
                        <FileUpload
                            :showTip="false"
                            accept="*"
                            :autoUpload="true"
                            :action="action"
                            :headers="{
                Authorization: 'Bearer ' + getToken(),
              }"
                            :limit="10"
                            @success="uploadSuccess"
                            @remove="removeFile"
                        />
                    </el-form-item>
                </el-col>
      </el-row>
      <el-form-item label="产品信息:"> </el-form-item>
      <PIMTable
@@ -184,7 +175,6 @@
  purchaseLedgerNo: undefined, // é‡‡è´­åˆåŒå·
  salesContractNo: undefined, // é”€å”®åˆåŒå·
  supplierName: undefined, // ä¾›åº”商名称
  projectName: undefined, // é¡¹ç›®åç§°
  invoiceNumber: undefined, // å‘票号
  invoiceAmount: undefined, // å‘票金额(元)
  issUerId: userStore.id, // å½•入人
@@ -316,7 +306,6 @@
    const { data: infoData } = await getInfo({ id });
    form.salesContractNo = infoData.salesContractNo;
    form.projectName = infoData.projectName;
    form.supplierName = infoData.supplierName;
    form.productData = infoData.productData;
  } else if (type == "edit") {
@@ -325,7 +314,6 @@
    form.invoiceAmount = data.invoiceAmount;
    form.invoiceNumber = data.invoiceNumber;
    form.salesContractNo = data.salesContractNo;
    form.projectName = data.projectName;
    form.supplierName = data.supplierName;
    form.entryDate = data.entryDate;
    form.productData = data.productData;
@@ -425,7 +413,6 @@
        invoiceNumber: form.invoiceNumber,
        invoiceAmount: form.invoiceAmount,
        salesContractNo: form.salesContractNo,
        projectName: form.projectName,
        productData: form.productData,
        issueDate: form.entryDate,
        issUerId: form.issUerId, // å½•入人id
src/views/procurementManagement/invoiceEntry/index.vue
@@ -28,13 +28,6 @@
              clearable
          />
        </el-form-item>
        <el-form-item label="项目名称">
          <el-input
              v-model="filters.projectName"
              placeholder="请输入项目名称"
              clearable
          />
        </el-form-item>
        <el-form-item>
          <el-button type="primary" @click="getTableData"> æœç´¢ </el-button>
          <el-button @click="resetFilters"> é‡ç½® </el-button>
@@ -141,11 +134,6 @@
      label: "供应商名称",
      prop: "supplierName",
      width:300
    },
    {
      label: "项目名称",
      prop: "projectName",
      width:400
    },
    {
      label: "录入人",
src/views/procurementManagement/paymentEntry/index.vue
@@ -112,7 +112,6 @@
                                    size="small"
                                    @click="saveReceiptPayment(scope.row)"
                                    v-if="scope.row.editType"
                                    :disabled="scope.row.registrant !== userStore.nickName"
                                >保存</el-button
                                >
                                <el-button
@@ -120,7 +119,6 @@
                                    type="primary"
                                    size="small"
                                    @click="handleDelete(scope.row)"
                                    :disabled="scope.row.registrant !== userStore.nickName"
                                >删除</el-button
                                >
                            </template>
src/views/procurementManagement/procurementInvoiceLedger/index.vue
@@ -73,6 +73,14 @@
                <el-dropdown-item :icon="Upload" command="upload">
                  ä¸Šä¼ 
                </el-dropdown-item>
                <el-dropdown-item
                  v-if="row.commonFiles.length !== 0"
                  :icon="Delete"
                  command="delete"
                  style="color: #f56c6c;"
                >
                  åˆ é™¤
                </el-dropdown-item>
              </el-dropdown-menu>
            </template>
          </el-dropdown>
@@ -88,7 +96,6 @@
          <el-button
            type="primary"
            text
                        :disabled="row.issUerId !== userStore.id"
            @click="handleDelete(row)"
          >
            åˆ é™¤
@@ -110,14 +117,16 @@
  Search,
  Upload,
  EditPen,
  Delete,
} from "@element-plus/icons-vue";
import {
    delRegistration,
    productRecordPage,
    productUploadFile,
} from "@/api/procurementManagement/procurementInvoiceLedger.js";
import { delCommonFile } from "@/api/publicApi/commonFile.js";
import { onMounted } from "vue";
import { ElMessageBox } from "element-plus";
import { ElMessageBox, ElMessage } from "element-plus";
import UploadModal from "./Modal/UploadModal.vue";
import EditModal from "./Modal/EditModal.vue";
import useUserStore from "@/store/modules/user.js";
@@ -161,11 +170,6 @@
      label: "销售合同号",
      prop: "salesContractNo",
      width: 150,
    },
    {
      label: "项目名称",
      prop: "projectName",
      width: 240,
    },
    {
      label: "供应商名称",
@@ -305,6 +309,29 @@
      console.log(row.commonFiles);
      openUoload(row.ticketRegistrationId);
      break;
    case "delete":
      // åˆ é™¤æ‰€æœ‰é™„ä»¶
      if (row.commonFiles.length > 0) {
        ElMessageBox.confirm(`确认删除该记录的所有附件吗?`, '提示', {
          confirmButtonText: '确定',
          cancelButtonText: '取消',
          type: 'warning'
        }).then(() => {
          // èŽ·å–æ‰€æœ‰é™„ä»¶çš„ID
          const fileIds = row.commonFiles.map(file => file.id);
          delCommonFile(fileIds).then(() => {
            ElMessage.success('删除成功')
            // åˆ·æ–°æ•°æ®
            getTableData();
          }).catch(() => {
            ElMessage.error('删除失败')
          })
        }).catch(() => {
          ElMessage.info('已取消删除')
        })
      }
      break;
  }
};
src/views/procurementManagement/procurementLedger/index.vue
@@ -21,10 +21,6 @@
            <el-input v-model="searchForm.salesContractNo" placeholder="请输入" clearable prefix-icon="Search"
                      @change="handleQuery" />
          </el-form-item>
          <el-form-item label="项目名称:">
            <el-input v-model="searchForm.projectName" placeholder="请输入" clearable prefix-icon="Search"
                      @change="handleQuery" />
          </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" />
@@ -110,12 +106,6 @@
          label="供应商名称"
          width="240"
          prop="supplierName"
          show-overflow-tooltip
        />
        <el-table-column
          label="项目名称"
          prop="projectName"
          width="420"
          show-overflow-tooltip
        />
        <el-table-column
@@ -205,6 +195,7 @@
              <el-select
                v-model="form.salesLedgerId"
                placeholder="请选择"
                                filterable
                clearable
                @change="salesLedgerChange"
              >
@@ -224,6 +215,7 @@
              <el-select
                v-model="form.supplierId"
                placeholder="请选择"
                                filterable
                clearable
              >
                <el-option
@@ -235,17 +227,6 @@
              </el-select>
            </el-form-item>
          </el-col>
          <el-col :span="12">
            <el-form-item label="项目名称:" prop="projectName">
              <el-input
                v-model="form.projectName"
                placeholder="请输入"
                clearable
              />
            </el-form-item>
          </el-col>
        </el-row>
                <el-row :gutter="30">
                    <el-col :span="12">
                        <el-form-item label="付款方式">
                            <el-input
@@ -255,6 +236,8 @@
                            />
                        </el-form-item>
                    </el-col>
        </el-row>
                <el-row :gutter="30">
                    <el-col :span="12">
                        <el-form-item label="签订日期:" prop="executionDate">
                            <el-date-picker
@@ -638,15 +621,6 @@
        </el-row>
        <el-row :gutter="20">
          <el-col :span="12">
            <el-form-item label="项目名称:" prop="projectName">
              <el-input
                v-model="scanAddForm.projectName"
                placeholder="请输入"
                clearable
              />
            </el-form-item>
          </el-col>
          <el-col :span="12">
            <el-form-item label="合同金额(元):" prop="contractAmount">
              <el-input-number
                v-model="scanAddForm.contractAmount"
@@ -724,11 +698,6 @@
          </el-col>
        </el-row>
        <el-row :gutter="20">
          <el-col :span="12">
            <el-form-item label="项目名称:">
              <el-input v-model="scanForm.projectName" disabled />
            </el-form-item>
          </el-col>
          <el-col :span="12">
            <el-form-item label="扫码时间:">
              <el-input v-model="scanForm.scanTime" disabled />
@@ -852,7 +821,6 @@
    supplierName: "", // ä¾›åº”商名称
    purchaseContractNumber: "", // é‡‡è´­åˆåŒç¼–号
    salesContractNo: "", // é”€å”®åˆåŒç¼–号
    projectName: "", // é¡¹ç›®åç§°
    entryDate: null, // å½•入日期
    entryDateStart: undefined,
    entryDateEnd: undefined,
@@ -860,7 +828,6 @@
  form: {
    purchaseContractNumber: "",
    salesLedgerId: "",
    projectName: "",
    recorderId: "",
    entryDate: "",
    productData: [],
@@ -873,7 +840,6 @@
    purchaseContractNumber: [
      { required: true, message: "请输入", trigger: "blur" },
    ],
    projectName: [{ required: true, message: "请输入", trigger: "blur" }],
    supplierId: [{ required: true, message: "请输入", trigger: "blur" }],
        entryDate: [{ required: true, message: "请选择", trigger: "change" }],
        executionDate: [{ required: true, message: "请选择", trigger: "change" }],
@@ -1405,7 +1371,6 @@
  var index = salesContractList.value.findIndex((item) => item.id == row);
  console.log("index", index);
  if (index > -1) {
    form.value.projectName = salesContractList.value[index].projectName;
    await querygProductInfoByContractNo();
  }
};
@@ -1466,7 +1431,6 @@
  scanContent: "",
  purchaseContractNumber: "",
  supplierName: "",
  projectName: "",
  contractAmount: "",
  paymentMethod: "",
  recorderName: "",
@@ -1475,7 +1439,6 @@
const scanAddRules = {
  purchaseContractNumber: [{ required: true, message: "请输入采购合同号", trigger: "blur" }],
  supplierName: [{ required: true, message: "请输入供应商名称", trigger: "blur" }],
  projectName: [{ required: true, message: "请输入项目名称", trigger: "blur" }],
};
// æ‰«ç ç™»è®°å¯¹è¯æ¡†ç›¸å…³å˜é‡
@@ -1483,7 +1446,6 @@
const scanForm = reactive({
  purchaseContractNumber: "",
  supplierName: "",
  projectName: "",
  scanTime: "",
  scannerName: "",
  scanStatus: "未扫码",
@@ -1499,7 +1461,6 @@
  scanAddForm.scanContent = "";
  scanAddForm.purchaseContractNumber = "";
  scanAddForm.supplierName = "";
  scanAddForm.projectName = "";
  scanAddForm.contractAmount = "";
  scanAddForm.paymentMethod = "";
  scanAddForm.recorderName = userStore.nickName;
@@ -1512,14 +1473,13 @@
  if (!content) return;
  
  // æ¨¡æ‹Ÿè§£æžäºŒç»´ç å†…容,这里可以根据实际需求调整解析逻辑
  // å‡è®¾æ‰«ç å†…容格式为:合同号|供应商|项目|金额|付款方式
  // å‡è®¾æ‰«ç å†…容格式为:合同号|供应商|金额|付款方式
  const parts = content.split('|');
  if (parts.length >= 3) {
  if (parts.length >= 2) {
    scanAddForm.purchaseContractNumber = parts[0] || "";
    scanAddForm.supplierName = parts[1] || "";
    scanAddForm.projectName = parts[2] || "";
    scanAddForm.contractAmount = parts[3] || "";
    scanAddForm.paymentMethod = parts[4] || "";
    scanAddForm.contractAmount = parts[2] || "";
    scanAddForm.paymentMethod = parts[3] || "";
  }
};
@@ -1537,7 +1497,6 @@
      const newData = {
        purchaseContractNumber: scanAddForm.purchaseContractNumber,
        supplierName: scanAddForm.supplierName,
        projectName: scanAddForm.projectName,
        contractAmount: scanAddForm.contractAmount,
        paymentMethod: scanAddForm.paymentMethod,
        recorderName: scanAddForm.recorderName,
@@ -1560,7 +1519,6 @@
const openScanDialog = (row) => {
  scanForm.purchaseContractNumber = row.purchaseContractNumber;
  scanForm.supplierName = row.supplierName;
  scanForm.projectName = row.projectName;
  scanForm.scanTime = getCurrentDateTime();
  scanForm.scannerName = userStore.nickName;
  scanForm.scanStatus = "未扫码";
src/views/reportAnalysis/dataDashboard/index.vue
@@ -54,7 +54,7 @@
        <!-- è´¨é‡ç»Ÿè®¡ -->
                <div class="panel-header">
                    <span class="panel-title">质量统计</span>
                    <span class="panel-title">本周质量统计</span>
                </div>
                <div class="main-panel">
                    <div class="panel-item-customers">
@@ -174,7 +174,7 @@
        </div>
                
                <div class="financial-header">
                    <span class="financial-title">财务分析</span>
                    <span class="financial-title">本周财务分析</span>
                </div>
                <div class="main-panel">
                    <div class="panel-item-customers">
@@ -226,7 +226,7 @@
        <!-- å›žæ¬¾ä¸Žå¼€ç¥¨åˆ†æž -->
         <div class="panel-header">
                    <span class="panel-title">回款与开票分析</span>
                    <span class="panel-title">近一月回款与开票分析</span>
                </div>
        <div class="panel-item-customers" style="padding-top: 60px;">
                    <Echarts ref="chart" :chartStyle="chartStyle" :grid="grid" :legend="lineLegend" :series="lineSeries"
@@ -672,10 +672,10 @@
    getLedgerPage(params).then((res) => {
        equipmentNum.value = res.data.total
    });
    getRepairPage(params).then((res) => {
    getRepairPage({...params, status:0}).then((res) => {
        equipmentRepair.value = res.data.total
    });
    getUpkeepPage(params).then((res) => {
    getUpkeepPage({...params, status:0}).then((res) => {
        equipmentMaintain.value = res.data.total
    });
    measuringInstrumentListPage(params).then((res) => {
@@ -920,7 +920,7 @@
  // ä½¿ç”¨nextTick确保DOM完全渲染后再初始化图表
  nextTick(() => {
    // åˆå§‹åŒ–autofit自适应
    autofit.init({ dh: 1080, dw: 1920, el: '.data-dashboard', resize: true }, false)
    autofit.init({ dh: 800, dw: 1280, el: '.data-dashboard', resize: true }, false)
    
    // æ·»åŠ è‡ªåŠ¨æ»šåŠ¨åŠ¨ç”»æ•ˆæžœ - å®¢æˆ·ä¿¡æ¯åˆ—表
    const contractList = refContractList.value
src/views/salesManagement/invoiceLedger/index.vue
@@ -31,7 +31,6 @@
        <el-table-column align="center" type="selection" width="55" />
        <el-table-column align="center" label="序号" type="index" width="60" />
        <el-table-column label="销售合同号" prop="salesContractNo" show-overflow-tooltip width="180" />
        <el-table-column label="客户合同号" prop="customerContractNo" show-overflow-tooltip width="180" />
        <el-table-column label="客户名称" prop="customerName" show-overflow-tooltip width="240" />
        <el-table-column label="项目" prop="projectName" width="320" />
        <el-table-column label="产品大类" prop="productCategory" width="200" />
@@ -49,7 +48,7 @@
              @click="handleFile(scope.row.commonFiles)">
              æŸ¥çœ‹é™„ä»¶
            </el-button>
            <el-button v-else link type="primary" @click="handleDownload(scope.row)" :disabled="scope.row.invoicePerson !== userStore.nickName">
            <el-button v-else link type="primary" @click="handleDownload(scope.row)">
              ä¸Šä¼ 
            </el-button>
          </template>
@@ -57,7 +56,7 @@
        <el-table-column fixed="right" label="操作" width="150" align="center">
          <template #default="scope">
            <el-button link type="primary" size="small" @click="openForm(scope.row)">编辑</el-button>
            <el-button link type="primary" size="small" @click="delInvoiceLedger(scope.row)" :disabled="scope.row.invoicePerson !== userStore.nickName">删除</el-button>
            <el-button link type="primary" size="small" @click="delInvoiceLedger(scope.row)">删除</el-button>
          </template>
        </el-table-column>
      </el-table>
src/views/salesManagement/invoiceRegistration/index.vue
@@ -12,20 +12,7 @@
            @change="handleQuery"
          />
        </el-form-item>
        <el-form-item label="客户合同号">
          <el-input
            v-model="searchForm.customerContractNo"
            placeholder="请输入客户合同号"
            clearable
          />
        </el-form-item>
        <el-form-item label="项目名称">
          <el-input
            v-model="searchForm.projectName"
            placeholder="请输入项目名称"
            clearable
          />
        </el-form-item>
        <el-form-item>
          <el-checkbox
            v-model="searchForm.status"
@@ -80,7 +67,6 @@
              <el-table-column
                label="规格型号"
                prop="specificationModel"
                width="150"
              />
              <el-table-column label="单位" prop="unit" width="70" />
              <el-table-column label="数量" prop="quantity" width="70" />
@@ -128,27 +114,13 @@
          label="销售合同号"
          prop="salesContractNo"
          show-overflow-tooltip
          width="200"
        />
        <el-table-column
          label="客户合同号"
          prop="customerContractNo"
          width="200"
          show-overflow-tooltip
        />
        <el-table-column
          label="客户名称"
          prop="customerName"
          show-overflow-tooltip
          width="240"
        />
        <el-table-column label="业务员" prop="salesman" show-overflow-tooltip width="90"/>
        <el-table-column
          label="项目名称"
          prop="projectName"
          show-overflow-tooltip
          width="200"
        />
        <el-table-column
          label="合同金额(元)"
          prop="contractAmount"
@@ -220,15 +192,6 @@
            <el-form-item label="业务员:" prop="salesman">
              <el-input
                v-model="form.salesman"
                placeholder="自动填充"
                disabled
              />
            </el-form-item>
          </el-col>
          <el-col :span="12">
            <el-form-item label="项目名称:" prop="projectName">
              <el-input
                v-model="form.projectName"
                placeholder="自动填充"
                disabled
              />
src/views/salesManagement/orderManagement/index.vue
@@ -59,7 +59,6 @@
            Â¥{{ scope.row.amount.toFixed(2) }}
          </template>
        </el-table-column>
        <el-table-column prop="paymentMethod" label="付款方式" width="120" />
        <el-table-column prop="status" label="订单状态" width="100">
          <template #default="scope">
            <el-tag :type="getStatusType(scope.row.status)">
@@ -131,15 +130,6 @@
          </el-col>
        </el-row>
        <el-row :gutter="20">
          <el-col :span="12">
            <el-form-item label="付款方式" prop="paymentMethod">
              <el-select v-model="form.paymentMethod" placeholder="请选择付款方式" style="width: 100%">
                <el-option label="全款到付" value="全款到付"></el-option>
                <el-option label="分期付款" value="分期付款"></el-option>
                <el-option label="月结" value="月结"></el-option>
              </el-select>
            </el-form-item>
          </el-col>
          <el-col :span="12">
            <el-form-item label="订单状态" prop="status">
              <el-select v-model="form.status" placeholder="请选择状态" style="width: 100%">
@@ -246,11 +236,10 @@
  {
    id: 1,
    orderNo: 'ORD202312001',
    customer: '上海科技有限公司',
    salesperson: '陈志强',
    customer: '广州科技公司',
    salesperson: '张三',
    orderDate: '2023-12-01',
    amount: 50000.00,
    paymentMethod: '全款到付',
    status: '待审核',
    remark: '重要客户订单'
  },
@@ -261,7 +250,6 @@
    salesperson: '刘雅婷',
    orderDate: '2023-12-02',
    amount: 35000.00,
    paymentMethod: '分期付款',
    status: '已审核',
    remark: '常规订单'
  },
@@ -272,7 +260,6 @@
    salesperson: '王建国',
    orderDate: '2023-12-03',
    amount: 28000.00,
    paymentMethod: '月结',
    status: '已发货',
    remark: '新客户订单'
  }
@@ -291,7 +278,6 @@
  salesperson: '',
  orderDate: '',
  amount: 0,
  paymentMethod: '',
  status: '待审核',
  remark: ''
})
@@ -301,7 +287,6 @@
  salesperson: [{ required: true, message: '请选择业务员', trigger: 'change' }],
  orderDate: [{ required: true, message: '请选择订单日期', trigger: 'change' }],
  amount: [{ required: true, message: '请输入订单金额', trigger: 'blur' }],
  paymentMethod: [{ required: true, message: '请选择付款方式', trigger: 'change' }],
  status: [{ required: true, message: '请选择状态', trigger: 'change' }]
}
@@ -360,7 +345,6 @@
  form.salesperson = ''
  form.orderDate = ''
  form.amount = 0
  form.paymentMethod = ''
  form.status = '待审核'
  form.remark = ''
  dialogVisible.value = true
src/views/salesManagement/paymentShipping/index.vue
@@ -60,7 +60,6 @@
            Â¥{{ scope.row.paidAmount }}
          </template>
        </el-table-column>
        <el-table-column prop="paymentMethod" label="付款方式" width="120" />
        <el-table-column prop="paymentStatus" label="付款状态" width="100">
          <template #default="scope">
            <el-tag :type="getPaymentStatusType(scope.row.paymentStatus)">
@@ -120,15 +119,6 @@
          <el-col :span="12">
            <el-form-item label="订单金额" prop="orderAmount">
              <el-input-number v-model="form.orderAmount" :precision="2" :min="0" style="width: 100%"></el-input-number>
            </el-form-item>
          </el-col>
          <el-col :span="12">
            <el-form-item label="付款方式" prop="paymentMethod">
              <el-select v-model="form.paymentMethod" placeholder="请选择付款方式" style="width: 100%">
                <el-option label="全款到付" value="全款到付"></el-option>
                <el-option label="分期付款" value="分期付款"></el-option>
                <el-option label="月结" value="月结"></el-option>
              </el-select>
            </el-form-item>
          </el-col>
        </el-row>
@@ -201,14 +191,6 @@
        </el-form-item>
        <el-form-item label="付款金额" prop="paymentAmount">
          <el-input-number v-model="paymentAmount" :precision="2" :min="0" :max="currentRecord.orderAmount" style="width: 100%"></el-input-number>
        </el-form-item>
        <el-form-item label="付款方式" prop="paymentMethod">
          <el-select v-model="paymentMethod" placeholder="请选择付款方式" style="width: 100%">
            <el-option label="现金" value="现金"></el-option>
            <el-option label="银行转账" value="银行转账"></el-option>
            <el-option label="支付宝" value="支付宝"></el-option>
            <el-option label="微信支付" value="微信支付"></el-option>
          </el-select>
        </el-form-item>
        <el-form-item label="付款备注" prop="paymentRemark">
          <el-input type="textarea" v-model="paymentRemark" rows="3" placeholder="请输入付款备注"></el-input>
@@ -312,7 +294,6 @@
  orderNo: '',
  customer: '',
  orderAmount: 0,
  paymentMethod: '',
  paymentStatus: '未付款',
  shippingStatus: '待发货',
  shippingDate: '',
@@ -324,7 +305,6 @@
  // orderNo: [{ required: true, message: '请输入订单号', trigger: 'blur' }],
  customer: [{ required: true, message: '请选择客户', trigger: 'change' }],
  orderAmount: [{ required: true, message: '请输入订单金额', trigger: 'blur' }],
  paymentMethod: [{ required: true, message: '请选择付款方式', trigger: 'change' }],
  paymentStatus: [{ required: true, message: '请选择付款状态', trigger: 'change' }],
  shippingStatus: [{ required: true, message: '请选择发货状态', trigger: 'change' }]
}
@@ -335,7 +315,6 @@
const shippingDialogVisible = ref(false)
const currentRecord = ref({})
const paymentAmount = ref(0)
const paymentMethod = ref('')
const paymentRemark = ref('')
const shippingDate = ref('')
const logisticsCompany = ref('')
@@ -379,7 +358,6 @@
  form.orderNo = ''
  form.customer = ''
  form.orderAmount = 0
  form.paymentMethod = ''
  form.paymentStatus = '未付款'
  form.shippingStatus = '待发货'
  form.shippingDate = ''
@@ -404,7 +382,6 @@
const handlePayment = (row) => {
  currentRecord.value = row
  paymentAmount.value = row.orderAmount - row.paidAmount
  paymentMethod.value = ''
  paymentRemark.value = ''
  paymentDialogVisible.value = true
}
@@ -435,10 +412,6 @@
}
const savePayment = () => {
  if (!paymentMethod.value) {
    ElMessage.warning('请选择付款方式')
    return
  }
  currentRecord.value.paidAmount = Number(currentRecord.value.paidAmount) + paymentAmount.value
  if(currentRecord.value.paidAmount == currentRecord.value.orderAmount){
    currentRecord.value.paymentStatus = '已付款'
src/views/salesManagement/receiptPayment/index.vue
@@ -13,24 +13,6 @@
                prefix-icon="Search"
              />
            </el-form-item>
            <el-form-item label="客户合同号">
              <el-input
                v-model="searchForm.customerContractNo"
                placeholder="请输入"
                @change="handleQuery"
                clearable
                prefix-icon="Search"
              />
            </el-form-item>
            <el-form-item label="项目名称">
              <el-input
                v-model="searchForm.projectName"
                placeholder="请输入"
                @change="handleQuery"
                clearable
                prefix-icon="Search"
              />
            </el-form-item>
            <el-form-item>
              <el-checkbox
                v-model="searchForm.status"
@@ -130,7 +112,6 @@
                    size="small"
                    @click="saveReceiptPayment(scope.row)"
                    v-if="scope.row.editType"
                                        :disabled="scope.row.registrant !== userStore.nickName"
                    >保存</el-button
                  >
                  <el-button
@@ -138,7 +119,6 @@
                    type="primary"
                    size="small"
                    @click="delReceiptRecord(scope.row)"
                                        :disabled="scope.row.registrant !== userStore.nickName"
                    >删除</el-button
                  >
                </template>
@@ -154,23 +134,10 @@
          width="240"
        />
        <el-table-column
          label="客户合同号"
          prop="customerContractNo"
          show-overflow-tooltip
          width="240"
        />
        <el-table-column
          label="客户名称"
          prop="customerName"
          show-overflow-tooltip
          width="240"
        />
        <el-table-column
          label="项目名称"
          prop="projectName"
          show-overflow-tooltip
          width="340"
        />
        <el-table-column
          label="回款状态"
@@ -502,9 +469,7 @@
// è¡¨æ ¼é€‰æ‹©æ•°æ®
const handleSelectionChange = (selection) => {
  console.log("selection", selection);
  selectedRows.value = selection.filter(
    (item) => item.customerContractNo !== null
  );
  selectedRows.value = selection
};
// ä¸»è¡¨åˆè®¡æ–¹æ³•
const summarizeMainTable = (param) => {
src/views/salesManagement/receiptPaymentHistory/index.vue
@@ -10,24 +10,6 @@
          :prefix-icon="Search"
        />
      </el-form-item>
      <el-form-item label="客户合同号">
        <el-input
          v-model="searchForm.customerContractNo"
          placeholder="输入客户合同号"
          @change="handleQuery"
          clearable
          :prefix-icon="Search"
        />
      </el-form-item>
      <el-form-item label="项目名称">
        <el-input
          v-model="searchForm.projectName"
          placeholder="输入项目名称"
          @change="handleQuery"
          clearable
          :prefix-icon="Search"
        />
      </el-form-item>
      <el-form-item label="回款日期">
        <el-date-picker
          v-model="searchForm.receiptPaymentDate"
@@ -80,11 +62,6 @@
    width:240
  },
  {
    label: "客户合同号",
    prop: "customerContractNo",
    width:240
  },
  {
    label: "回款日期",
    prop: "receiptPaymentDate",
    width:100
@@ -93,11 +70,6 @@
    label: "客户名称",
    prop: "customerName",
    width:240
  },
  {
    label: "项目名称",
    prop: "projectName",
    width:200
  },
  {
    label: "回款金额(元)",
@@ -149,8 +121,6 @@
  receiptPaymentDate: [],
  receiptPaymentDateStart: undefined,
  receiptPaymentDateEnd: undefined,
  customerContractNo: undefined,
  projectName: undefined,
});
const { receipt_payment_type } = proxy.useDict("receipt_payment_type");
const isShowSummarySon = ref(true);
src/views/salesManagement/salesLedger/fileList.vue
@@ -2,10 +2,11 @@
  <el-dialog v-model="dialogVisible" title="附件" width="40%" :before-close="handleClose">
    <el-table :data="tableData" border height="40vh">
      <el-table-column label="附件名称" prop="name" min-width="400" show-overflow-tooltip />
      <el-table-column fixed="right" label="操作" width="100" align="center">
      <el-table-column fixed="right" label="操作" width="150" align="center">
        <template #default="scope">
          <el-button link type="primary" size="small" @click="downLoadFile(scope.row)">下载</el-button>
          <el-button link type="primary" size="small" @click="lookFile(scope.row)">预览</el-button>
          <el-button link type="danger" size="small" @click="handleDelete(scope.row)">删除</el-button>
        </template>
      </el-table-column>
    </el-table>
@@ -15,7 +16,9 @@
<script setup>
import { ref } from 'vue'
import { ElMessageBox, ElMessage } from 'element-plus'
import filePreview from '@/components/filePreview/index.vue'
import { delCommonFile } from '@/api/publicApi/commonFile.js'
const dialogVisible = ref(false)
const tableData = ref([])
@@ -35,6 +38,27 @@
const lookFile = (row) => {
  filePreviewRef.value.open(row.url)
}
// åˆ é™¤é™„ä»¶
const handleDelete = (row) => {
  ElMessageBox.confirm(`确认删除附件"${row.name}"吗?`, '删除确认', {
    confirmButtonText: '确认',
    cancelButtonText: '取消',
    type: 'warning',
  }).then(() => {
    delCommonFile([row.id]).then(() => {
      ElMessage.success('删除成功')
      // ä»Žåˆ—表中移除已删除的附件
      const index = tableData.value.findIndex(item => item.id === row.id)
      if (index !== -1) {
        tableData.value.splice(index, 1)
      }
    }).catch(() => {
      ElMessage.error('删除失败')
    })
  }).catch(() => {
    proxy.$modal.msg('已取消删除')
  })
}
defineExpose({
  open
})
src/views/salesManagement/salesLedger/index.vue
@@ -6,16 +6,8 @@
          <el-input v-model="searchForm.customerName" placeholder="请输入" clearable prefix-icon="Search"
            @change="handleQuery" />
        </el-form-item>
        <el-form-item label="客户合同号:">
          <el-input v-model="searchForm.customerContractNo" placeholder="请输入" clearable prefix-icon="Search"
            @change="handleQuery" />
        </el-form-item>
        <el-form-item label="销售合同号:">
          <el-input v-model="searchForm.salesContractNo" placeholder="请输入" clearable prefix-icon="Search"
            @change="handleQuery" />
        </el-form-item>
        <el-form-item label="项目名称:">
          <el-input v-model="searchForm.projectName" placeholder="请输入" clearable prefix-icon="Search"
            @change="handleQuery" />
        </el-form-item>
        <el-form-item label="录入日期:">
@@ -60,11 +52,8 @@
        </el-table-column>
        <el-table-column align="center" label="序号" type="index" width="60" />
        <el-table-column label="销售合同号" prop="salesContractNo" width="180" show-overflow-tooltip />
        <el-table-column label="客户合同号" prop="customerContractNo" width="180" show-overflow-tooltip />
        <el-table-column label="客户名称" prop="customerName" width="300" show-overflow-tooltip />
        <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
          :formatter="formattedNumber" />
        <el-table-column label="录入人" prop="entryPersonName" width="100" show-overflow-tooltip />
@@ -104,26 +93,14 @@
        </el-row>
        <el-row :gutter="30">
          <el-col :span="12">
            <el-form-item label="客户合同号:" prop="customerContractNo">
              <el-input v-model="form.customerContractNo" placeholder="请输入" clearable :disabled="operationType === 'view'"/>
            </el-form-item>
          </el-col>
          <el-col :span="12">
            <el-form-item label="客户名称:" prop="customerId">
              <el-select v-model="form.customerId" placeholder="请选择" clearable :disabled="operationType === 'view'">
              <el-select v-model="form.customerId" placeholder="请选择" clearable :disabled="operationType === 'view'" filterable>
                <el-option v-for="item in customerOption" :key="item.id" :label="item.customerName" :value="item.id">
                  {{
                    item.customerName + "——" + item.taxpayerIdentificationNumber
                  }}
                </el-option>
              </el-select>
            </el-form-item>
          </el-col>
        </el-row>
        <el-row :gutter="30">
          <el-col :span="12">
            <el-form-item label="项目名称:" prop="projectName">
              <el-input v-model="form.projectName" placeholder="请输入" clearable :disabled="operationType === 'view'" />
            </el-form-item>
          </el-col>
                    <el-col :span="12">
@@ -150,13 +127,7 @@
            </el-form-item>
          </el-col>
        </el-row>
        <el-row :gutter="30">
          <el-col :span="12">
            <el-form-item label="付款方式">
              <el-input v-model="form.paymentMethod" placeholder="请输入" clearable :disabled="operationType === 'view'" />
            </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>
@@ -514,9 +485,7 @@
const data = reactive({
  searchForm: {
    customerName: "", // å®¢æˆ·åç§°
    customerContractNo: "", // å®¢æˆ·åˆåŒç¼–号
    salesContractNo: "", // é”€å”®åˆåŒç¼–号
    projectName: "", // é¡¹ç›®åç§°
    entryDate: null, // å½•入日期
    entryDateStart: undefined,
    entryDateEnd: undefined,
@@ -524,23 +493,16 @@
  form: {
    salesContractNo: "",
    salesman: "",
    customerContractNo: "",
    customerId: "",
    projectName: "",
    entryPerson: "",
    entryDate: "",
    maintenanceTime: "",
    productData: [],
    executionDate: "",
    paymentMethod: "",
  },
  rules: {
    salesman: [{ required: true, message: "请选择", trigger: "change" }],
    customerContractNo: [
      { required: true, message: "请输入", trigger: "blur" },
    ],
    customerId: [{ required: true, message: "请选择", trigger: "change" }],
    projectName: [{ required: true, message: "请输入", trigger: "blur" }],
    entryPerson: [{ required: true, message: "请选择", trigger: "change" }],
    entryDate: [{ required: true, message: "请选择", trigger: "change" }],
    executionDate: [{ required: true, message: "请选择", trigger: "change" }],
src/views/salesManagement/salesQuotation/index.vue
@@ -144,15 +144,6 @@
          </el-row>
          <el-row :gutter="20">
            <el-col :span="12">
              <el-form-item label="付款方式" prop="paymentMethod">
                <el-select v-model="form.paymentMethod" placeholder="请选择付款方式" style="width: 100%">
                  <el-option label="全款到付" value="全款到付"></el-option>
                  <el-option label="分期付款" value="分期付款"></el-option>
                  <el-option label="月结" value="月结"></el-option>
                </el-select>
              </el-form-item>
            </el-col>
            <el-col :span="12">
              <el-form-item label="交货期" prop="deliveryPeriod">
                <el-date-picker
                  v-model="form.deliveryPeriod"
@@ -302,7 +293,6 @@
        <el-descriptions-item label="业务员">{{ currentQuotation.salesperson }}</el-descriptions-item>
        <el-descriptions-item label="报价日期">{{ currentQuotation.quotationDate }}</el-descriptions-item>
        <el-descriptions-item label="有效期至">{{ currentQuotation.validDate }}</el-descriptions-item>
        <el-descriptions-item label="付款方式">{{ currentQuotation.paymentMethod }}</el-descriptions-item>
        <el-descriptions-item label="交货期">{{ currentQuotation.deliveryPeriod }}</el-descriptions-item>
<!--        <el-descriptions-item label="报价状态">-->
<!--          <el-tag :type="getStatusType(currentQuotation.status)">{{ currentQuotation.status }}</el-tag>-->
@@ -394,7 +384,6 @@
  salesperson: [{ required: true, message: '请选择业务员', trigger: 'change' }],
  quotationDate: [{ required: true, message: '请选择报价日期', trigger: 'change' }],
  validDate: [{ required: true, message: '请选择有效期', trigger: 'change' }],
  paymentMethod: [{ required: true, message: '请选择付款方式', trigger: 'change' }],
  deliveryPeriod: [{ required: true, message: '请选择交货期', trigger: 'change' }]
}
const userList = ref([]);