| | |
| | | <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="审核状态" width="140"> |
| | | <template #default="scope"> |
| | | <template v-if="scope.row.salesType !== '紧急'"> |
| | | <el-tag |
| | | v-if="(scope.row.approveStatus ?? scope.row.approvalStatus) == 0" |
| | | type="warning" |
| | | >待审核</el-tag> |
| | | <el-tag |
| | | v-else-if="(scope.row.approveStatus ?? scope.row.approvalStatus) == 1" |
| | | type="primary" |
| | | >审核中</el-tag> |
| | | <el-tag |
| | | v-else-if="(scope.row.approveStatus ?? scope.row.approvalStatus) == 2" |
| | | type="success" |
| | | >审核完成</el-tag> |
| | | <el-tag |
| | | v-else-if="(scope.row.approveStatus ?? scope.row.approvalStatus) == 3" |
| | | type="danger" |
| | | >审核未通过</el-tag> |
| | | <el-tag |
| | | v-else-if="(scope.row.approveStatus ?? scope.row.approvalStatus) == 4" |
| | | type="info" |
| | | >已重新提交</el-tag> |
| | | <el-tag v-else type="info">-</el-tag> |
| | | </template> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="销售类型" width="120"> |
| | | <template #default="scope"> |
| | | <el-tag |
| | | :type="scope.row.salesType === '紧急' ? 'danger' : 'info'" |
| | | >{{ scope.row.salesType || '-' }}</el-tag> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="付款方式" prop="paymentMethod" show-overflow-tooltip /> |
| | | <el-table-column label="合同金额(元)" prop="contractAmount" width="220" show-overflow-tooltip |
| | | :formatter="formattedNumber" /> |
| | |
| | | <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-col :span="12"> |
| | | <el-form-item label="销售类型:" prop="salesType"> |
| | | <el-select |
| | | v-model="form.salesType" |
| | | placeholder="请选择" |
| | | clearable |
| | | :disabled="operationType === 'view'" |
| | | style="width: 100%" |
| | | > |
| | | <el-option label="普通" value="普通" /> |
| | | <el-option label="紧急" value="紧急" /> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row> |
| | | <el-col :span="24"> |
| | | <el-form-item v-if="operationType !== 'view'"> |
| | | <template #label> |
| | | <span>审批人选择:</span> |
| | | <el-button type="primary" @click="addApproverNode" style="margin-left: 8px;">新增节点</el-button> |
| | | </template> |
| | | <div style="display: flex; align-items: flex-end; flex-wrap: wrap;"> |
| | | <div |
| | | v-for="(node, index) in approverNodes" |
| | | :key="node.id" |
| | | style="margin-right: 30px; text-align: center; margin-bottom: 10px;" |
| | | > |
| | | <div> |
| | | <span>审批人</span> |
| | | → |
| | | </div> |
| | | <el-select |
| | | v-model="node.userId" |
| | | placeholder="选择人员" |
| | | style="width: 140px; margin-bottom: 8px;" |
| | | > |
| | | <el-option |
| | | v-for="user in userList" |
| | | :key="user.userId" |
| | | :label="user.nickName" |
| | | :value="user.userId" |
| | | /> |
| | | </el-select> |
| | | <div> |
| | | <el-button |
| | | type="danger" |
| | | size="small" |
| | | @click="removeApproverNode(index)" |
| | | v-if="approverNodes.length > 1" |
| | | >删除</el-button> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | |
| | | }); |
| | | const total = ref(0); |
| | | const fileList = ref([]); |
| | | const approverNodes = ref([{ id: 1, userId: null }]); |
| | | let nextApproverId = 2; |
| | | |
| | | // 用户信息表单弹框数据 |
| | | const operationType = ref(""); |
| | |
| | | productData: [], |
| | | executionDate: "", |
| | | paymentMethod: "", |
| | | salesType: "普通", |
| | | }, |
| | | rules: { |
| | | salesType: [{ required: true, message: "请选择销售类型", trigger: "change" }], |
| | | salesman: [{ required: true, message: "请选择", trigger: "change" }], |
| | | customerContractNo: [ |
| | | { required: true, message: "请输入", trigger: "blur" }, |
| | |
| | | }); |
| | | const { form, rules } = toRefs(data); |
| | | const { form: searchForm } = useFormData(data.searchForm); |
| | | const addApproverNode = () => { |
| | | approverNodes.value.push({ id: nextApproverId++, userId: null }); |
| | | }; |
| | | const removeApproverNode = (index) => { |
| | | approverNodes.value.splice(index, 1); |
| | | }; |
| | | // 产品表单弹框数据 |
| | | const productFormVisible = ref(false); |
| | | const productOperationType = ref(""); |
| | |
| | | operationType.value = type; |
| | | form.value = {}; |
| | | productData.value = []; |
| | | approverNodes.value = [{ id: 1, userId: null }]; |
| | | nextApproverId = 2; |
| | | let userLists = await userListNoPage(); |
| | | userList.value = userLists.data; |
| | | customerList().then((res) => { |
| | |
| | | getSalesLedgerWithProducts({ id: row.id, type: 1 }).then((res) => { |
| | | form.value = { ...res }; |
| | | form.value.entryPerson = Number(res.entryPerson); |
| | | if (!form.value.salesType) { |
| | | form.value.salesType = "普通"; |
| | | } |
| | | productData.value = form.value.productData; |
| | | fileList.value = form.value.salesLedgerFiles; |
| | | const approveUserIds = form.value.approveUserIds || form.value.approverIds; |
| | | if (approveUserIds) { |
| | | const ids = String(approveUserIds) |
| | | .split(",") |
| | | .map((id) => Number(id.trim())) |
| | | .filter((id) => !Number.isNaN(id)); |
| | | if (ids.length > 0) { |
| | | approverNodes.value = ids.map((id, idx) => ({ id: idx + 1, userId: id })); |
| | | nextApproverId = ids.length + 1; |
| | | } |
| | | } |
| | | }); |
| | | } |
| | | // let userAll = await userStore.getInfo() |
| | |
| | | // } |
| | | // }); |
| | | form.value.entryDate = getCurrentDate(); // 设置默认录入日期为当前日期 |
| | | if (type === "add") { |
| | | form.value.salesType = "普通"; |
| | | } |
| | | dialogFormVisible.value = true; |
| | | }; |
| | | function changs(val) { |
| | |
| | | const submitForm = () => { |
| | | proxy.$refs["formRef"].validate((valid) => { |
| | | if (valid) { |
| | | if (operationType.value !== "view") { |
| | | const hasEmptyApprover = approverNodes.value.some((node) => !node.userId); |
| | | if (hasEmptyApprover) { |
| | | proxy.$modal.msgWarning("请为所有审批节点选择审批人"); |
| | | return; |
| | | } |
| | | form.value.approveUserIds = approverNodes.value.map((node) => node.userId).join(","); |
| | | } |
| | | console.log('productData.value--', productData.value) |
| | | if (productData.value !== null && productData.value.length > 0) { |
| | | form.value.productData = proxy.HaveJson(productData.value); |