From 4e44261ac4f6dcac2f15b3d30636d4b4823f6918 Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期三, 27 五月 2026 13:24:38 +0800
Subject: [PATCH] 君哥 1.恢复之前工艺路线模块,删除字段计件/计时字段,工资定额修改成计划工时,新增计划执行人员。工艺绑定,工艺路线恢复。仅需删除bom。 2.对于新增订单需流转协同办公进行审批,审批完成流转生产管控-生产订单 3.新增审批管理,规范管理所有节点审批人。 4.修改菜单栏样式bug
---
src/views/salesManagement/salesQuotation/index.vue | 196 -------------------------------------------------
1 files changed, 0 insertions(+), 196 deletions(-)
diff --git a/src/views/salesManagement/salesQuotation/index.vue b/src/views/salesManagement/salesQuotation/index.vue
index 2a094a8..be59964 100644
--- a/src/views/salesManagement/salesQuotation/index.vue
+++ b/src/views/salesManagement/salesQuotation/index.vue
@@ -173,69 +173,6 @@
</div>
</el-card>
- <!-- 瀹℃壒浜轰俊鎭� -->
- <el-card class="form-card" shadow="hover">
- <template #header>
- <div class="card-header-wrapper">
- <el-icon class="card-icon">
- <UserFilled/>
- </el-icon>
- <span class="card-title">瀹℃壒浜洪�夋嫨</span>
- <el-button type="primary" size="small" @click="addApproverNode" class="header-btn">
- <el-icon>
- <Plus/>
- </el-icon>
- 鏂板鑺傜偣
- </el-button>
- </div>
- </template>
- <div class="form-content">
- <el-row>
- <el-col :span="24">
- <el-form-item>
- <div class="approver-nodes-container">
- <div
- v-for="(node, index) in approverNodes"
- :key="node.id"
- class="approver-node-item"
- >
- <div class="approver-node-label">
- <span class="node-step">{{ index + 1 }}</span>
- <span class="node-text">瀹℃壒浜�</span>
- <el-icon class="arrow-icon">
- <ArrowRight/>
- </el-icon>
- </div>
- <el-select
- v-model="node.userId"
- placeholder="閫夋嫨浜哄憳"
- class="approver-select"
- clearable
- >
- <el-option
- v-for="user in userList"
- :key="user.userId"
- :label="user.nickName"
- :value="user.userId"
- />
- </el-select>
- <el-button
- type="danger"
- size="small"
- :icon="Delete"
- @click="removeApproverNode(index)"
- v-if="approverNodes.length > 1"
- class="remove-btn"
- >鍒犻櫎
- </el-button>
- </div>
- </div>
- </el-form-item>
- </el-col>
- </el-row>
- </div>
- </el-card>
-
<!-- 浜у搧淇℃伅 -->
<el-card class="form-card" shadow="hover">
<template #header>
@@ -345,68 +282,6 @@
<FormDialog v-model="importDialogVisible" title="瀵煎叆鎶ヤ环鍗�" width="85%" :close-on-click-modal="false"
@close="importDialogVisible = false" @confirm="handleImportSubmit"
@cancel="importDialogVisible = false">
- <!-- 瀹℃壒浜轰俊鎭� -->
- <el-card class="form-card" shadow="hover">
- <template #header>
- <div class="card-header-wrapper">
- <el-icon class="card-icon">
- <UserFilled/>
- </el-icon>
- <span class="card-title">瀹℃壒浜洪�夋嫨</span>
- <el-button type="primary" size="small" @click="addImportApproverNode" class="header-btn">
- <el-icon>
- <Plus/>
- </el-icon>
- 鏂板鑺傜偣
- </el-button>
- </div>
- </template>
- <div class="form-content">
- <el-row>
- <el-col :span="24">
- <el-form-item>
- <div class="approver-nodes-container">
- <div
- v-for="(node, index) in importApproverNodes"
- :key="node.id"
- class="approver-node-item"
- >
- <div class="approver-node-label">
- <span class="node-step">{{ index + 1 }}</span>
- <span class="node-text">瀹℃壒浜�</span>
- <el-icon class="arrow-icon">
- <ArrowRight/>
- </el-icon>
- </div>
- <el-select
- v-model="node.userId"
- placeholder="閫夋嫨浜哄憳"
- class="approver-select"
- clearable
- >
- <el-option
- v-for="user in userList"
- :key="user.userId"
- :label="user.nickName"
- :value="user.userId"
- />
- </el-select>
- <el-button
- type="danger"
- size="small"
- :icon="Delete"
- @click="removeImportApproverNode(index)"
- v-if="importApproverNodes.length > 1"
- class="remove-btn"
- >鍒犻櫎
- </el-button>
- </div>
- </div>
- </el-form-item>
- </el-col>
- </el-row>
- </div>
- </el-card>
<el-card class="form-card" shadow="hover">
<template #header>
<div class="card-header-wrapper">
@@ -546,10 +421,6 @@
const importDialogVisible = ref(false)
const viewDialogVisible = ref(false)
const importFileList = ref([])
-const importApproverNodes = ref([
- {id: 1, userId: null}
-])
-let nextImportApproverId = 2
const fileUpload = ref(null)
@@ -599,36 +470,11 @@
const userList = ref([]);
const customerOption = ref([]);
-// 瀹℃壒浜鸿妭鐐圭浉鍏�
-const approverNodes = ref([
- {id: 1, userId: null}
-])
-let nextApproverId = 2
-
const isEdit = ref(false)
const showDetail = ref(false)
const editId = ref(null)
const currentQuotation = ref({})
const formRef = ref()
-
-// 娣诲姞瀹℃壒浜鸿妭鐐�
-function addApproverNode() {
- approverNodes.value.push({id: nextApproverId++, userId: null})
-}
-
-// 鍒犻櫎瀹℃壒浜鸿妭鐐�
-function removeApproverNode(index) {
- approverNodes.value.splice(index, 1)
-}
-
-// 瀵煎叆寮圭獥瀹℃壒浜鸿妭鐐圭浉鍏�
-function addImportApproverNode() {
- importApproverNodes.value.push({id: nextImportApproverId++, userId: null})
-}
-
-function removeImportApproverNode(index) {
- importApproverNodes.value.splice(index, 1)
-}
function triggerRemoveImportFile(file) {
const index = importFileList.value.indexOf(file)
@@ -643,12 +489,6 @@
return
}
- const hasEmptyApprover = importApproverNodes.value.some(node => !node.userId)
- if (hasEmptyApprover) {
- ElMessage.error('璇蜂负鎵�鏈夊鎵硅妭鐐归�夋嫨瀹℃壒浜猴紒')
- return
- }
-
const selectedFile = importFileList.value[0]
const rawFile = selectedFile?.raw || selectedFile
if (!validateImportFile(rawFile)) {
@@ -657,10 +497,6 @@
const formData = new FormData()
formData.append('file', rawFile)
-
- // 瀹℃牳浜� IDs锛屼互閫楀彿鍒嗗壊
- const approveUserIds = importApproverNodes.value.map(node => node.userId).join(',')
- formData.append('approveUserIdsJson', approveUserIds)
loading.value = true
try {
@@ -767,10 +603,6 @@
const handleImport = async () => {
importFileList.value = []
- // 鉁� 娓呯┖鈥滃鍏ョ敤鈥濈殑瀹℃壒浜�
- importApproverNodes.value = [{id: 1, userId: null}]
- nextImportApproverId = 2
-
let userLists = await userListNoPage();
importDialogVisible.value = true
@@ -785,9 +617,6 @@
dialogTitle.value = '鏂板鎶ヤ环'
isEdit.value = false
resetForm()
- // 閲嶇疆瀹℃壒浜鸿妭鐐�
- approverNodes.value = [{id: 1, userId: null}]
- nextApproverId = 2
dialogVisible.value = true
let userLists = await userListNoPage();
// 鍙鍒堕渶瑕佺殑瀛楁锛岄伩鍏嶅皢缁勪欢寮曠敤鏀惧叆鍝嶅簲寮忓璞�
@@ -992,19 +821,6 @@
form.discountAmount = row.discountAmount || 0
form.totalAmount = row.totalAmount || 0
- // 鍙嶆樉瀹℃壒浜�
- if (row.approveUserIds) {
- const userIds = row.approveUserIds.split(',')
- approverNodes.value = userIds.map((userId, idx) => ({
- id: idx + 1,
- userId: parseInt(userId.trim())
- }))
- nextApproverId = userIds.length + 1
- } else {
- approverNodes.value = [{id: 1, userId: null}]
- nextApproverId = 2
- }
-
// 鍔犺浇鐢ㄦ埛鍒楄〃
let userLists = await userListNoPage();
userList.value = (userLists.data || []).map(item => ({
@@ -1103,16 +919,6 @@
return
}
- // 瀹℃壒浜哄繀濉牎楠�
- const hasEmptyApprover = approverNodes.value.some(node => !node.userId)
- if (hasEmptyApprover) {
- ElMessage.error('璇蜂负鎵�鏈夊鎵硅妭鐐归�夋嫨瀹℃壒浜猴紒')
- return
- }
-
- // 鏀堕泦鎵�鏈夎妭鐐圭殑瀹℃壒浜篿d
- form.approveUserIds = approverNodes.value.map(node => node.userId).join(',')
-
// 璁$畻鎵�鏈変骇鍝佺殑鍗曚环鎬诲拰
form.totalAmount = form.products.reduce((sum, product) => {
const price = Number(product.unitPrice) || 0
@@ -1177,8 +983,6 @@
validDate: item.validDate || '',
paymentMethod: item.paymentMethod || '',
status: item.status || '鑽夌',
- // 瀹℃壒浜猴紙鐢ㄤ簬缂栬緫鏃跺弽鏄撅級
- approveUserIds: item.approveUserIds || '',
remark: item.remark || '',
products: item.products ? item.products.map(product => ({
productId: product.productId || '',
--
Gitblit v1.9.3