From 33d9e4e1a653f0fb460826eb20bf58457045ff8e Mon Sep 17 00:00:00 2001
From: huminmin <mac@MacBook-Pro.local>
Date: 星期三, 04 三月 2026 16:40:33 +0800
Subject: [PATCH] Merge branch 'dev_New' of http://114.132.189.42:9002/r/product-inventory-management into dev_New
---
src/views/customerService/afterSalesHandling/index.vue | 199 ++++++++++++++-----------------------------------
1 files changed, 56 insertions(+), 143 deletions(-)
diff --git a/src/views/customerService/afterSalesHandling/index.vue b/src/views/customerService/afterSalesHandling/index.vue
index c3a19b4..dd07ddb 100644
--- a/src/views/customerService/afterSalesHandling/index.vue
+++ b/src/views/customerService/afterSalesHandling/index.vue
@@ -55,41 +55,10 @@
:upload-method="handleFileUpload"
:delete-method="handleFileDelete"
/>
- <el-dialog
- v-model="repairDialogVisible"
- title="缁翠慨璁板綍"
- width="700px"
- destroy-on-close
- @close="repairRecordList = []"
- >
- <el-table
- :data="repairRecordList"
- border
- v-loading="repairRecordLoading"
- max-height="400"
- >
- <el-table-column type="index" label="搴忓彿" width="55" align="center" />
- <el-table-column label="缁翠慨鏃ユ湡" prop="maintenanceTime" min-width="120" show-overflow-tooltip>
- <template #default="{ row }">
- {{ row.maintenanceTime || row.repairTime || '-' }}
- </template>
- </el-table-column>
- <el-table-column label="缁翠慨浜�" prop="maintenanceName" min-width="100" show-overflow-tooltip>
- <template #default="{ row }">
- {{ row.maintenanceName || row.repairName || '-' }}
- </template>
- </el-table-column>
- <el-table-column label="缁翠慨缁撴灉" prop="maintenanceResult" min-width="180" show-overflow-tooltip />
- </el-table>
- <template #footer>
- <el-button @click="repairDialogVisible = false">鍏抽棴</el-button>
- </template>
- </el-dialog>
</div>
</template>
<script setup>
-import {Search} from "@element-plus/icons-vue";
import { onMounted, ref, reactive, toRefs, getCurrentInstance, nextTick } from "vue";
import FormDia from "@/views/customerService/afterSalesHandling/components/formDia.vue";
import FileListDialog from "@/components/Dialog/FileListDialog.vue";
@@ -97,12 +66,9 @@
import request from "@/utils/request";
import { getToken } from "@/utils/auth";
import {
- afterSalesServiceDelete,
afterSalesServiceListPage,
afterSalesServiceFileListPage,
- afterSalesServiceFileAdd,
afterSalesServiceFileDel,
- afterSalesServiceRepairListPage,
} from "@/api/customerService/index.js";
import useUserStore from "@/store/modules/user.js";
const { proxy } = getCurrentInstance();
@@ -210,14 +176,6 @@
openFilesFormDia(row);
},
},
- // TODO 涓哄啓鎶ュ憡娣诲姞鐨�
- {
- name: "缁翠慨璁板綍",
- type: "text",
- clickFun: (row) => {
- openRepairDialog(row);
- },
- },
],
},
]);
@@ -238,32 +196,9 @@
const fileListRef = ref(null)
const fileListDialogVisible = ref(false)
const currentFileRow = ref(null)
-const repairDialogVisible = ref(false)
-const repairRecordList = ref([])
-const repairRecordLoading = ref(false)
-// 鎵撳紑缁翠慨璁板綍寮规
-const openRepairDialog = async (row) => {
- repairDialogVisible.value = true
- repairRecordLoading.value = true
- repairRecordList.value = []
- try {
- const res = await afterSalesServiceRepairListPage({
- afterSalesServiceId: row.id,
- current: 1,
- size: 100,
- })
- if (res.code === 200 && res.data?.records) {
- repairRecordList.value = res.data.records
- }
- } catch (error) {
- proxy.$modal.msgError("鑾峰彇缁翠慨璁板綍澶辫触")
- } finally {
- repairRecordLoading.value = false
- }
-}
-// 鎵撳紑闄勪欢寮规----- TODO锛氭帴鍙f槸娌℃湁瀵规帴鐨勶紝闇�瑕佹柊澧炴帴鍙o紝涓哄啓鎶ュ憡娣诲姞鐨�
+// 鎵撳紑闄勪欢寮规
const openFilesFormDia = async (row) => {
currentFileRow.value = row
try {
@@ -311,8 +246,9 @@
try {
const formData = new FormData()
formData.append("file", file)
+ formData.append("id", currentFileRow.value.id)
const uploadRes = await request({
- url: "/file/upload",
+ url: "/afterSalesService/file/upload",
method: "post",
data: formData,
headers: {
@@ -321,33 +257,23 @@
},
})
if (uploadRes.code === 200) {
- const fileData = {
+ proxy.$modal.msgSuccess("鏂囦欢涓婁紶鎴愬姛")
+ // 閲嶆柊鑾峰彇鏂囦欢鍒楄〃
+ const listRes = await afterSalesServiceFileListPage({
afterSalesServiceId: currentFileRow.value.id,
- name: uploadRes.data?.originalName || file.name,
- url: uploadRes.data?.tempPath || uploadRes.data?.url,
+ current: 1,
+ size: 100,
+ })
+ if (listRes.code === 200 && fileListRef.value) {
+ const fileList = (listRes.data?.records || []).map((item) => ({
+ name: item.fileName,
+ url: item.fileUrl,
+ id: item.id,
+ ...item,
+ }))
+ fileListRef.value.setList(fileList)
}
- const saveRes = await afterSalesServiceFileAdd(fileData)
- if (saveRes.code === 200) {
- proxy.$modal.msgSuccess("鏂囦欢涓婁紶鎴愬姛")
- const listRes = await afterSalesServiceFileListPage({
- afterSalesServiceId: currentFileRow.value.id,
- current: 1,
- size: 100,
- })
- if (listRes.code === 200 && fileListRef.value) {
- const fileList = (listRes.data?.records || []).map((item) => ({
- name: item.name || item.fileName,
- url: item.url || item.fileUrl,
- id: item.id,
- ...item,
- }))
- fileListRef.value.setList(fileList)
- }
- resolve({ name: fileData.name, url: fileData.url, id: saveRes.data?.id })
- } else {
- proxy.$modal.msgError(saveRes.msg || "鏂囦欢淇濆瓨澶辫触")
- resolve(null)
- }
+ resolve({ name: file.name, url: "", id: null })
} else {
proxy.$modal.msgError(uploadRes.msg || "鏂囦欢涓婁紶澶辫触")
resolve(null)
@@ -367,31 +293,47 @@
// 鍒犻櫎闄勪欢
const handleFileDelete = async (row) => {
try {
- const res = await afterSalesServiceFileDel([row.id])
- if (res.code === 200) {
- proxy.$modal.msgSuccess("鍒犻櫎鎴愬姛")
- if (currentFileRow.value && fileListRef.value) {
- const listRes = await afterSalesServiceFileListPage({
- afterSalesServiceId: currentFileRow.value.id,
- current: 1,
- size: 100,
- })
- if (listRes.code === 200) {
- const fileList = (listRes.data?.records || []).map((item) => ({
- name: item.name || item.fileName,
- url: item.url || item.fileUrl,
- id: item.id,
- ...item,
- }))
- fileListRef.value.setList(fileList)
- }
+ // 娣诲姞纭瀵硅瘽妗�
+ const confirmResult = await ElMessageBox.confirm(
+ '纭畾瑕佸垹闄よ繖涓檮浠跺悧锛�',
+ '鍒犻櫎纭',
+ {
+ confirmButtonText: '纭畾',
+ cancelButtonText: '鍙栨秷',
+ type: 'warning'
}
- } else {
- proxy.$modal.msgError(res.msg || "鍒犻櫎澶辫触")
- return false
+ )
+
+ if (confirmResult === 'confirm') {
+ const res = await afterSalesServiceFileDel(row.id)
+ if (res.code === 200) {
+ proxy.$modal.msgSuccess("鍒犻櫎鎴愬姛")
+ if (currentFileRow.value && fileListRef.value) {
+ const listRes = await afterSalesServiceFileListPage({
+ afterSalesServiceId: currentFileRow.value.id,
+ current: 1,
+ size: 100,
+ })
+ if (listRes.code === 200) {
+ const fileList = (listRes.data?.records || []).map((item) => ({
+ name: item.fileName,
+ url: item.fileUrl,
+ id: item.id,
+ ...item,
+ }))
+ fileListRef.value.setList(fileList)
+ }
+ }
+ } else {
+ proxy.$modal.msgError(res.msg || "鍒犻櫎澶辫触")
+ return false
+ }
}
} catch (error) {
- proxy.$modal.msgError("鍒犻櫎澶辫触")
+ // 濡傛灉鐢ㄦ埛鍙栨秷鍒犻櫎锛屼笉鏄剧ず閿欒淇℃伅
+ if (error !== 'cancel') {
+ proxy.$modal.msgError("鍒犻櫎澶辫触")
+ }
return false
}
}
@@ -421,35 +363,6 @@
nextTick(() => {
formDia.value?.openDialog(type, row)
})
-};
-
-const handleDelete = () => {
- let ids = [];
- if (selectedRows.value.length > 0) {
- ids = selectedRows.value.map((item) => item.id);
- } else {
- proxy.$modal.msgWarning("璇烽�夋嫨鏁版嵁");
- return;
- }
- ElMessageBox.confirm("閫変腑鐨勫唴瀹瑰皢琚垹闄わ紝鏄惁纭鍒犻櫎锛�", "鍒犻櫎鎻愮ず", {
- confirmButtonText: "纭",
- cancelButtonText: "鍙栨秷",
- type: "warning",
- })
- .then(() => {
- tableLoading.value = true;
- afterSalesServiceDelete(ids)
- .then((res) => {
- proxy.$modal.msgSuccess("鍒犻櫎鎴愬姛");
- getList();
- })
- .finally(() => {
- tableLoading.value = false;
- });
- })
- .catch(() => {
- proxy.$modal.msg("宸插彇娑�");
- });
};
// 瀵煎嚭
--
Gitblit v1.9.3