| | |
| | | </el-table-column> |
| | | </el-table-column> |
| | | |
| | | <!-- 总价 --> |
| | | <el-table-column label="总价" align="center"> |
| | | <el-table-column label="单价" prop="unitPrice" width="90"> |
| | | <template #default="{ row }"> |
| | | <div v-if="row.isSpacer" class="spacer-cell"></div> |
| | | <div v-else-if="!row.isMainOrder" class="price-info"> |
| | | <span v-if="row.priceType === 'points'" class="price-points"> |
| | | 积分 {{ row.unitPrice }} |
| | | </span> |
| | | <span v-else-if="row.priceType === 'currency'" class="price-currency"> |
| | | 货币 {{ row.unitPrice }} |
| | | </span> |
| | | <span v-else-if="row.priceType === 'agreement'" class="price-agreement"> |
| | | 协议 |
| | | </span> |
| | | <span v-else-if="row.priceType === 'free'" class="price-free"> |
| | | 免费 |
| | | </span> |
| | | </div> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="数量" prop="quantity" width="50"> |
| | | <!-- 数量 --> |
| | | <el-table-column label="数量" align="center" width="80"> |
| | | <el-table-column label="" prop="quantity" width="80" align="center"> |
| | | <template #default="{ row }"> |
| | | <div v-if="row.isSpacer" class="spacer-cell"></div> |
| | | <div v-else-if="!row.isMainOrder" class="quantity">{{ row.quantity }}</div> |
| | |
| | | |
| | | <!-- 期限(年) --> |
| | | <el-table-column label="期限(年)" align="center" width="80"> |
| | | <el-table-column label="" prop="period" width="80"> |
| | | <el-table-column label="" prop="period" width="80" align="center"> |
| | | <template #default="{ row }"> |
| | | <div v-if="row.isSpacer" class="spacer-cell"></div> |
| | | <div v-else-if="!row.isMainOrder" class="period-info"> |
| | |
| | | const productSubTypeOptions = ref<any[]>([]) |
| | | |
| | | // 查询条件 |
| | | const query = reactive({ |
| | | type BuyerQuery = { |
| | | productName: string |
| | | industry: string |
| | | unitProject: string[] |
| | | productType: string |
| | | productSubType: string |
| | | importantDistrictIdList: string[] |
| | | orderNo: string |
| | | status: string |
| | | dateRange: string[] |
| | | } |
| | | |
| | | const query = reactive<BuyerQuery>({ |
| | | productName: '', |
| | | industry: '', |
| | | unitProject: [], |
| | |
| | | // 处理行业领域变化 |
| | | const handleIndustryChange = async (value: string) => { |
| | | // 清空单位工程选择 |
| | | query.unitProject = '' |
| | | query.unitProject = [] |
| | | query.importantDistrictIdList = [] |
| | | // 获取对应的单位工程选项 |
| | | await getUnitProjectOptions(value) |
| | | } |
| | |
| | | // 主订单行,合并所有列显示订单信息 |
| | | if (columnIndex === 0) { // 第一列,合并所有列 |
| | | return { |
| | | colspan: 8, // 总共8列:订单信息2列 + 购买方式2列 + 总价2列 + 期限1列 + 操作1列 |
| | | colspan: 7, // 总共7列:订单信息2列 + 购买方式2列 + 数量1列 + 期限1列 + 操作1列 |
| | | rowspan: 1 |
| | | } |
| | | } else { |
| | |
| | | } |
| | | } |
| | | } |
| | | } else if (columnIndex === 7) { // 操作列(第8列) |
| | | } else if (columnIndex === 6) { // 操作列(第7列) |
| | | // 找到当前子订单所属的主订单 |
| | | const parentOrder = row.parentOrder |
| | | if (parentOrder && parentOrder.subOrders) { |
| | |
| | | |
| | | // 搜索处理(接入真实后端) |
| | | const handleSearch = async () => { |
| | | const filterEvaluated = query.status === 'EVALUATED' |
| | | const payload: any = { |
| | | pageNum: page.current, |
| | | pageSize: page.size, |
| | |
| | | orderId: query.orderNo || undefined, |
| | | userId: userStore.getUserId ? userStore.getUserId : undefined, |
| | | } |
| | | if (query.status) payload.orderStatus = statusUiToServer[query.status] |
| | | if (query.status) { |
| | | payload.orderStatus = filterEvaluated ? OrderStatus.COMPLETED : statusUiToServer[query.status] |
| | | } |
| | | if (Array.isArray(query.dateRange) && query.dateRange.length === 2) { |
| | | payload.applyTimeStart = query.dateRange[0] |
| | | payload.applyTimeEnd = query.dateRange[1] |
| | |
| | | |
| | | const res = (await apiMethod(payload)) as any |
| | | const pageData = res?.data |
| | | const list: any[] = Array.isArray(pageData?.list) ? pageData.list : [] |
| | | let list: any[] = Array.isArray(pageData?.list) ? pageData.list : [] |
| | | // 若筛选“已评价”,先以已完成查询,再在前端按已评价过滤 |
| | | if (filterEvaluated) { |
| | | list = list.filter((order: any) => order?.isEvaluate === '已评价') |
| | | } |
| | | page.total = Number(pageData?.total || 0) |
| | | |
| | | const flatData: any[] = [] |
| | |
| | | Object.assign(query, { |
| | | productName: '', |
| | | industry: '', |
| | | unitProject: '', |
| | | unitProject: [], |
| | | productType: '', |
| | | productSubType: '', |
| | | importantDistrictIdList: [], |
| | | orderNo: '', |
| | | status: '', |
| | | dateRange: [], |
| | |
| | | .period-info { |
| | | display: flex; |
| | | align-items: center; |
| | | justify-content: center; |
| | | gap: 8px; |
| | | font-size: 12px; |
| | | |
| | |
| | | font-size: 12px; |
| | | color: #303133; |
| | | font-weight: 500; |
| | | text-align: center; |
| | | } |
| | | |
| | | .pagination-container { |