| src/views/basicData/customerFile/index.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/views/basicData/supplierManage/components/BlacklistTab.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/views/basicData/supplierManage/components/HomeTab.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/views/salesManagement/salesLedger/index.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
src/views/basicData/customerFile/index.vue
@@ -16,14 +16,12 @@ @click="handleDeleteRegion">删除</el-button> </div> </div> <div class="left-search"> <el-input v-model="regionKeyword" placeholder="查询地区" clearable :prefix-icon="Search" /> </div> <div class="left-list"> <el-skeleton v-if="regionsLoading" :rows="8" @@ -46,7 +44,6 @@ </template> </div> </div> <div class="right-panel"> <div class="toolbar-card"> <div class="search_form right-search-form"> @@ -100,7 +97,6 @@ </div> </div> </div> <el-dialog v-model="addRegionDialogVisible" title="新增地区" width="420px" @@ -115,7 +111,8 @@ filterable placeholder="不选则为顶级地区" /> </el-form-item> <el-form-item label="地区名称" required> <el-form-item label="地区名称" required> <el-input v-model="addRegionForm.regionsName" placeholder="请输入" clearable /> @@ -326,6 +323,7 @@ <!-- 用户导入对话框 --> <el-dialog :title="upload.title" v-model="upload.open" @close="onClose" width="400px" append-to-body> <el-upload ref="uploadRef" @@ -483,7 +481,15 @@ </template> <script setup> import { onMounted, ref, reactive, getCurrentInstance, toRefs, computed, watch } from "vue"; import { onMounted, ref, reactive, getCurrentInstance, toRefs, computed, watch, } from "vue"; import { Search } from "@element-plus/icons-vue"; import { addCustomer, @@ -821,7 +827,11 @@ const addRegionDialogVisible = ref(false); const editRegionDialogVisible = ref(false); const addRegionForm = reactive({ parentPath: [], regionsName: "" }); const editRegionForm = reactive({ id: undefined, parentId: 0, regionsName: "" }); const editRegionForm = reactive({ id: undefined, parentId: 0, regionsName: "", }); const regionTreeProps = { label: "label", children: "children" }; const regionCascaderProps = { value: "id", @@ -853,6 +863,10 @@ regionsName: item.regionsName || item.label || "", children: normalizeRegionTree(item.children || []), })); }; const onClose = () => { upload.open = false; proxy.$refs["uploadRef"].clearFiles(); }; const fetchRegions = async () => { @@ -917,7 +931,9 @@ editRegionForm.id = selectedRegionNode.value.id; editRegionForm.parentId = selectedRegionNode.value.parentId || 0; editRegionForm.regionsName = selectedRegionNode.value.regionsName || selectedRegionNode.value.label || ""; selectedRegionNode.value.regionsName || selectedRegionNode.value.label || ""; editRegionDialogVisible.value = true; }; const closeEditRegionDialog = () => { @@ -975,7 +991,11 @@ if ((item.regionsName || item.label) === targetName) { return currentPath; } const childResult = findRegionPathByName(item.children || [], targetName, currentPath); const childResult = findRegionPathByName( item.children || [], targetName, currentPath ); if (childResult.length) return childResult; } return []; @@ -987,7 +1007,11 @@ if (String(item.id) === String(targetId)) { return currentPath; } const childResult = findRegionPathById(item.children || [], targetId, currentPath); const childResult = findRegionPathById( item.children || [], targetId, currentPath ); if (childResult.length) return childResult; } return []; @@ -1063,7 +1087,10 @@ getCustomer(row.id).then(res => { form.value = { ...res.data }; const regionIdForEdit = form.value.regionsId || form.value.regionsld; formRegionPath.value = findRegionPathById(regionTreeData.value, regionIdForEdit); formRegionPath.value = findRegionPathById( regionTreeData.value, regionIdForEdit ); if (!formRegionPath.value.length) { formRegionPath.value = findRegionPathByName( regionTreeData.value, @@ -1075,10 +1102,12 @@ ? formRegionPath.value[formRegionPath.value.length - 1] : ""; if (selectedRegionId && !form.value.regions) { form.value.regions = regionNodeMap.value.get(selectedRegionId)?.regionsName || ""; form.value.regions = regionNodeMap.value.get(selectedRegionId)?.regionsName || ""; } form.value.regionsId = form.value.regionsId || selectedRegionId; form.value.regionsld = form.value.regionsld || form.value.regionsId || selectedRegionId; form.value.regionsld = form.value.regionsld || form.value.regionsId || selectedRegionId; formYYs.value.contactList = res.data.contactPerson .split(",") .map((item, index) => { @@ -1115,7 +1144,8 @@ .map(item => item.contactPhone) .join(","); if (!form.value.regionsId && formRegionPath.value.length) { form.value.regionsId = formRegionPath.value[formRegionPath.value.length - 1]; form.value.regionsId = formRegionPath.value[formRegionPath.value.length - 1]; } form.value.regionsld = form.value.regionsId || ""; addCustomer(form.value).then(res => { @@ -1133,7 +1163,8 @@ .map(item => item.contactPhone) .join(","); if (!form.value.regionsId && formRegionPath.value.length) { form.value.regionsId = formRegionPath.value[formRegionPath.value.length - 1]; form.value.regionsId = formRegionPath.value[formRegionPath.value.length - 1]; } form.value.regionsld = form.value.regionsId || ""; updateCustomer(form.value).then(res => { @@ -1309,7 +1340,13 @@ .toolbar-divider { width: 1px; align-self: stretch; background: linear-gradient(to bottom, transparent, #e4e7ed 15%, #e4e7ed 85%, transparent); background: linear-gradient( to bottom, transparent, #e4e7ed 15%, #e4e7ed 85%, transparent ); } .action-buttons { src/views/basicData/supplierManage/components/BlacklistTab.vue
@@ -3,179 +3,170 @@ <div class="search_form"> <div> <span class="search_title">供应商档案:</span> <el-input v-model="searchForm.supplierName" <el-input v-model="searchForm.supplierName" style="width: 240px" placeholder="输入供应商名称搜索" @change="handleQuery" clearable :prefix-icon="Search" /> <el-button type="primary" @click="handleQuery" style="margin-left: 10px" >搜索</el-button > :prefix-icon="Search" /> <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="danger" plain @click="handleDelete">删除</el-button> </div> </div> <div class="table_list"> <PIMTable rowKey="id" <PIMTable rowKey="id" :column="tableColumn" :tableData="tableData" :page="page" :isSelection="true" @selection-change="handleSelectionChange" :tableLoading="tableLoading" @pagination="pagination" ></PIMTable> @pagination="pagination"></PIMTable> </div> <el-dialog v-model="dialogFormVisible" <el-dialog v-model="dialogFormVisible" :title="operationType === 'add' ? '新增供应商信息' : '编辑供应商信息'" width="70%" @close="closeDia" > <el-form :model="form" @close="closeDia"> <el-form :model="form" label-width="140px" label-position="top" :rules="rules" ref="formRef" > ref="formRef"> <el-row :gutter="30"> <el-col :span="12"> <el-form-item label="供应商名称:" prop="supplierName"> <el-input v-model="form.supplierName" <el-form-item label="供应商名称:" prop="supplierName"> <el-input v-model="form.supplierName" placeholder="请输入" clearable /> clearable /> </el-form-item> </el-col> <el-col :span="12"> <el-form-item label="纳税人识别号:" prop="taxpayerIdentificationNum" > <el-input v-model="form.taxpayerIdentificationNum" <el-form-item label="纳税人识别号:" prop="taxpayerIdentificationNum"> <el-input v-model="form.taxpayerIdentificationNum" placeholder="请输入" clearable /> clearable /> </el-form-item> </el-col> </el-row> <el-row :gutter="30"> <el-col :span="12"> <el-form-item label="公司地址:" prop="companyAddress"> <el-input v-model="form.companyAddress" <el-form-item label="公司地址:" prop="companyAddress"> <el-input v-model="form.companyAddress" placeholder="请输入" clearable /> clearable /> </el-form-item> </el-col> <el-col :span="12"> <el-form-item label="公司电话:" prop="companyPhone"> <el-input v-model="form.companyPhone" <el-form-item label="公司电话:" prop="companyPhone"> <el-input v-model="form.companyPhone" placeholder="请输入" clearable /> clearable /> </el-form-item> </el-col> </el-row> <el-row :gutter="30"> <el-col :span="12"> <el-form-item label="开户行:" prop="bankAccountName"> <el-input v-model="form.bankAccountName" <el-form-item label="开户行:" prop="bankAccountName"> <el-input v-model="form.bankAccountName" placeholder="请输入" clearable /> clearable /> </el-form-item> </el-col> <el-col :span="12"> <el-form-item label="账号:" prop="bankAccountNum"> <el-input v-model="form.bankAccountNum" <el-form-item label="账号:" prop="bankAccountNum"> <el-input v-model="form.bankAccountNum" placeholder="请输入" clearable /> clearable /> </el-form-item> </el-col> </el-row> <el-row :gutter="30"> <el-col :span="12"> <el-form-item label="联系人:" prop="contactUserName"> <el-input v-model="form.contactUserName" <el-form-item label="联系人:" prop="contactUserName"> <el-input v-model="form.contactUserName" placeholder="请输入" clearable /> clearable /> </el-form-item> </el-col> <el-col :span="12"> <el-form-item label="联系电话:" prop="contactUserPhone"> <el-input v-model="form.contactUserPhone" <el-form-item label="联系电话:" prop="contactUserPhone"> <el-input v-model="form.contactUserPhone" placeholder="请输入" clearable /> clearable /> </el-form-item> </el-col> </el-row> <el-row :gutter="30"> <el-col :span="12"> <el-form-item label="维护人:" prop="maintainUserId"> <el-select v-model="form.maintainUserId" <el-form-item label="维护人:" prop="maintainUserId"> <el-select v-model="form.maintainUserId" placeholder="请选择" clearable disabled > <el-option v-for="item in userList" disabled> <el-option v-for="item in userList" :key="item.nickName" :label="item.nickName" :value="item.userId" /> :value="item.userId" /> </el-select> </el-form-item> </el-col> <el-col :span="12"> <el-form-item label="维护时间:" prop="maintainTime"> <el-date-picker style="width: 100%" <el-form-item label="维护时间:" prop="maintainTime"> <el-date-picker style="width: 100%" v-model="form.maintainTime" value-format="YYYY-MM-DD" format="YYYY-MM-DD" type="date" placeholder="请选择" clearable /> clearable /> </el-form-item> </el-col> </el-row> <el-row :gutter="30"> <el-col :span="12"> <el-form-item label="供应商类型:" prop="supplierType"> <el-select v-model="form.supplierType" placeholder="请选择" clearable> <el-option label="甲" value="甲" /> <el-option label="乙" value="乙" /> <el-option label="丙" value="丙" /> <el-option label="丁" value="丁" /> <el-form-item label="供应商类型:" prop="supplierType"> <el-select v-model="form.supplierType" placeholder="请选择" clearable> <el-option label="甲" value="甲" /> <el-option label="乙" value="乙" /> <el-option label="丙" value="丙" /> <el-option label="丁" value="丁" /> </el-select> </el-form-item> </el-col> <el-col :span="12"> <el-form-item label="是否白名单:" prop="isWhite"> <el-select v-model="form.isWhite" placeholder="请选择" clearable> <el-option label="是" :value="0" /> <el-option label="否" :value="1" /> <el-form-item label="是否白名单:" prop="isWhite"> <el-select v-model="form.isWhite" placeholder="请选择" clearable> <el-option label="是" :value="0" /> <el-option label="否" :value="1" /> </el-select> </el-form-item> </el-col> @@ -183,21 +174,19 @@ </el-form> <template #footer> <div class="dialog-footer"> <el-button type="primary" @click="submitForm">确认</el-button> <el-button type="primary" @click="submitForm">确认</el-button> <el-button @click="closeDia">取消</el-button> </div> </template> </el-dialog> <!-- 供应商导入对话框 --> <el-dialog :title="upload.title" <el-dialog :title="upload.title" v-model="upload.open" @close="onClose" width="400px" append-to-body > <el-upload ref="uploadRef" append-to-body> <el-upload ref="uploadRef" :limit="1" accept=".xlsx, .xls" :headers="upload.headers" @@ -207,26 +196,23 @@ :on-success="handleFileSuccess" :on-error="handleFileError" :auto-upload="false" drag > drag> <el-icon class="el-icon--upload"><upload-filled /></el-icon> <div class="el-upload__text">将文件拖到此处,或<em>点击上传</em></div> <template #tip> <div class="el-upload__tip text-center"> <span>仅允许导入xls、xlsx格式文件。</span> <el-link type="primary" <el-link type="primary" :underline="false" style="font-size: 12px; vertical-align: baseline" @click="importTemplate" >下载模板</el-link > @click="importTemplate">下载模板</el-link> </div> </template> </el-upload> <template #footer> <div class="dialog-footer"> <el-button type="primary" @click="submitFileForm">确 定</el-button> <el-button type="primary" @click="submitFileForm">确 定</el-button> <el-button @click="upload.open = false">取 消</el-button> </div> </template> @@ -277,7 +263,7 @@ { label: "联系方式", prop: "companyPhone", width:150 width: 150, }, { label: "开户行", @@ -306,19 +292,19 @@ { label: "维护时间", prop: "maintainTime", width:100 width: 100, }, { dataType: "action", label: "操作", align: "center", fixed: 'right', fixed: "right", width: 150, operation: [ { name: "编辑", type: "text", clickFun: (row) => { clickFun: row => { openForm("edit", row); }, }, @@ -326,10 +312,10 @@ //资质附件 name: "资质文件", type: "text", clickFun: (row) => { openFilesFormDia(row) } } clickFun: row => { openFilesFormDia(row); }, }, ], }, ]); @@ -342,7 +328,7 @@ size: 100, total: 0, }); const filesDia = ref() const filesDia = ref(); // 用户信息表单弹框数据 const operationType = ref(""); const dialogFormVisible = ref(false); @@ -377,7 +363,9 @@ contactUserPhone: [{ required: false, message: "请输入", trigger: "blur" }], maintainUserId: [{ required: false, message: "请选择", trigger: "change" }], maintainTime: [{ required: false, message: "请选择", trigger: "change" }], supplierType: [{ required: true, message: "请选择供应商类型", trigger: "change" }], supplierType: [ { required: true, message: "请选择供应商类型", trigger: "change" }, ], }, }); const { searchForm, form, rules } = toRefs(data); @@ -388,7 +376,7 @@ page.current = 1; getList(); }; const pagination = (obj) => { const pagination = obj => { page.current = obj.page; page.size = obj.limit; getList(); @@ -398,9 +386,14 @@ upload.isUploading = true; proxy.$refs["uploadRef"].submit(); } const onClose = () => { upload.open = false; proxy.$refs["uploadRef"].clearFiles(); }; /** 查询列表 */ const getList = () => { tableLoading.value = true; listSupplier({ ...searchForm.value, ...page, isWhite: 1 }).then((res) => { listSupplier({ ...searchForm.value, ...page, isWhite: 1 }).then(res => { tableLoading.value = false; tableData.value = res.data.records; page.total = res.data.total; @@ -427,7 +420,11 @@ } /** 下载模板 */ function importTemplate() { proxy.download("/system/supplier/downloadTemplate", {}, "供应商导入模板.xlsx"); proxy.download( "/system/supplier/downloadTemplate", {}, "供应商导入模板.xlsx" ); } /**文件上传中处理 */ @@ -456,7 +453,7 @@ proxy.$modal.msgError("文件上传失败"); }; // 表格选择数据 const handleSelectionChange = (selection) => { const handleSelectionChange = selection => { selectedRows.value = selection; }; // 打开弹框 @@ -465,11 +462,11 @@ form.value = {}; form.value.maintainUserId = userStore.id; form.value.maintainTime = getCurrentDate(); userListNoPage().then((res) => { userListNoPage().then(res => { userList.value = res.data; }); if (type === "edit") { getSupplier(row.id).then((res) => { getSupplier(row.id).then(res => { form.value = { ...res.data }; }); } @@ -477,7 +474,7 @@ }; // 提交表单 const submitForm = () => { proxy.$refs["formRef"].validate((valid) => { proxy.$refs["formRef"].validate(valid => { if (valid) { if (operationType.value === "edit") { submitEdit(); @@ -489,7 +486,7 @@ }; // 提交新增 const submitAdd = () => { addSupplier(form.value).then((res) => { addSupplier(form.value).then(res => { proxy.$modal.msgSuccess("提交成功"); closeDia(); getList(); @@ -497,7 +494,7 @@ }; // 提交修改 const submitEdit = () => { updateSupplier(form.value).then((res) => { updateSupplier(form.value).then(res => { proxy.$modal.msgSuccess("提交成功"); closeDia(); getList(); @@ -516,7 +513,11 @@ type: "warning", }) .then(() => { proxy.download("/system/supplier/export", { isWhite: 1 }, "供应商档案.xlsx"); proxy.download( "/system/supplier/export", { isWhite: 1 }, "供应商档案.xlsx" ); }) .catch(() => { proxy.$modal.msg("已取消"); @@ -527,12 +528,14 @@ let ids = []; if (selectedRows.value.length > 0) { // 检查是否有他人维护的数据 const unauthorizedData = selectedRows.value.filter(item => item.maintainUserName !== userStore.nickName); 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); ids = selectedRows.value.map(item => item.id); } else { proxy.$modal.msgWarning("请选择数据"); return; @@ -545,7 +548,7 @@ .then(() => { tableLoading.value = true; delSupplier(ids) .then((res) => { .then(res => { proxy.$modal.msgSuccess("删除成功"); getList(); }) @@ -567,10 +570,10 @@ return `${year}-${month}-${day}`; } // 打开附件弹框 const openFilesFormDia = (row) => { const openFilesFormDia = row => { nextTick(() => { filesDia.value?.openDialog(row) }) filesDia.value?.openDialog(row); }); }; onMounted(() => { src/views/basicData/supplierManage/components/HomeTab.vue
@@ -3,185 +3,176 @@ <div class="search_form"> <div> <span class="search_title">供应商档案:</span> <el-input v-model="searchForm.supplierName" <el-input v-model="searchForm.supplierName" style="width: 240px" placeholder="输入供应商名称搜索" @change="handleQuery" clearable :prefix-icon="Search" /> <el-button type="primary" @click="handleQuery" style="margin-left: 10px" >搜索</el-button > :prefix-icon="Search" /> <el-button type="primary" @click="handleQuery" style="margin-left: 10px">搜索</el-button> </div> <div> <el-button type="primary" @click="openForm('add')" >新增供应商</el-button > <el-button type="primary" @click="openForm('add')">新增供应商</el-button> <el-button @click="handleOut">导出</el-button> <el-button type="info" plain icon="Upload" @click="handleImport" >导入</el-button > <el-button type="danger" plain @click="handleDelete">删除</el-button> <el-button type="info" plain icon="Upload" @click="handleImport">导入</el-button> <el-button type="danger" plain @click="handleDelete">删除</el-button> </div> </div> <div class="table_list"> <PIMTable rowKey="id" <PIMTable rowKey="id" :column="tableColumn" :tableData="tableData" :page="page" :isSelection="true" @selection-change="handleSelectionChange" :tableLoading="tableLoading" @pagination="pagination" ></PIMTable> @pagination="pagination"></PIMTable> </div> <el-dialog v-model="dialogFormVisible" <el-dialog v-model="dialogFormVisible" :title="operationType === 'add' ? '新增供应商信息' : '编辑供应商信息'" width="70%" @close="closeDia" > <el-form :model="form" @close="closeDia"> <el-form :model="form" label-width="140px" label-position="top" :rules="rules" ref="formRef" > ref="formRef"> <el-row :gutter="30"> <el-col :span="12"> <el-form-item label="供应商名称:" prop="supplierName"> <el-input v-model="form.supplierName" <el-form-item label="供应商名称:" prop="supplierName"> <el-input v-model="form.supplierName" placeholder="请输入" clearable /> clearable /> </el-form-item> </el-col> <el-col :span="12"> <el-form-item label="纳税人识别号:" prop="taxpayerIdentificationNum" > <el-input v-model="form.taxpayerIdentificationNum" <el-form-item label="纳税人识别号:" prop="taxpayerIdentificationNum"> <el-input v-model="form.taxpayerIdentificationNum" placeholder="请输入" clearable /> clearable /> </el-form-item> </el-col> </el-row> <el-row :gutter="30"> <el-col :span="12"> <el-form-item label="公司地址:" prop="companyAddress"> <el-input v-model="form.companyAddress" <el-form-item label="公司地址:" prop="companyAddress"> <el-input v-model="form.companyAddress" placeholder="请输入" clearable /> clearable /> </el-form-item> </el-col> <el-col :span="12"> <el-form-item label="公司电话:" prop="companyPhone"> <el-input v-model="form.companyPhone" <el-form-item label="公司电话:" prop="companyPhone"> <el-input v-model="form.companyPhone" placeholder="请输入" clearable /> clearable /> </el-form-item> </el-col> </el-row> <el-row :gutter="30"> <el-col :span="12"> <el-form-item label="开户行:" prop="bankAccountName"> <el-input v-model="form.bankAccountName" <el-form-item label="开户行:" prop="bankAccountName"> <el-input v-model="form.bankAccountName" placeholder="请输入" clearable /> clearable /> </el-form-item> </el-col> <el-col :span="12"> <el-form-item label="账号:" prop="bankAccountNum"> <el-input v-model="form.bankAccountNum" <el-form-item label="账号:" prop="bankAccountNum"> <el-input v-model="form.bankAccountNum" placeholder="请输入" clearable /> clearable /> </el-form-item> </el-col> </el-row> <el-row :gutter="30"> <el-col :span="12"> <el-form-item label="联系人:" prop="contactUserName"> <el-input v-model="form.contactUserName" <el-form-item label="联系人:" prop="contactUserName"> <el-input v-model="form.contactUserName" placeholder="请输入" clearable /> clearable /> </el-form-item> </el-col> <el-col :span="12"> <el-form-item label="联系电话:" prop="contactUserPhone"> <el-input v-model="form.contactUserPhone" <el-form-item label="联系电话:" prop="contactUserPhone"> <el-input v-model="form.contactUserPhone" placeholder="请输入" clearable /> clearable /> </el-form-item> </el-col> </el-row> <el-row :gutter="30"> <el-col :span="12"> <el-form-item label="维护人:" prop="maintainUserId"> <el-select v-model="form.maintainUserId" <el-form-item label="维护人:" prop="maintainUserId"> <el-select v-model="form.maintainUserId" placeholder="请选择" clearable disabled > <el-option v-for="item in userList" disabled> <el-option v-for="item in userList" :key="item.nickName" :label="item.nickName" :value="item.userId" /> :value="item.userId" /> </el-select> </el-form-item> </el-col> <el-col :span="12"> <el-form-item label="维护时间:" prop="maintainTime"> <el-date-picker style="width: 100%" <el-form-item label="维护时间:" prop="maintainTime"> <el-date-picker style="width: 100%" v-model="form.maintainTime" value-format="YYYY-MM-DD" format="YYYY-MM-DD" type="date" placeholder="请选择" clearable /> clearable /> </el-form-item> </el-col> </el-row> <el-row :gutter="30"> <el-col :span="12"> <el-form-item label="供应商类型:" prop="supplierType"> <el-select v-model="form.supplierType" placeholder="请选择" clearable> <el-option label="甲" value="甲" /> <el-option label="乙" value="乙" /> <el-option label="丙" value="丙" /> <el-option label="丁" value="丁" /> <el-form-item label="供应商类型:" prop="supplierType"> <el-select v-model="form.supplierType" placeholder="请选择" clearable> <el-option label="甲" value="甲" /> <el-option label="乙" value="乙" /> <el-option label="丙" value="丙" /> <el-option label="丁" value="丁" /> </el-select> </el-form-item> </el-col> <el-col :span="12"> <el-form-item label="是否白名单:" prop="isWhite"> <el-select v-model="form.isWhite" placeholder="请选择" clearable> <el-option label="是" :value="0" /> <el-option label="否" :value="1" /> <el-form-item label="是否白名单:" prop="isWhite"> <el-select v-model="form.isWhite" placeholder="请选择" clearable> <el-option label="是" :value="0" /> <el-option label="否" :value="1" /> </el-select> </el-form-item> </el-col> @@ -189,21 +180,19 @@ </el-form> <template #footer> <div class="dialog-footer"> <el-button type="primary" @click="submitForm">确认</el-button> <el-button type="primary" @click="submitForm">确认</el-button> <el-button @click="closeDia">取消</el-button> </div> </template> </el-dialog> <!-- 供应商导入对话框 --> <el-dialog :title="upload.title" <el-dialog :title="upload.title" v-model="upload.open" @close="onClose" width="400px" append-to-body > <el-upload ref="uploadRef" append-to-body> <el-upload ref="uploadRef" :limit="1" accept=".xlsx, .xls" :headers="upload.headers" @@ -213,26 +202,23 @@ :on-success="handleFileSuccess" :on-error="handleFileError" :auto-upload="false" drag > drag> <el-icon class="el-icon--upload"><upload-filled /></el-icon> <div class="el-upload__text">将文件拖到此处,或<em>点击上传</em></div> <template #tip> <div class="el-upload__tip text-center"> <span>仅允许导入xls、xlsx格式文件。</span> <el-link type="primary" <el-link type="primary" :underline="false" style="font-size: 12px; vertical-align: baseline" @click="importTemplate" >下载模板</el-link > @click="importTemplate">下载模板</el-link> </div> </template> </el-upload> <template #footer> <div class="dialog-footer"> <el-button type="primary" @click="submitFileForm">确 定</el-button> <el-button type="primary" @click="submitFileForm">确 定</el-button> <el-button @click="upload.open = false">取 消</el-button> </div> </template> @@ -283,7 +269,7 @@ { label: "联系方式", prop: "companyPhone", width:150 width: 150, }, { label: "开户行", @@ -312,19 +298,19 @@ { label: "维护时间", prop: "maintainTime", width:100 width: 100, }, { dataType: "action", label: "操作", align: "center", fixed: 'right', fixed: "right", width: 150, operation: [ { name: "编辑", type: "text", clickFun: (row) => { clickFun: row => { openForm("edit", row); }, }, @@ -332,10 +318,10 @@ //资质附件 name: "资质文件", type: "text", clickFun: (row) => { openFilesFormDia(row) } } clickFun: row => { openFilesFormDia(row); }, }, ], }, ]); @@ -348,7 +334,7 @@ size: 100, total: 0, }); const filesDia = ref() const filesDia = ref(); // 用户信息表单弹框数据 const operationType = ref(""); const dialogFormVisible = ref(false); @@ -383,7 +369,9 @@ contactUserPhone: [{ required: false, message: "请输入", trigger: "blur" }], maintainUserId: [{ required: false, message: "请选择", trigger: "change" }], maintainTime: [{ required: false, message: "请选择", trigger: "change" }], supplierType: [{ required: true, message: "请选择供应商类型", trigger: "change" }], supplierType: [ { required: true, message: "请选择供应商类型", trigger: "change" }, ], }, }); const { searchForm, form, rules } = toRefs(data); @@ -394,7 +382,7 @@ page.current = 1; getList(); }; const pagination = (obj) => { const pagination = obj => { page.current = obj.page; page.size = obj.limit; getList(); @@ -406,7 +394,7 @@ } const getList = () => { tableLoading.value = true; listSupplier({ ...searchForm.value, ...page, isWhite: 0 }).then((res) => { listSupplier({ ...searchForm.value, ...page, isWhite: 0 }).then(res => { tableLoading.value = false; tableData.value = res.data.records; page.total = res.data.total; @@ -433,8 +421,16 @@ } /** 下载模板 */ function importTemplate() { proxy.download("/system/supplier/downloadTemplate", {}, "供应商导入模板.xlsx"); proxy.download( "/system/supplier/downloadTemplate", {}, "供应商导入模板.xlsx" ); } const onClose = () => { upload.open = false; proxy.$refs["uploadRef"].clearFiles(); }; /**文件上传中处理 */ const handleFileUploadProgress = (event, file, fileList) => { @@ -462,7 +458,7 @@ proxy.$modal.msgError("文件上传失败"); }; // 表格选择数据 const handleSelectionChange = (selection) => { const handleSelectionChange = selection => { selectedRows.value = selection; }; // 打开弹框 @@ -471,11 +467,11 @@ form.value = {}; form.value.maintainUserId = userStore.id; form.value.maintainTime = getCurrentDate(); userListNoPage().then((res) => { userListNoPage().then(res => { userList.value = res.data; }); if (type === "edit") { getSupplier(row.id).then((res) => { getSupplier(row.id).then(res => { form.value = { ...res.data }; }); } @@ -483,7 +479,7 @@ }; // 提交表单 const submitForm = () => { proxy.$refs["formRef"].validate((valid) => { proxy.$refs["formRef"].validate(valid => { if (valid) { if (operationType.value === "edit") { submitEdit(); @@ -495,7 +491,7 @@ }; // 提交新增 const submitAdd = () => { addSupplier(form.value).then((res) => { addSupplier(form.value).then(res => { proxy.$modal.msgSuccess("提交成功"); closeDia(); getList(); @@ -503,7 +499,7 @@ }; // 提交修改 const submitEdit = () => { updateSupplier(form.value).then((res) => { updateSupplier(form.value).then(res => { proxy.$modal.msgSuccess("提交成功"); closeDia(); getList(); @@ -522,7 +518,11 @@ type: "warning", }) .then(() => { proxy.download("/system/supplier/export", { isWhite: 0 }, "供应商档案.xlsx"); proxy.download( "/system/supplier/export", { isWhite: 0 }, "供应商档案.xlsx" ); }) .catch(() => { proxy.$modal.msg("已取消"); @@ -533,12 +533,14 @@ let ids = []; if (selectedRows.value.length > 0) { // 检查是否有他人维护的数据 const unauthorizedData = selectedRows.value.filter(item => item.maintainUserName !== userStore.nickName); 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); ids = selectedRows.value.map(item => item.id); } else { proxy.$modal.msgWarning("请选择数据"); return; @@ -551,7 +553,7 @@ .then(() => { tableLoading.value = true; delSupplier(ids) .then((res) => { .then(res => { proxy.$modal.msgSuccess("删除成功"); getList(); }) @@ -573,10 +575,10 @@ return `${year}-${month}-${day}`; } // 打开附件弹框 const openFilesFormDia = (row) => { const openFilesFormDia = row => { nextTick(() => { filesDia.value?.openDialog(row) }) filesDia.value?.openDialog(row); }); }; onMounted(() => { src/views/salesManagement/salesLedger/index.vue
@@ -1531,9 +1531,9 @@ <FormDialog v-model="importUpload.open" :title="importUpload.title" :width="'600px'" @close="importUpload.open = false" @close="onClose" @confirm="submitImportFile" @cancel="importUpload.open = false"> @cancel="onClose"> <el-upload ref="importUploadRef" :limit="1" accept=".xlsx,.xls" @@ -3465,6 +3465,12 @@ const downloadTemplate = () => { proxy.download("/sales/ledger/exportTemplate", {}, "销售台账导入模板.xlsx"); }; const onClose = () => { importUpload.open = false; if (importUploadRef.value) { importUploadRef.value.clearFiles(); } }; // 提交导入文件 const submitImportFile = () => { @@ -4058,7 +4064,7 @@ const isTrue = true; selectedRows.value.forEach(row => { if (row.deliveryStatus != 1 && row.deliveryStatus != 3) { proxy.$modal.msgWarning("仅未发货或审批失败的台账可以合并发货"); proxy.$modal.msgWarning("仅未发货或审批失败的台账可以发货"); isTrue = false; return; }