正在显示
5 个修改的文件
包含
1159 行增加
和
305 行删除
src/views/trade/TabCmInfoList.vue
0 → 100644
| 1 | +<template> | ||
| 2 | + <a-card :bordered="false" :class="'cust-erp-sub-tab'"> | ||
| 3 | + <a-table | ||
| 4 | + ref="table" | ||
| 5 | + size="middle" | ||
| 6 | + bordered | ||
| 7 | + rowKey="id" | ||
| 8 | + :scroll="{x:true}" | ||
| 9 | + :columns="columns" | ||
| 10 | + :dataSource="dataSource" | ||
| 11 | + :pagination="ipagination" | ||
| 12 | + :loading="loading"> | ||
| 13 | + <span slot="action2" slot-scope="text, record"> | ||
| 14 | + <a @click="wjInfo(record)">{{ record.htfj }}</a>   | ||
| 15 | + </span> | ||
| 16 | + <span slot="action3" slot-scope="text, record"> | ||
| 17 | + <a @click="fpInfo(record)">发票管理</a>   | ||
| 18 | + </span> | ||
| 19 | + <span slot="action4" slot-scope="text, record"> | ||
| 20 | + <a @click="fkInfo(record)">付款管理</a>   | ||
| 21 | + </span> | ||
| 22 | + <span slot="action5" slot-scope="text, record"> | ||
| 23 | + <a @click="blpInfo(record)">{{record.blpNum}}</a>   | ||
| 24 | + </span> | ||
| 25 | + </a-table> | ||
| 26 | + <!--文件预览--> | ||
| 27 | + <j-modal | ||
| 28 | + title="文件查看" | ||
| 29 | + :visible="visibleWjck" | ||
| 30 | + @ok="handleCancelWjck" | ||
| 31 | + @cancel="handleCancelWjck" | ||
| 32 | + > | ||
| 33 | + <!-- PDF 预览 --> | ||
| 34 | + <div> | ||
| 35 | + <!-- <h3>PDF 预览</h3>--> | ||
| 36 | + <iframe :src="pdfSrc" width="100%" height="500px"></iframe> | ||
| 37 | + </div> | ||
| 38 | + </j-modal> | ||
| 39 | + | ||
| 40 | + <!--发票管理--> | ||
| 41 | + <j-modal | ||
| 42 | + @cancel="handleCancelfp" | ||
| 43 | + @ok="handleConfirmfp" | ||
| 44 | + title="发票管理" | ||
| 45 | + :width="width" | ||
| 46 | + :visible="visiblefp" | ||
| 47 | + cancelText="关闭" | ||
| 48 | + > | ||
| 49 | + <a-table :dataSource="dataSourcefp" :columns="columnsfp" :scroll="{x:true}"> | ||
| 50 | + <template slot="fileSlot" slot-scope="text"> | ||
| 51 | + <span v-if="!text" style="font-size: 12px;font-style: italic;">无文件</span> | ||
| 52 | + <div v-else> | ||
| 53 | + <span :title="text">{{ text.length > 20 ? text.substring(0, 20) + '...' : text }}</span> | ||
| 54 | + <a-button | ||
| 55 | + :ghost="true" | ||
| 56 | + type="primary" | ||
| 57 | + icon="download" | ||
| 58 | + size="small" | ||
| 59 | + @click="downloadFile(text)"> | ||
| 60 | + 下载 | ||
| 61 | + </a-button> | ||
| 62 | + </div> | ||
| 63 | + </template> | ||
| 64 | + | ||
| 65 | + </a-table> | ||
| 66 | + </j-modal> | ||
| 67 | + <!-- 付款管理--> | ||
| 68 | + <j-modal | ||
| 69 | + @cancel="handleCancelpay" | ||
| 70 | + @ok="handleConfirmpay" | ||
| 71 | + title="付款管理" | ||
| 72 | + :width="width" | ||
| 73 | + :visible="visiblepay" | ||
| 74 | + cancelText="关闭" | ||
| 75 | + > | ||
| 76 | + <a-table :dataSource="dataSourcepay" :columns="columnspay" :scroll="{x:true}"> | ||
| 77 | + <template slot="fileSlot" slot-scope="text"> | ||
| 78 | + <span v-if="!text" style="font-size: 12px;font-style: italic;">无文件</span> | ||
| 79 | + <div v-else> | ||
| 80 | + <span :title="text">{{ text.length > 20 ? text.substring(0, 20) + '...' : text }}</span> | ||
| 81 | + <a-button | ||
| 82 | + :ghost="true" | ||
| 83 | + type="primary" | ||
| 84 | + icon="download" | ||
| 85 | + size="small" | ||
| 86 | + @click="downloadFile(text)"> | ||
| 87 | + 下载 | ||
| 88 | + </a-button> | ||
| 89 | + </div> | ||
| 90 | + </template> | ||
| 91 | + | ||
| 92 | + </a-table> | ||
| 93 | + | ||
| 94 | + | ||
| 95 | + </j-modal> | ||
| 96 | + | ||
| 97 | + | ||
| 98 | + <!-- 不良品库存--> | ||
| 99 | + <j-modal | ||
| 100 | + title="不良品库存" | ||
| 101 | + :width="width" | ||
| 102 | + :visible="visibleBlp" | ||
| 103 | + fullscreen | ||
| 104 | + @ok="handleConfirmblp" | ||
| 105 | + @cancel="handleCancelblp" | ||
| 106 | + cancelText="关闭"> | ||
| 107 | + <TblTradeInventoryDefectiveProductList ></TblTradeInventoryDefectiveProductList> | ||
| 108 | + </j-modal> | ||
| 109 | + | ||
| 110 | + </a-card> | ||
| 111 | +</template> | ||
| 112 | +<script> | ||
| 113 | +import { getAction, getFileAccessHttpUrl } from '@api/manage' | ||
| 114 | +import TblTradeInventoryDefectiveProductList from '@views/trade/TblTradeInventoryDefectiveProductList.vue' | ||
| 115 | + | ||
| 116 | +export default { | ||
| 117 | + name: "TabCmInfoList", | ||
| 118 | + components: { TblTradeInventoryDefectiveProductList }, | ||
| 119 | + data(){ | ||
| 120 | + return { | ||
| 121 | + loading: false, | ||
| 122 | + ipagination: { | ||
| 123 | + current: 1, | ||
| 124 | + pageSize: 10, | ||
| 125 | + pageSizeOptions: ['10', '20', '30'], | ||
| 126 | + showTotal: (total, range) => { | ||
| 127 | + return range[0] + "-" + range[1] + " 共" + total + "条" | ||
| 128 | + }, | ||
| 129 | + showQuickJumper: true, | ||
| 130 | + showSizeChanger: true, | ||
| 131 | + total: 0 | ||
| 132 | + }, | ||
| 133 | + visibleWjck: false, | ||
| 134 | + visiblefp: false, | ||
| 135 | + visiblepay: false, | ||
| 136 | + visibleBlp: false, | ||
| 137 | + labelCol: { | ||
| 138 | + xs: { span: 24 }, | ||
| 139 | + sm: { span: 8 } | ||
| 140 | + }, | ||
| 141 | + wrapperCol: { | ||
| 142 | + xs: { span: 24 }, | ||
| 143 | + sm: { span: 16 } | ||
| 144 | + }, | ||
| 145 | + modelpay: {}, | ||
| 146 | + dataSourcepay: [], | ||
| 147 | + columnspay: [ | ||
| 148 | + { | ||
| 149 | + title: '付款金额(元)', | ||
| 150 | + align: 'center', | ||
| 151 | + dataIndex: 'supplier' | ||
| 152 | + }, | ||
| 153 | + { | ||
| 154 | + title: '付款时间', | ||
| 155 | + align: 'center', | ||
| 156 | + dataIndex: 'fksj' | ||
| 157 | + }, | ||
| 158 | + { | ||
| 159 | + title: '采购员', | ||
| 160 | + align: 'center', | ||
| 161 | + dataIndex: 'createBy' | ||
| 162 | + }, | ||
| 163 | + { | ||
| 164 | + title: '状态', | ||
| 165 | + align: 'center', | ||
| 166 | + dataIndex: 'status', | ||
| 167 | + customRender: (text) => { | ||
| 168 | + | ||
| 169 | + let re = '' | ||
| 170 | + if (text === 0) { | ||
| 171 | + re = '待审核' | ||
| 172 | + } else if (text === 1) { | ||
| 173 | + re = '审核通过' | ||
| 174 | + }else if (text === 2) { | ||
| 175 | + re = '拒绝' | ||
| 176 | + } | ||
| 177 | + return re | ||
| 178 | + } | ||
| 179 | + } | ||
| 180 | + ], | ||
| 181 | + confirmLoading: false, | ||
| 182 | + width: 892, | ||
| 183 | + pdfSrc: '', | ||
| 184 | + dataSource: [], | ||
| 185 | + dataSourcefp: [], | ||
| 186 | + columnsfp: [ | ||
| 187 | + { | ||
| 188 | + title: '发票号码', | ||
| 189 | + align: 'center', | ||
| 190 | + dataIndex: 'fphm' | ||
| 191 | + }, { | ||
| 192 | + title: '发票金额', | ||
| 193 | + align: 'center', | ||
| 194 | + dataIndex: 'fpje' | ||
| 195 | + }, { | ||
| 196 | + title: '发票欠额', | ||
| 197 | + align: 'center', | ||
| 198 | + dataIndex: 'fpqe' | ||
| 199 | + }, { | ||
| 200 | + title: '附件', | ||
| 201 | + align: 'center', | ||
| 202 | + dataIndex: 'fj', | ||
| 203 | + scopedSlots: { customRender: 'fileSlot' } | ||
| 204 | + }, { | ||
| 205 | + title: '备注', | ||
| 206 | + align: 'center', | ||
| 207 | + dataIndex: 'bz' | ||
| 208 | + } | ||
| 209 | + | ||
| 210 | + ], | ||
| 211 | + columns:[ | ||
| 212 | + { | ||
| 213 | + title: '供应商(TEL)', | ||
| 214 | + align: 'center', | ||
| 215 | + dataIndex: 'supplier' | ||
| 216 | + }, | ||
| 217 | + { | ||
| 218 | + title: '采购渠道', | ||
| 219 | + align: 'center', | ||
| 220 | + dataIndex: 'procurementChannels' | ||
| 221 | + }, | ||
| 222 | + { | ||
| 223 | + title: '合同号/订单号', | ||
| 224 | + align: 'center', | ||
| 225 | + dataIndex: 'hth' | ||
| 226 | + }, | ||
| 227 | + { | ||
| 228 | + title: '数量', | ||
| 229 | + align: 'center', | ||
| 230 | + dataIndex: 'purchaseQuantity' | ||
| 231 | + }, | ||
| 232 | + { | ||
| 233 | + title: '单价(不含税,元)', | ||
| 234 | + align: 'center', | ||
| 235 | + dataIndex: 'unitPrice' | ||
| 236 | + }, | ||
| 237 | + { | ||
| 238 | + title: '税率(%)', | ||
| 239 | + align: 'center', | ||
| 240 | + dataIndex: 'taxRate' | ||
| 241 | + }, | ||
| 242 | + { | ||
| 243 | + title: '金额(元)', | ||
| 244 | + align: 'center', | ||
| 245 | + dataIndex: 'amount' | ||
| 246 | + }, | ||
| 247 | + { | ||
| 248 | + title: '合同附件 ', | ||
| 249 | + dataIndex: 'action2', | ||
| 250 | + align: 'center', | ||
| 251 | + // fixed: 'right', | ||
| 252 | + width: 147, | ||
| 253 | + scopedSlots: { customRender: 'action2' } | ||
| 254 | + }, | ||
| 255 | + { | ||
| 256 | + title: '发票信息', | ||
| 257 | + dataIndex: 'action3', | ||
| 258 | + align: 'center', | ||
| 259 | + // fixed: 'right', | ||
| 260 | + width: 147, | ||
| 261 | + scopedSlots: { customRender: 'action3' } | ||
| 262 | + }, | ||
| 263 | + { | ||
| 264 | + title: '付款信息', | ||
| 265 | + dataIndex: 'action4', | ||
| 266 | + align: 'center', | ||
| 267 | + // fixed: 'right', | ||
| 268 | + width: 147, | ||
| 269 | + scopedSlots: { customRender: 'action4' } | ||
| 270 | + }, | ||
| 271 | + { | ||
| 272 | + title: '已入库数量', | ||
| 273 | + align: 'center', | ||
| 274 | + dataIndex: 'yrkNum' | ||
| 275 | + }, | ||
| 276 | + { | ||
| 277 | + title: '剩余订单未入库数量', | ||
| 278 | + align: 'center', | ||
| 279 | + dataIndex: 'wrkNum' | ||
| 280 | + }, | ||
| 281 | + { | ||
| 282 | + title: '不良品数量', | ||
| 283 | + align: 'center', | ||
| 284 | + dataIndex: 'action5', | ||
| 285 | + scopedSlots: { customRender: 'action5' } | ||
| 286 | + }, | ||
| 287 | + { | ||
| 288 | + title: '退换货评级', | ||
| 289 | + align: 'center', | ||
| 290 | + dataIndex: 'thhPj', | ||
| 291 | + customRender: function(thhPj) { | ||
| 292 | + var str = '' | ||
| 293 | + if (thhPj === 1) { | ||
| 294 | + str = 'A' | ||
| 295 | + } else if (thhPj === 2) { | ||
| 296 | + str = 'B' | ||
| 297 | + } else if (thhPj === 3) { | ||
| 298 | + str = 'C' | ||
| 299 | + }else if (thhPj === 4) { | ||
| 300 | + str = 'D' | ||
| 301 | + } | ||
| 302 | + return str | ||
| 303 | + } | ||
| 304 | + }, | ||
| 305 | + { | ||
| 306 | + title: '供应商评级', | ||
| 307 | + align: 'center', | ||
| 308 | + dataIndex: 'gysPj', | ||
| 309 | + customRender: function(gysPj) { | ||
| 310 | + var str = '' | ||
| 311 | + if (gysPj === 1) { | ||
| 312 | + str = 'A' | ||
| 313 | + } else if (gysPj === 2) { | ||
| 314 | + str = 'B' | ||
| 315 | + } else if (gysPj === 3) { | ||
| 316 | + str = 'C' | ||
| 317 | + } else if (gysPj === 4) { | ||
| 318 | + str = 'D' | ||
| 319 | + } | ||
| 320 | + return str | ||
| 321 | + } | ||
| 322 | + } | ||
| 323 | + ], | ||
| 324 | + url:{ | ||
| 325 | + getCgInfo: '/trade/tblTradePurchaseInfo/getCgInfo', | ||
| 326 | + file: '/trade/tblTradePurchaseInfo/pdf/base64', | ||
| 327 | + fplist: '/trade/tblTradeFpgl/list', | ||
| 328 | + paylist: '/trade/tblTradePayManage/list', | ||
| 329 | + } | ||
| 330 | + } | ||
| 331 | + }, | ||
| 332 | + methods:{ | ||
| 333 | + clearData(){ | ||
| 334 | + this.dataSource = [] | ||
| 335 | + }, | ||
| 336 | + handleCancelblp(){ | ||
| 337 | + this.visibleBlp = false | ||
| 338 | + }, | ||
| 339 | + handleConfirmblp(){ | ||
| 340 | + this.visibleBlp = false | ||
| 341 | + }, | ||
| 342 | + handleCancelpay() { | ||
| 343 | + this.visiblepay = false | ||
| 344 | + }, | ||
| 345 | + handleConfirmpay() { | ||
| 346 | + this.visiblepay = false | ||
| 347 | + }, | ||
| 348 | + handleCancelfp() { | ||
| 349 | + this.visiblefp = false | ||
| 350 | + }, | ||
| 351 | + handleConfirmfp() { | ||
| 352 | + this.visiblefp = false | ||
| 353 | + }, | ||
| 354 | + handleCancelWjck() { | ||
| 355 | + this.visibleWjck = false | ||
| 356 | + }, | ||
| 357 | + loadData(rows){ | ||
| 358 | + const row = rows[0] | ||
| 359 | + console.log("row",row) | ||
| 360 | + const materialCode = row.code | ||
| 361 | + const xjbswjh = row.xjbswjh | ||
| 362 | + getAction(this.url.getCgInfo, { | ||
| 363 | + wlbh: materialCode | ||
| 364 | + }).then((res) => { | ||
| 365 | + if (res.success) { | ||
| 366 | + this.dataSource = res.result.ycgList | ||
| 367 | + } | ||
| 368 | + | ||
| 369 | + }) | ||
| 370 | + | ||
| 371 | + }, | ||
| 372 | + blpInfo(record){ | ||
| 373 | + this.visibleBlp = true | ||
| 374 | + }, | ||
| 375 | + fkInfo(record) { | ||
| 376 | + this.modelpay = {} | ||
| 377 | + var cmid = record.id | ||
| 378 | + this.modelpay.cmId = cmid | ||
| 379 | + this.modelpay.fkfs = '1' | ||
| 380 | + this.modelpay.supplier = record.supplier | ||
| 381 | + this.modelpay.hth = record.hth | ||
| 382 | + this.modelpay.htje = record.amount | ||
| 383 | + this.paylist(cmid) | ||
| 384 | + | ||
| 385 | + this.visiblepay = true | ||
| 386 | + }, | ||
| 387 | + //根据 | ||
| 388 | + paylist(id) { | ||
| 389 | + getAction(this.url.paylist, { cmId: id }).then( | ||
| 390 | + res => { | ||
| 391 | + this.dataSourcepay = res.result.records | ||
| 392 | + } | ||
| 393 | + ) | ||
| 394 | + }, | ||
| 395 | + //打开发票管理 | ||
| 396 | + fpInfo(record) { | ||
| 397 | + this.modelfp = {} | ||
| 398 | + this.visiblefp = true | ||
| 399 | + var cmid = record.id | ||
| 400 | + this.modelfp.cmId = cmid | ||
| 401 | + this.fplist(cmid) | ||
| 402 | + | ||
| 403 | + }, | ||
| 404 | + //根据 | ||
| 405 | + fplist(id) { | ||
| 406 | + getAction(this.url.fplist, { cmId: id }).then( | ||
| 407 | + res => { | ||
| 408 | + this.dataSourcefp = res.result.records | ||
| 409 | + } | ||
| 410 | + ) | ||
| 411 | + }, | ||
| 412 | + wjInfo(record) { | ||
| 413 | + var htfjPath = '' | ||
| 414 | + if (record.htfj.indexOf(',') > 0) { | ||
| 415 | + htfjPath = record.htfj.substring(0, record.htfj.indexOf(',')) | ||
| 416 | + } else { | ||
| 417 | + htfjPath = record.htfj | ||
| 418 | + } | ||
| 419 | + getAction(this.url.file, { filePath: htfjPath }).then( | ||
| 420 | + res => { | ||
| 421 | + const base64Pdf = res.result | ||
| 422 | + this.pdfSrc = `data:application/pdf;base64,${base64Pdf}` | ||
| 423 | + } | ||
| 424 | + ) | ||
| 425 | + | ||
| 426 | + this.visibleWjck = true | ||
| 427 | + }, | ||
| 428 | + downloadFile(text) { | ||
| 429 | + if (!text) { | ||
| 430 | + this.$message.warning('未知的文件') | ||
| 431 | + return | ||
| 432 | + } | ||
| 433 | + | ||
| 434 | + // 将 text 按逗号分割成多个文件的 URL | ||
| 435 | + const fileUrls = text.split(',') | ||
| 436 | + | ||
| 437 | + // 遍历每个文件的 URL | ||
| 438 | + fileUrls.forEach((fileUrl, index) => { | ||
| 439 | + // 去除 URL 两端的空格 | ||
| 440 | + fileUrl = fileUrl.trim() | ||
| 441 | + | ||
| 442 | + // 检查 URL 是否有效 | ||
| 443 | + if (!fileUrl) { | ||
| 444 | + this.$message.warning(`第 ${index + 1} 个文件 URL 无效`) | ||
| 445 | + return // 跳过当前文件,继续下一个 | ||
| 446 | + } | ||
| 447 | + | ||
| 448 | + // 生成文件访问 URL | ||
| 449 | + let url = getFileAccessHttpUrl(fileUrl) | ||
| 450 | + | ||
| 451 | + // 检查生成的 URL 是否有效 | ||
| 452 | + if (!url) { | ||
| 453 | + this.$message.warning(`第 ${index + 1} 个文件无法生成访问链接`) | ||
| 454 | + return // 跳过当前文件,继续下一个 | ||
| 455 | + } | ||
| 456 | + | ||
| 457 | + // 使用 fetch 下载文件 | ||
| 458 | + fetch(url) | ||
| 459 | + .then(response => { | ||
| 460 | + if (!response.ok) { | ||
| 461 | + throw new Error(`第 ${index + 1} 个文件下载失败`) | ||
| 462 | + } | ||
| 463 | + return response.blob() // 将响应转换为 Blob 对象 | ||
| 464 | + }) | ||
| 465 | + .then(blob => { | ||
| 466 | + // 创建 Blob URL | ||
| 467 | + const blobUrl = URL.createObjectURL(blob) | ||
| 468 | + | ||
| 469 | + // 创建 <a> 标签并触发下载 | ||
| 470 | + const link = document.createElement('a') | ||
| 471 | + link.href = blobUrl | ||
| 472 | + link.download = fileUrl // 替换为实际文件名 | ||
| 473 | + link.style.display = 'none' | ||
| 474 | + document.body.appendChild(link) | ||
| 475 | + link.click() | ||
| 476 | + document.body.removeChild(link) | ||
| 477 | + | ||
| 478 | + // 释放 Blob URL | ||
| 479 | + URL.revokeObjectURL(blobUrl) | ||
| 480 | + }) | ||
| 481 | + .catch(error => { | ||
| 482 | + this.$message.error(`第 ${index + 1} 个文件下载失败`) | ||
| 483 | + console.error(`下载错误:`, error) | ||
| 484 | + }) | ||
| 485 | + }) | ||
| 486 | + }, | ||
| 487 | + } | ||
| 488 | +} | ||
| 489 | + | ||
| 490 | + | ||
| 491 | +</script> | ||
| 492 | +<style scoped> | ||
| 493 | + | ||
| 494 | +</style> |
src/views/trade/TabSskcList.vue
0 → 100644
| 1 | +<template> | ||
| 2 | + <a-card :bordered="false" :class="'cust-erp-sub-tab'"> | ||
| 3 | + <a-form-model ref="form" :model="model" :rules="validatorRules"> | ||
| 4 | + <a-row> | ||
| 5 | + <h1>{{ sskcTitle }}</h1> | ||
| 6 | + <hr style="width :7%;height:1px;border:none;border-top:1px solid #B0B0B0; float: left"> | ||
| 7 | + <br> | ||
| 8 | + <a-col :span="24"> | ||
| 9 | + <a-form-model-item label="库存数据" :labelCol="labelCol" :wrapperCol="wrapperCol" | ||
| 10 | + style=" width: 600px" | ||
| 11 | + > | ||
| 12 | + {{ model.actualInventory }} | ||
| 13 | + <!-- <a-input--> | ||
| 14 | + <!-- v-model="model.actualInventory"--> | ||
| 15 | + <!-- disabled="disabled"--> | ||
| 16 | + <!-- ></a-input>--> | ||
| 17 | + </a-form-model-item> | ||
| 18 | + </a-col> | ||
| 19 | + <a-col :span="24"> | ||
| 20 | + <a-form-model-item label="在途库存" :labelCol="labelCol" :wrapperCol="wrapperCol" | ||
| 21 | + style=" width: 600px"> | ||
| 22 | + <!-- <a-input--> | ||
| 23 | + <!-- v-model="model.quantityInTransit"--> | ||
| 24 | + <!-- readonly--> | ||
| 25 | + <!-- ></a-input>--> | ||
| 26 | + {{ model.quantityInTransit }} | ||
| 27 | + </a-form-model-item> | ||
| 28 | + </a-col> | ||
| 29 | + | ||
| 30 | + <h1>{{ lszbTitle }}</h1> | ||
| 31 | + <hr style="width :7%;height:1px;border:none;border-top:1px solid #B0B0B0; float: left"> | ||
| 32 | + <br> | ||
| 33 | + | ||
| 34 | + <a-col :span="24"> | ||
| 35 | + <a-form-model-item label="最近中标单价(元)" :labelCol="labelCol" :wrapperCol="wrapperCol" | ||
| 36 | + style=" width: 600px" | ||
| 37 | + > | ||
| 38 | +<!-- <a-input--> | ||
| 39 | +<!-- v-model="model.supplier"--> | ||
| 40 | +<!-- readonly--> | ||
| 41 | +<!-- ></a-input>--> | ||
| 42 | + {{model.lastWinningBidPrice}} | ||
| 43 | + </a-form-model-item> | ||
| 44 | + </a-col> | ||
| 45 | + <a-col :span="24"> | ||
| 46 | + <a-form-model-item label="最后一次中标时间" :labelCol="labelCol" :wrapperCol="wrapperCol" | ||
| 47 | + style=" width: 600px" | ||
| 48 | + > | ||
| 49 | +<!-- <a-input--> | ||
| 50 | +<!-- v-model="model.supplier"--> | ||
| 51 | +<!-- readonly--> | ||
| 52 | +<!-- ></a-input>--> | ||
| 53 | + {{model.lastBidDate}} | ||
| 54 | + </a-form-model-item> | ||
| 55 | + </a-col> | ||
| 56 | + <br> | ||
| 57 | + <h1>{{ bctbTitle }}</h1> | ||
| 58 | + <hr style="width :7%;height:1px;border:none;border-top:1px solid #B0B0B0; float: left"> | ||
| 59 | + <br> | ||
| 60 | + | ||
| 61 | + <a-col :span="24"> | ||
| 62 | + <a-form-model-item label="投标价格(元)" :labelCol="labelCol" :wrapperCol="wrapperCol" | ||
| 63 | + style=" width: 600px"> | ||
| 64 | +<!-- <a-input--> | ||
| 65 | +<!-- v-model="model.tbjg"--> | ||
| 66 | +<!-- ></a-input>--> | ||
| 67 | + {{model.tbjg}} | ||
| 68 | + </a-form-model-item> | ||
| 69 | + </a-col> | ||
| 70 | + <a-col :span="24"> | ||
| 71 | + <a-form-model-item label="投标时间" :labelCol="labelCol" :wrapperCol="wrapperCol" | ||
| 72 | + style=" width: 600px"> | ||
| 73 | +<!-- <a-input--> | ||
| 74 | +<!-- v-model="model.tbsj"--> | ||
| 75 | +<!-- ></a-input>--> | ||
| 76 | + {{model.tbsj}} | ||
| 77 | + </a-form-model-item> | ||
| 78 | + </a-col> | ||
| 79 | + <a-col :span="24"> | ||
| 80 | + <a-form-model-item label="投标人" :labelCol="labelCol" :wrapperCol="wrapperCol" | ||
| 81 | + style=" width: 600px"> | ||
| 82 | +<!-- <a-input--> | ||
| 83 | +<!-- v-model="model.tbr"--> | ||
| 84 | +<!-- ></a-input>--> | ||
| 85 | + {{model.tbr}} | ||
| 86 | + </a-form-model-item> | ||
| 87 | + </a-col> | ||
| 88 | + | ||
| 89 | + | ||
| 90 | + <h1>{{ bczbTitle }}</h1> | ||
| 91 | + <hr style="width :7%;height:1px;border:none;border-top:1px solid #B0B0B0; float: left"> | ||
| 92 | + <br> | ||
| 93 | + | ||
| 94 | + <a-col :span="24"> | ||
| 95 | + <a-form-model-item label="中标单价(元)" :labelCol="labelCol" :wrapperCol="wrapperCol" | ||
| 96 | + style=" width: 600px"> | ||
| 97 | +<!-- <a-input--> | ||
| 98 | +<!-- v-model="model.zbdj"--> | ||
| 99 | +<!-- ></a-input>--> | ||
| 100 | + {{model.zbdj}} | ||
| 101 | + </a-form-model-item> | ||
| 102 | + </a-col> | ||
| 103 | + <a-col :span="24"> | ||
| 104 | + <a-form-model-item label="中标时间" :labelCol="labelCol" :wrapperCol="wrapperCol" | ||
| 105 | + style=" width: 600px"> | ||
| 106 | +<!-- <a-input--> | ||
| 107 | +<!-- v-model="model.zbsj"--> | ||
| 108 | +<!-- ></a-input>--> | ||
| 109 | + {{model.zbsj}} | ||
| 110 | + </a-form-model-item> | ||
| 111 | + </a-col> | ||
| 112 | + | ||
| 113 | + | ||
| 114 | + </a-row> | ||
| 115 | + | ||
| 116 | + </a-form-model> | ||
| 117 | + </a-card> | ||
| 118 | +</template> | ||
| 119 | + | ||
| 120 | +<script> | ||
| 121 | + | ||
| 122 | +import { JeecgListMixin } from '@/mixins/JeecgListMixin' | ||
| 123 | +import TblTradeTenderInfoTab2Modal from './modules/TblTradeTenderInfoTab2Modal.vue' | ||
| 124 | +import { getAction } from '@api/manage' | ||
| 125 | + | ||
| 126 | +export default { | ||
| 127 | + name: 'TblTradeInquiryInfoList', | ||
| 128 | + mixins: [JeecgListMixin], | ||
| 129 | + components: { TblTradeTenderInfoTab2Modal }, | ||
| 130 | + props: { | ||
| 131 | + selectedRowData: { | ||
| 132 | + type: Object, | ||
| 133 | + default: () => ({}) | ||
| 134 | + } | ||
| 135 | + }, | ||
| 136 | + watch: {}, | ||
| 137 | + data() { | ||
| 138 | + return { | ||
| 139 | + sskcTitle: '实时库存', | ||
| 140 | + lszbTitle: '历史中标信息', | ||
| 141 | + bctbTitle: '本次投标信息', | ||
| 142 | + bczbTitle: '本次中标信息', | ||
| 143 | + model: {}, | ||
| 144 | + labelCol: { | ||
| 145 | + xs: { span: 24 }, | ||
| 146 | + sm: { span: 8 } | ||
| 147 | + }, | ||
| 148 | + wrapperCol: { | ||
| 149 | + xs: { span: 24 }, | ||
| 150 | + sm: { span: 16 } | ||
| 151 | + }, | ||
| 152 | + validatorRules: {}, | ||
| 153 | + description: '贸易招标信息管理页面', | ||
| 154 | + disableMixinCreated: true, | ||
| 155 | + // 表头 | ||
| 156 | + columns: [ | ||
| 157 | + { | ||
| 158 | + title: '#', | ||
| 159 | + dataIndex: '', | ||
| 160 | + key: 'rowIndex', | ||
| 161 | + width: 60, | ||
| 162 | + align: 'center', | ||
| 163 | + customRender: function(t, r, index) { | ||
| 164 | + return parseInt(index) + 1 | ||
| 165 | + } | ||
| 166 | + }, | ||
| 167 | + { | ||
| 168 | + title: '库存数据', | ||
| 169 | + align: 'center', | ||
| 170 | + dataIndex: 'ghsmc' | ||
| 171 | + }, | ||
| 172 | + { | ||
| 173 | + title: '在途库存', | ||
| 174 | + align: 'center', | ||
| 175 | + dataIndex: 'tel' | ||
| 176 | + }, | ||
| 177 | + { | ||
| 178 | + title: '库存单价(含税运)', | ||
| 179 | + align: 'center', | ||
| 180 | + dataIndex: 'wldz' | ||
| 181 | + }, | ||
| 182 | + { | ||
| 183 | + title: '在途单价(含税运)', | ||
| 184 | + align: 'center', | ||
| 185 | + dataIndex: 'wxh' | ||
| 186 | + } | ||
| 187 | + ], | ||
| 188 | + url: { | ||
| 189 | + list: '/trade/tblTradeInventory/list', | ||
| 190 | + getHistoryBidInfo: '/trade/tblTradeBidMaterialDetails/getHistoryBidInfo', | ||
| 191 | + getBidInfo: '/trade/tblTradeBidSub/getBidInfo', | ||
| 192 | + getBidMaterialDetailsInfo: '/trade/tblTradeTenderInfo/getBidMaterialDetailsInfo' | ||
| 193 | + }, | ||
| 194 | + dictOptions: {} | ||
| 195 | + } | ||
| 196 | + }, | ||
| 197 | + created() { | ||
| 198 | + }, | ||
| 199 | + computed: {}, | ||
| 200 | + methods: { | ||
| 201 | + clearData(){ | ||
| 202 | + this.model = {} | ||
| 203 | + this.sskcTitle = '实时库存' | ||
| 204 | + }, | ||
| 205 | + loadData(rows) { | ||
| 206 | + if (rows) { | ||
| 207 | + const row = rows[0] | ||
| 208 | + console.log("row",row) | ||
| 209 | + const materialCode = row.code | ||
| 210 | + const xjbswjh = row.xjbswjh | ||
| 211 | + const param = { | ||
| 212 | + materialCode: materialCode | ||
| 213 | + } | ||
| 214 | + this.sskcTitle = '实时库存-' + materialCode | ||
| 215 | + //获取库存数据 | ||
| 216 | + getAction(this.url.list, param).then((res) => { | ||
| 217 | + if (res.success) { | ||
| 218 | + if (res.result.records) { | ||
| 219 | + const record = res.result.records[0] | ||
| 220 | + //库存数据 | ||
| 221 | + this.$set(this.model, 'actualInventory', record.actualInventory) | ||
| 222 | + //在途库存 | ||
| 223 | + this.$set(this.model, 'quantityInTransit', record.quantityInTransit) | ||
| 224 | + } | ||
| 225 | + } | ||
| 226 | + }) | ||
| 227 | + //获取历史中标信息 | ||
| 228 | + getAction(this.url.getHistoryBidInfo, param).then((res) => { | ||
| 229 | + if (res.success) { | ||
| 230 | + if (res.result) { | ||
| 231 | + //最近中标单价(元) | ||
| 232 | + this.$set(this.model,"lastBidDate",res.result.lastBidDate) | ||
| 233 | + //最后一次中标时间 | ||
| 234 | + this.$set(this.model,"lastWinningBidPrice",res.result.lastWinningBidPrice) | ||
| 235 | + } | ||
| 236 | + } | ||
| 237 | + }) | ||
| 238 | + //获取本次投标信息 | ||
| 239 | + getAction(this.url.getBidInfo, { | ||
| 240 | + wlbm: materialCode, | ||
| 241 | + xjbswjh: xjbswjh, | ||
| 242 | + }).then((res) => { | ||
| 243 | + if (res.success) { | ||
| 244 | + if (res.result) { | ||
| 245 | + console.log("result11111111111",res.result) | ||
| 246 | + //投标价格 | ||
| 247 | + this.$set(this.model,"tbjg",res.result.xydj) | ||
| 248 | + //投标时间 | ||
| 249 | + this.$set(this.model,"tbsj",res.result.createTime) | ||
| 250 | + //投标人 | ||
| 251 | + this.$set(this.model,"tbr",res.result.createBy) | ||
| 252 | + } | ||
| 253 | + } | ||
| 254 | + }) | ||
| 255 | + //获取本次中标信息 | ||
| 256 | + getAction(this.url.getBidMaterialDetailsInfo, { | ||
| 257 | + materialCode: materialCode, | ||
| 258 | + bidNum: xjbswjh, | ||
| 259 | + isBid: 1, | ||
| 260 | + }).then((res) => { | ||
| 261 | + if (res.success) { | ||
| 262 | + if (res.result) { | ||
| 263 | + console.log("result",res.result) | ||
| 264 | + //投标价格 | ||
| 265 | + this.$set(this.model,"zbdj",res.result.winningBidPrice) | ||
| 266 | + //投标时间 | ||
| 267 | + this.$set(this.model,"zbsj",res.result.bidDate) | ||
| 268 | + | ||
| 269 | + } | ||
| 270 | + } | ||
| 271 | + }) | ||
| 272 | + } | ||
| 273 | + }, | ||
| 274 | + clearList() { | ||
| 275 | + this.dataSource = [] | ||
| 276 | + this.selectedRowKeys = [] | ||
| 277 | + this.ipagination.current = 1 | ||
| 278 | + } | ||
| 279 | + | ||
| 280 | + } | ||
| 281 | +} | ||
| 282 | +</script> | ||
| 283 | +<style scoped> | ||
| 284 | +@import '~@assets/less/common.less' | ||
| 285 | +</style> |
| @@ -2,7 +2,7 @@ | @@ -2,7 +2,7 @@ | ||
| 2 | <a-card :bordered="false"> | 2 | <a-card :bordered="false"> |
| 3 | <!-- 查询区域 --> | 3 | <!-- 查询区域 --> |
| 4 | <div class="table-page-search-wrapper"> | 4 | <div class="table-page-search-wrapper"> |
| 5 | - <a-form layout="inline" @keyup.enter.native="searchQuery"> | 5 | + <a-form layout="inline" @keyup.enter.native="searchQuery(1)"> |
| 6 | <a-row :gutter="24"> | 6 | <a-row :gutter="24"> |
| 7 | <a-col :xl="6" :lg="7" :md="8" :sm="24"> | 7 | <a-col :xl="6" :lg="7" :md="8" :sm="24"> |
| 8 | <a-form-item label="物料编码"> | 8 | <a-form-item label="物料编码"> |
| @@ -14,46 +14,46 @@ | @@ -14,46 +14,46 @@ | ||
| 14 | <a-input placeholder="请输入物料长描述" v-model="queryParam.miaoshu"></a-input> | 14 | <a-input placeholder="请输入物料长描述" v-model="queryParam.miaoshu"></a-input> |
| 15 | </a-form-item> | 15 | </a-form-item> |
| 16 | </a-col> | 16 | </a-col> |
| 17 | - <a-col :xl="6" :lg="7" :md="8" :sm="24"> | ||
| 18 | - <a-form-item label="需求交货期"> | ||
| 19 | - <j-date v-model="queryParam.xqjhq" placeholder="请选择计划完成日期" /> | ||
| 20 | - </a-form-item> | ||
| 21 | - </a-col> | ||
| 22 | - <a-col :xl="6" :lg="7" :md="8" :sm="24"> | ||
| 23 | - <a-form-item label="询单状态"> | ||
| 24 | - <a-select v-model="queryParam.xdzt" placeholder="请选择" allowClear> | ||
| 25 | - <a-select-option value="未完成">未完成</a-select-option> | ||
| 26 | - <a-select-option value="已完成">已完成</a-select-option> | ||
| 27 | - </a-select> | ||
| 28 | - </a-form-item> | ||
| 29 | - </a-col> | ||
| 30 | - <a-col :xl="6" :lg="7" :md="8" :sm="24"> | ||
| 31 | - <a-form-item label="是否投标"> | ||
| 32 | - <a-select v-model="queryParam.sftb" placeholder="请选择" allowClear> | ||
| 33 | - <a-select-option value="是">是</a-select-option> | ||
| 34 | - <a-select-option value="否">否</a-select-option> | ||
| 35 | - </a-select> | ||
| 36 | - </a-form-item> | ||
| 37 | - </a-col> | ||
| 38 | - <a-col :xl="6" :lg="7" :md="8" :sm="24"> | ||
| 39 | - <a-form-item label="是否中标"> | ||
| 40 | - <a-select v-model="queryParam.sfzb" placeholder="请选择" allowClear> | ||
| 41 | - <a-select-option value="是">是</a-select-option> | ||
| 42 | - <a-select-option value="否">否</a-select-option> | ||
| 43 | - </a-select> | ||
| 44 | - </a-form-item> | ||
| 45 | - </a-col> | ||
| 46 | - <a-col :xl="6" :lg="7" :md="8" :sm="24"> | ||
| 47 | - <a-form-item label="是否采购"> | ||
| 48 | - <a-select v-model="queryParam.sfcg" placeholder="请选择" allowClear> | ||
| 49 | - <a-select-option value="是">是</a-select-option> | ||
| 50 | - <a-select-option value="否">否</a-select-option> | ||
| 51 | - </a-select> | ||
| 52 | - </a-form-item> | ||
| 53 | - </a-col> | 17 | +<!-- <a-col :xl="6" :lg="7" :md="8" :sm="24">--> |
| 18 | +<!-- <a-form-item label="需求交货期">--> | ||
| 19 | +<!-- <j-date v-model="queryParam.xqjhq" placeholder="请选择计划完成日期" />--> | ||
| 20 | +<!-- </a-form-item>--> | ||
| 21 | +<!-- </a-col>--> | ||
| 22 | +<!-- <a-col :xl="6" :lg="7" :md="8" :sm="24">--> | ||
| 23 | +<!-- <a-form-item label="询单状态">--> | ||
| 24 | +<!-- <a-select v-model="queryParam.xdzt" placeholder="请选择" allowClear>--> | ||
| 25 | +<!-- <a-select-option value="未完成">未完成</a-select-option>--> | ||
| 26 | +<!-- <a-select-option value="已完成">已完成</a-select-option>--> | ||
| 27 | +<!-- </a-select>--> | ||
| 28 | +<!-- </a-form-item>--> | ||
| 29 | +<!-- </a-col>--> | ||
| 30 | +<!-- <a-col :xl="6" :lg="7" :md="8" :sm="24">--> | ||
| 31 | +<!-- <a-form-item label="是否投标">--> | ||
| 32 | +<!-- <a-select v-model="queryParam.sftb" placeholder="请选择" allowClear>--> | ||
| 33 | +<!-- <a-select-option value="是">是</a-select-option>--> | ||
| 34 | +<!-- <a-select-option value="否">否</a-select-option>--> | ||
| 35 | +<!-- </a-select>--> | ||
| 36 | +<!-- </a-form-item>--> | ||
| 37 | +<!-- </a-col>--> | ||
| 38 | +<!-- <a-col :xl="6" :lg="7" :md="8" :sm="24">--> | ||
| 39 | +<!-- <a-form-item label="是否中标">--> | ||
| 40 | +<!-- <a-select v-model="queryParam.sfzb" placeholder="请选择" allowClear>--> | ||
| 41 | +<!-- <a-select-option value="是">是</a-select-option>--> | ||
| 42 | +<!-- <a-select-option value="否">否</a-select-option>--> | ||
| 43 | +<!-- </a-select>--> | ||
| 44 | +<!-- </a-form-item>--> | ||
| 45 | +<!-- </a-col>--> | ||
| 46 | +<!-- <a-col :xl="6" :lg="7" :md="8" :sm="24">--> | ||
| 47 | +<!-- <a-form-item label="是否采购">--> | ||
| 48 | +<!-- <a-select v-model="queryParam.sfcg" placeholder="请选择" allowClear>--> | ||
| 49 | +<!-- <a-select-option value="是">是</a-select-option>--> | ||
| 50 | +<!-- <a-select-option value="否">否</a-select-option>--> | ||
| 51 | +<!-- </a-select>--> | ||
| 52 | +<!-- </a-form-item>--> | ||
| 53 | +<!-- </a-col>--> | ||
| 54 | <a-col :xl="6" :lg="7" :md="8" :sm="24"> | 54 | <a-col :xl="6" :lg="7" :md="8" :sm="24"> |
| 55 | <span style="float: left;overflow: hidden;" class="table-page-search-submitButtons"> | 55 | <span style="float: left;overflow: hidden;" class="table-page-search-submitButtons"> |
| 56 | - <a-button type="primary" @click="searchQuery" icon="search">查询</a-button> | 56 | + <a-button type="primary" @click="searchQuery(1)" icon="search">查询</a-button> |
| 57 | <a-button type="primary" @click="searchReset" icon="reload" style="margin-left: 8px">重置</a-button> | 57 | <a-button type="primary" @click="searchReset" icon="reload" style="margin-left: 8px">重置</a-button> |
| 58 | <!-- <a @click="handleToggleSearch" style="margin-left: 8px"> | 58 | <!-- <a @click="handleToggleSearch" style="margin-left: 8px"> |
| 59 | {{ toggleSearchStatus ? '收起' : '展开' }} | 59 | {{ toggleSearchStatus ? '收起' : '展开' }} |
| @@ -70,17 +70,20 @@ | @@ -70,17 +70,20 @@ | ||
| 70 | <div class="table-operator"> | 70 | <div class="table-operator"> |
| 71 | <!-- <a-button @click="handleAdd" type="primary" icon="plus">新增</a-button> | 71 | <!-- <a-button @click="handleAdd" type="primary" icon="plus">新增</a-button> |
| 72 | <a-button type="primary" icon="download" @click="handleExportXls('贸易招标信息')">导出</a-button> --> | 72 | <a-button type="primary" icon="download" @click="handleExportXls('贸易招标信息')">导出</a-button> --> |
| 73 | - <a-upload name="file" :showUploadList="false" :multiple="false" :headers="tokenHeader" :action="importExcelUrl" @change="handleImportExcel"> | 73 | + <a-upload name="file" :showUploadList="false" :multiple="false" :headers="tokenHeader" :action="importExcelUrl" |
| 74 | + @change="handleImportExcel"> | ||
| 74 | <a-button type="primary" icon="import">导入招标信息</a-button> | 75 | <a-button type="primary" icon="import">导入招标信息</a-button> |
| 75 | </a-upload> | 76 | </a-upload> |
| 76 | <!-- 高级查询区域 --> | 77 | <!-- 高级查询区域 --> |
| 77 | - <j-super-query :fieldList="superFieldList" ref="superQueryModal" @handleSuperQuery="handleSuperQuery"></j-super-query> | 78 | +<!-- <j-super-query :fieldList="superFieldList" ref="superQueryModal"--> |
| 79 | +<!-- @handleSuperQuery="handleSuperQuery"></j-super-query>--> | ||
| 78 | </div> | 80 | </div> |
| 79 | 81 | ||
| 80 | <!-- table区域-begin --> | 82 | <!-- table区域-begin --> |
| 81 | <div> | 83 | <div> |
| 82 | <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;"> | 84 | <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;"> |
| 83 | - <i class="anticon anticon-info-circle ant-alert-icon"></i> 已选择 <a style="font-weight: 600">{{ selectedRowKeys.length }}</a>项 | 85 | + <i class="anticon anticon-info-circle ant-alert-icon"></i> 已选择 <a |
| 86 | + style="font-weight: 600">{{ selectedRowKeys.length }}</a>项 | ||
| 84 | <a style="margin-left: 24px" @click="onClearSelected">清空</a> | 87 | <a style="margin-left: 24px" @click="onClearSelected">清空</a> |
| 85 | </div> | 88 | </div> |
| 86 | 89 | ||
| @@ -95,7 +98,7 @@ | @@ -95,7 +98,7 @@ | ||
| 95 | :dataSource="dataSource" | 98 | :dataSource="dataSource" |
| 96 | :pagination="ipagination" | 99 | :pagination="ipagination" |
| 97 | :loading="loading" | 100 | :loading="loading" |
| 98 | - :rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange, type:'radio'}" | 101 | + :rowSelection="{selectedRowKeys: selectedRowKeys, onChange: handleRowClick, type:'radio'}" |
| 99 | :customRow="clickThenSelect" | 102 | :customRow="clickThenSelect" |
| 100 | @change="handleTableChange"> | 103 | @change="handleTableChange"> |
| 101 | 104 | ||
| @@ -104,7 +107,8 @@ | @@ -104,7 +107,8 @@ | ||
| 104 | </template> | 107 | </template> |
| 105 | <template slot="imgSlot" slot-scope="text,record"> | 108 | <template slot="imgSlot" slot-scope="text,record"> |
| 106 | <span v-if="!text" style="font-size: 12px;font-style: italic;">无图片</span> | 109 | <span v-if="!text" style="font-size: 12px;font-style: italic;">无图片</span> |
| 107 | - <img v-else :src="getImgView(text)" :preview="record.id" height="25px" alt="" style="max-width:80px;font-size: 12px;font-style: italic;"/> | 110 | + <img v-else :src="getImgView(text)" :preview="record.id" height="25px" alt="" |
| 111 | + style="max-width:80px;font-size: 12px;font-style: italic;" /> | ||
| 108 | </template> | 112 | </template> |
| 109 | <template slot="fileSlot" slot-scope="text"> | 113 | <template slot="fileSlot" slot-scope="text"> |
| 110 | <span v-if="!text" style="font-size: 12px;font-style: italic;">无文件</span> | 114 | <span v-if="!text" style="font-size: 12px;font-style: italic;">无文件</span> |
| @@ -139,178 +143,183 @@ | @@ -139,178 +143,183 @@ | ||
| 139 | </div> | 143 | </div> |
| 140 | 144 | ||
| 141 | <a-tabs defaultActiveKey="1"> | 145 | <a-tabs defaultActiveKey="1"> |
| 142 | - <a-tab-pane tab="询单情况" key="1" > | ||
| 143 | - <TblTradeTenderInfoTab2List :mainId="tblTradeInquiryInfoMainId" /> | 146 | + <a-tab-pane tab="物料信息" key="1"> |
| 147 | + <tab-sskc-list ref="tabSskcList" /> | ||
| 148 | + </a-tab-pane> | ||
| 149 | + <a-tab-pane tab="询单情况" key="2" forceRender> | ||
| 150 | + <tbl-trade-tender-info-tab2-list ref="tblTradeTenderInfoTab2List" /> | ||
| 144 | </a-tab-pane> | 151 | </a-tab-pane> |
| 145 | - <a-tab-pane tab="采买信息" key="2" forceRender> | ||
| 146 | - <TblTradeTenderInfoTab6List :mainId="tblTradeBidSubMainId" /> | 152 | + <a-tab-pane tab="采买信息" key="3" forceRender> |
| 153 | + <tab-cm-info-list ref="tabCmInfoList" /> | ||
| 147 | </a-tab-pane> | 154 | </a-tab-pane> |
| 148 | </a-tabs> | 155 | </a-tabs> |
| 149 | - | ||
| 150 | - <tblTradeTenderInfo-modal ref="modalForm" @ok="modalFormOk"></tblTradeTenderInfo-modal> | ||
| 151 | </a-card> | 156 | </a-card> |
| 152 | </template> | 157 | </template> |
| 153 | 158 | ||
| 154 | <script> | 159 | <script> |
| 155 | 160 | ||
| 156 | - import { JeecgListMixin } from '@/mixins/JeecgListMixin' | ||
| 157 | - import TblTradeTenderInfoModal from './modules/TblTradeTenderInfoModal' | ||
| 158 | - import { getAction } from '@/api/manage' | ||
| 159 | - import TblTradeTenderInfoTab2List from './TblTradeTenderInfoTab2List.vue' | ||
| 160 | - import TblTradeTenderInfoTab6List from './TblTradeTenderInfoTab6List.vue' | ||
| 161 | - import '@/assets/less/TableExpand.less' | 161 | +import { JeecgListMixin } from '@/mixins/JeecgListMixin' |
| 162 | +import TblTradeTenderInfoModal from './modules/TblTradeTenderInfoModal' | ||
| 163 | +import { getAction } from '@/api/manage' | ||
| 164 | +import TblTradeTenderInfoTab2List from './TblTradeTenderInfoTab2List.vue' | ||
| 165 | +import TblTradeTenderInfoTab6List from './TblTradeTenderInfoTab6List.vue' | ||
| 166 | +import '@/assets/less/TableExpand.less' | ||
| 167 | +import TabSskcList from '@views/trade/TabSskcList.vue' | ||
| 168 | +import TabCmInfoList from '@views/trade/TabCmInfoList.vue' | ||
| 162 | 169 | ||
| 163 | - export default { | ||
| 164 | - name: "TblTradeTenderInfoList", | ||
| 165 | - mixins:[JeecgListMixin], | 170 | +export default { |
| 171 | + name: 'TblTradeTenderInfoList', | ||
| 172 | + mixins: [JeecgListMixin], | ||
| 166 | components: { | 173 | components: { |
| 174 | + TabCmInfoList, | ||
| 175 | + TabSskcList, | ||
| 167 | TblTradeTenderInfoTab2List, | 176 | TblTradeTenderInfoTab2List, |
| 168 | TblTradeTenderInfoTab6List, | 177 | TblTradeTenderInfoTab6List, |
| 169 | TblTradeTenderInfoModal | 178 | TblTradeTenderInfoModal |
| 170 | }, | 179 | }, |
| 171 | - data () { | 180 | + data() { |
| 172 | return { | 181 | return { |
| 173 | description: '贸易招标信息管理页面', | 182 | description: '贸易招标信息管理页面', |
| 174 | // 表头 | 183 | // 表头 |
| 175 | columns: [ | 184 | columns: [ |
| 185 | + // { | ||
| 186 | + // title:'招标号', | ||
| 187 | + // align:"center", | ||
| 188 | + // dataIndex: 'xjbswjh' | ||
| 189 | + // }, | ||
| 176 | { | 190 | { |
| 177 | - title:'招标号', | ||
| 178 | - align:"center", | ||
| 179 | - dataIndex: 'tenderNo' | ||
| 180 | - }, | ||
| 181 | - { | ||
| 182 | - title:'物料编码', | ||
| 183 | - align:"center", | 191 | + title: '物料编码', |
| 192 | + align: 'center', | ||
| 184 | dataIndex: 'code' | 193 | dataIndex: 'code' |
| 185 | }, | 194 | }, |
| 186 | { | 195 | { |
| 187 | - title:'标段(包)名称', | ||
| 188 | - align:"center", | 196 | + title: '标段(包)名称', |
| 197 | + align: 'center', | ||
| 189 | dataIndex: 'tenderName' | 198 | dataIndex: 'tenderName' |
| 190 | }, | 199 | }, |
| 191 | { | 200 | { |
| 192 | - title:'物料长描述', | ||
| 193 | - align:"center", | 201 | + title: '物料长描述', |
| 202 | + align: 'center', | ||
| 194 | dataIndex: 'miaoshu' | 203 | dataIndex: 'miaoshu' |
| 195 | }, | 204 | }, |
| 196 | { | 205 | { |
| 197 | - title:'计量单位', | ||
| 198 | - align:"center", | 206 | + title: '计量单位', |
| 207 | + align: 'center', | ||
| 199 | dataIndex: 'jldw' | 208 | dataIndex: 'jldw' |
| 200 | }, | 209 | }, |
| 201 | { | 210 | { |
| 202 | - title:'需求数量', | ||
| 203 | - align:"center", | 211 | + title: '需求数量', |
| 212 | + align: 'center', | ||
| 204 | dataIndex: 'xqsl' | 213 | dataIndex: 'xqsl' |
| 205 | }, | 214 | }, |
| 206 | { | 215 | { |
| 207 | - title:'需求交货期', | ||
| 208 | - align:"center", | 216 | + title: '需求交货期', |
| 217 | + align: 'center', | ||
| 209 | dataIndex: 'xqjhq', | 218 | dataIndex: 'xqjhq', |
| 210 | - customRender:function (text) { | ||
| 211 | - return !text?"":(text.length>10?text.substr(0,10):text) | 219 | + customRender: function(text) { |
| 220 | + return !text ? '' : (text.length > 10 ? text.substr(0, 10) : text) | ||
| 212 | } | 221 | } |
| 213 | }, | 222 | }, |
| 214 | { | 223 | { |
| 215 | - title:'品牌', | ||
| 216 | - align:"center", | 224 | + title: '品牌', |
| 225 | + align: 'center', | ||
| 217 | dataIndex: 'pinpai' | 226 | dataIndex: 'pinpai' |
| 218 | }, | 227 | }, |
| 219 | { | 228 | { |
| 220 | - title:'税率', | ||
| 221 | - align:"center", | 229 | + title: '税率', |
| 230 | + align: 'center', | ||
| 222 | dataIndex: 'sl' | 231 | dataIndex: 'sl' |
| 223 | }, | 232 | }, |
| 224 | { | 233 | { |
| 225 | - title:'响应单价', | ||
| 226 | - align:"center", | 234 | + title: '响应单价', |
| 235 | + align: 'center', | ||
| 227 | dataIndex: 'xydj' | 236 | dataIndex: 'xydj' |
| 228 | }, | 237 | }, |
| 229 | { | 238 | { |
| 230 | - title:'响应数量', | ||
| 231 | - align:"center", | 239 | + title: '响应数量', |
| 240 | + align: 'center', | ||
| 232 | dataIndex: 'xysl' | 241 | dataIndex: 'xysl' |
| 233 | }, | 242 | }, |
| 234 | { | 243 | { |
| 235 | - title:'响应交货期', | ||
| 236 | - align:"center", | 244 | + title: '响应交货期', |
| 245 | + align: 'center', | ||
| 237 | dataIndex: 'xyjhq' | 246 | dataIndex: 'xyjhq' |
| 238 | }, | 247 | }, |
| 239 | { | 248 | { |
| 240 | - title:'响应说明', | ||
| 241 | - align:"center", | 249 | + title: '响应说明', |
| 250 | + align: 'center', | ||
| 242 | dataIndex: 'xysm' | 251 | dataIndex: 'xysm' |
| 243 | }, | 252 | }, |
| 244 | { | 253 | { |
| 245 | - title:'响应品牌', | ||
| 246 | - align:"center", | 254 | + title: '响应品牌', |
| 255 | + align: 'center', | ||
| 247 | dataIndex: 'xypp' | 256 | dataIndex: 'xypp' |
| 248 | }, | 257 | }, |
| 249 | { | 258 | { |
| 250 | - title:'响应币种', | ||
| 251 | - align:"center", | 259 | + title: '响应币种', |
| 260 | + align: 'center', | ||
| 252 | dataIndex: 'xybz' | 261 | dataIndex: 'xybz' |
| 253 | }, | 262 | }, |
| 254 | { | 263 | { |
| 255 | - title:'交货期否决项', | ||
| 256 | - align:"center", | 264 | + title: '交货期否决项', |
| 265 | + align: 'center', | ||
| 257 | dataIndex: 'jhqfjx' | 266 | dataIndex: 'jhqfjx' |
| 258 | }, | 267 | }, |
| 259 | { | 268 | { |
| 260 | - title:'付款方式否决项', | ||
| 261 | - align:"center", | 269 | + title: '付款方式否决项', |
| 270 | + align: 'center', | ||
| 262 | dataIndex: 'fkfsfjx' | 271 | dataIndex: 'fkfsfjx' |
| 263 | }, | 272 | }, |
| 264 | { | 273 | { |
| 265 | - title:'规格型号否决项', | ||
| 266 | - align:"center", | 274 | + title: '规格型号否决项', |
| 275 | + align: 'center', | ||
| 267 | dataIndex: 'ggxhfjx' | 276 | dataIndex: 'ggxhfjx' |
| 268 | }, | 277 | }, |
| 269 | { | 278 | { |
| 270 | - title:'品牌否决项', | ||
| 271 | - align:"center", | 279 | + title: '品牌否决项', |
| 280 | + align: 'center', | ||
| 272 | dataIndex: 'ppfjx' | 281 | dataIndex: 'ppfjx' |
| 273 | }, | 282 | }, |
| 274 | { | 283 | { |
| 275 | - title:'需求单位', | ||
| 276 | - align:"center", | 284 | + title: '需求单位', |
| 285 | + align: 'center', | ||
| 277 | dataIndex: 'xqdw' | 286 | dataIndex: 'xqdw' |
| 278 | }, | 287 | }, |
| 279 | { | 288 | { |
| 280 | - title:'备注', | ||
| 281 | - align:"center", | 289 | + title: '备注', |
| 290 | + align: 'center', | ||
| 282 | dataIndex: 'bz' | 291 | dataIndex: 'bz' |
| 283 | }, | 292 | }, |
| 284 | { | 293 | { |
| 285 | - title:'询价标书文件号', | ||
| 286 | - align:"center", | 294 | + title: '询价标书文件号', |
| 295 | + align: 'center', | ||
| 287 | dataIndex: 'xjbswjh' | 296 | dataIndex: 'xjbswjh' |
| 288 | }, | 297 | }, |
| 289 | { | 298 | { |
| 290 | - title:'项目类型', | ||
| 291 | - align:"center", | 299 | + title: '项目类型', |
| 300 | + align: 'center', | ||
| 292 | dataIndex: 'xmlx' | 301 | dataIndex: 'xmlx' |
| 293 | }, | 302 | }, |
| 294 | { | 303 | { |
| 295 | - title:'送货地址', | ||
| 296 | - align:"center", | 304 | + title: '送货地址', |
| 305 | + align: 'center', | ||
| 297 | dataIndex: 'shdz' | 306 | dataIndex: 'shdz' |
| 298 | }, | 307 | }, |
| 299 | { | 308 | { |
| 300 | - title:'优先等级', | ||
| 301 | - align:"center", | 309 | + title: '优先等级', |
| 310 | + align: 'center', | ||
| 302 | dataIndex: 'yxdj' | 311 | dataIndex: 'yxdj' |
| 303 | }, | 312 | }, |
| 304 | { | 313 | { |
| 305 | - title:'询价计划完成日期', | ||
| 306 | - align:"center", | 314 | + title: '询价计划完成日期', |
| 315 | + align: 'center', | ||
| 307 | dataIndex: 'xjjhwcsj' | 316 | dataIndex: 'xjjhwcsj' |
| 308 | }, | 317 | }, |
| 309 | { | 318 | { |
| 310 | - title:'标的类型', | ||
| 311 | - align:"center", | 319 | + title: '标的类型', |
| 320 | + align: 'center', | ||
| 312 | dataIndex: 'bdlx' | 321 | dataIndex: 'bdlx' |
| 313 | - }, | 322 | + } |
| 314 | // { | 323 | // { |
| 315 | // title: '操作', | 324 | // title: '操作', |
| 316 | // dataIndex: 'action', | 325 | // dataIndex: 'action', |
| @@ -321,121 +330,178 @@ | @@ -321,121 +330,178 @@ | ||
| 321 | // } | 330 | // } |
| 322 | ], | 331 | ], |
| 323 | url: { | 332 | url: { |
| 324 | - list: "/trade/tblTradeTenderInfo/list", | ||
| 325 | - delete: "/trade/tblTradeTenderInfo/delete", | ||
| 326 | - deleteBatch: "/trade/tblTradeTenderInfo/deleteBatch", | ||
| 327 | - exportXlsUrl: "/trade/tblTradeTenderInfo/exportXls", | ||
| 328 | - importExcelUrl: "trade/tblTradeTenderInfo/importExcel", | ||
| 329 | - }, | ||
| 330 | - dictOptions:{ | 333 | + list: '/trade/tblTradeTenderInfo/list', |
| 334 | + delete: '/trade/tblTradeTenderInfo/delete', | ||
| 335 | + deleteBatch: '/trade/tblTradeTenderInfo/deleteBatch', | ||
| 336 | + exportXlsUrl: '/trade/tblTradeTenderInfo/exportXls', | ||
| 337 | + importExcelUrl: 'trade/tblTradeTenderInfo/importExcel' | ||
| 331 | }, | 338 | }, |
| 339 | + dictOptions: {}, | ||
| 332 | /* 分页参数 */ | 340 | /* 分页参数 */ |
| 333 | - ipagination:{ | 341 | + ipagination: { |
| 334 | current: 1, | 342 | current: 1, |
| 335 | pageSize: 5, | 343 | pageSize: 5, |
| 336 | pageSizeOptions: ['5', '10', '50'], | 344 | pageSizeOptions: ['5', '10', '50'], |
| 337 | showTotal: (total, range) => { | 345 | showTotal: (total, range) => { |
| 338 | - return range[0] + "-" + range[1] + " 共" + total + "条" | 346 | + return range[0] + '-' + range[1] + ' 共' + total + '条' |
| 339 | }, | 347 | }, |
| 340 | showQuickJumper: true, | 348 | showQuickJumper: true, |
| 341 | showSizeChanger: true, | 349 | showSizeChanger: true, |
| 342 | total: 0 | 350 | total: 0 |
| 343 | }, | 351 | }, |
| 344 | - selectedMainId:'', | ||
| 345 | - superFieldList:[], | 352 | + selectedMainId: '', |
| 353 | + superFieldList: [], | ||
| 346 | tblTradeInquiryInfoMainId: '', | 354 | tblTradeInquiryInfoMainId: '', |
| 347 | tblTradeBidSubMainId: '', | 355 | tblTradeBidSubMainId: '', |
| 356 | + selectedRowData: {} | ||
| 348 | } | 357 | } |
| 349 | }, | 358 | }, |
| 350 | created() { | 359 | created() { |
| 351 | - this.getSuperFieldList(); | 360 | + this.getSuperFieldList() |
| 352 | }, | 361 | }, |
| 353 | computed: { | 362 | computed: { |
| 354 | - importExcelUrl: function(){ | ||
| 355 | - return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}`; | 363 | + importExcelUrl: function() { |
| 364 | + return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}` | ||
| 356 | } | 365 | } |
| 357 | }, | 366 | }, |
| 358 | methods: { | 367 | methods: { |
| 359 | - initDictConfig(){ | 368 | + searchQuery(arg) { |
| 369 | + if (!this.url.list) { | ||
| 370 | + this.$message.error('请设置url.list属性!') | ||
| 371 | + return | ||
| 372 | + } | ||
| 373 | + //加载数据 若传入参数1则加载第一页的内容 | ||
| 374 | + if (arg === 1) { | ||
| 375 | + this.ipagination.current = 1 | ||
| 376 | + } | ||
| 377 | + var params = this.getQueryParams()//查询条件 | ||
| 378 | + console.log('params========', params) | ||
| 379 | + this.loading = true | ||
| 380 | + getAction(this.url.list, params).then((res) => { | ||
| 381 | + if (res.success) { | ||
| 382 | + //update-begin---author:zhangyafei Date:20201118 for:适配不分页的数据列表------------ | ||
| 383 | + this.dataSource = res.result.records || res.result | ||
| 384 | + if (res.result.total) { | ||
| 385 | + this.ipagination.total = res.result.total | ||
| 386 | + } else { | ||
| 387 | + this.ipagination.total = 0 | ||
| 388 | + } | ||
| 389 | + //update-end---author:zhangyafei Date:20201118 for:适配不分页的数据列表------------ | ||
| 390 | + } else { | ||
| 391 | + this.$message.warning(res.message) | ||
| 392 | + } | ||
| 393 | + }).finally(() => { | ||
| 394 | + this.loading = false | ||
| 395 | + }) | ||
| 396 | + this.clearData() | ||
| 397 | + }, | ||
| 398 | + // 行点击事件 | ||
| 399 | + handleRowClick(selectedRowKeys, selectionRows) { | ||
| 400 | + this.selectedRowKeys = selectedRowKeys | ||
| 401 | + this.selectionRows = selectionRows | ||
| 402 | + | ||
| 403 | + this.selectedRowData = selectionRows | ||
| 404 | + // 如果需要根据选中行ID获取子表数据 | ||
| 405 | + this.loadChildData(selectionRows) | ||
| 406 | + }, | ||
| 407 | + // 加载子表数据 | ||
| 408 | + loadChildData(row) { | ||
| 409 | + // 直接调用子组件方法 | ||
| 410 | + this.$refs.tabSskcList.loadData(row) | ||
| 411 | + //询单情况 | ||
| 412 | + this.$refs.tblTradeTenderInfoTab2List.loadData(row) | ||
| 413 | + //采买情况 | ||
| 414 | + this.$refs.tabCmInfoList.loadData(row) | ||
| 415 | + }, | ||
| 416 | + initDictConfig() { | ||
| 360 | }, | 417 | }, |
| 361 | clickThenSelect(record) { | 418 | clickThenSelect(record) { |
| 362 | return { | 419 | return { |
| 363 | on: { | 420 | on: { |
| 364 | click: () => { | 421 | click: () => { |
| 365 | - this.onSelectChange(record.id.split(","), [record]); | 422 | + this.onSelectChange(record.id.split(','), [record]) |
| 366 | } | 423 | } |
| 367 | } | 424 | } |
| 368 | } | 425 | } |
| 369 | }, | 426 | }, |
| 370 | onClearSelected() { | 427 | onClearSelected() { |
| 371 | - this.selectedRowKeys = []; | ||
| 372 | - this.selectionRows = []; | ||
| 373 | - this.selectedMainId='' | 428 | + this.selectedRowKeys = [] |
| 429 | + this.selectionRows = [] | ||
| 430 | + this.selectedMainId = '' | ||
| 431 | + this.clearData() | ||
| 374 | }, | 432 | }, |
| 375 | onSelectChange(selectedRowKeys, selectionRows) { | 433 | onSelectChange(selectedRowKeys, selectionRows) { |
| 376 | - this.selectedMainId=selectedRowKeys[0] | ||
| 377 | - this.selectedRowKeys = selectedRowKeys; | ||
| 378 | - this.selectionRows = selectionRows; | 434 | + this.selectedMainId = selectedRowKeys[0] |
| 435 | + this.selectedRowKeys = selectedRowKeys | ||
| 436 | + this.selectionRows = selectionRows | ||
| 379 | this.tblTradeInquiryInfoMainId = selectionRows[0]['id'] | 437 | this.tblTradeInquiryInfoMainId = selectionRows[0]['id'] |
| 380 | this.tblTradeBidSubMainId = selectionRows[0]['id'] | 438 | this.tblTradeBidSubMainId = selectionRows[0]['id'] |
| 381 | }, | 439 | }, |
| 382 | - loadData(arg) { | ||
| 383 | - if(!this.url.list){ | ||
| 384 | - this.$message.error("请设置url.list属性!") | ||
| 385 | - return | ||
| 386 | - } | ||
| 387 | - //加载数据 若传入参数1则加载第一页的内容 | ||
| 388 | - if (arg === 1) { | ||
| 389 | - this.ipagination.current = 1; | ||
| 390 | - } | ||
| 391 | - this.onClearSelected() | ||
| 392 | - var params = this.getQueryParams();//查询条件 | ||
| 393 | - this.loading = true; | ||
| 394 | - getAction(this.url.list, params).then((res) => { | ||
| 395 | - if (res.success) { | ||
| 396 | - this.dataSource = res.result.records; | ||
| 397 | - this.ipagination.total = res.result.total; | ||
| 398 | - } | ||
| 399 | - if(res.code===510){ | ||
| 400 | - this.$message.warning(res.message) | ||
| 401 | - } | ||
| 402 | - this.loading = false; | ||
| 403 | - }) | ||
| 404 | - }, | ||
| 405 | - getSuperFieldList(){ | ||
| 406 | - let fieldList=[]; | ||
| 407 | - fieldList.push({type:'string',value:'tenderNo',text:'招标号',dictCode:''}) | ||
| 408 | - fieldList.push({type:'string',value:'code',text:'物料编码',dictCode:''}) | ||
| 409 | - fieldList.push({type:'string',value:'tenderName',text:'标段(包)名称',dictCode:''}) | ||
| 410 | - fieldList.push({type:'string',value:'miaoshu',text:'物料长描述',dictCode:''}) | ||
| 411 | - fieldList.push({type:'string',value:'jldw',text:'计量单位',dictCode:''}) | ||
| 412 | - fieldList.push({type:'string',value:'xqsl',text:'需求数量',dictCode:''}) | ||
| 413 | - fieldList.push({type:'date',value:'xqjhq',text:'需求交货期'}) | ||
| 414 | - fieldList.push({type:'string',value:'pinpai',text:'品牌',dictCode:''}) | ||
| 415 | - fieldList.push({type:'string',value:'sl',text:'税率',dictCode:''}) | ||
| 416 | - fieldList.push({type:'string',value:'xydj',text:'响应单价',dictCode:''}) | ||
| 417 | - fieldList.push({type:'string',value:'xysl',text:'响应数量',dictCode:''}) | ||
| 418 | - fieldList.push({type:'string',value:'xyjhq',text:'响应交货期',dictCode:''}) | ||
| 419 | - fieldList.push({type:'Text',value:'xysm',text:'响应说明',dictCode:''}) | ||
| 420 | - fieldList.push({type:'string',value:'xypp',text:'响应品牌',dictCode:''}) | ||
| 421 | - fieldList.push({type:'string',value:'xybz',text:'响应币种',dictCode:''}) | ||
| 422 | - fieldList.push({type:'string',value:'jhqfjx',text:'交货期否决项',dictCode:''}) | ||
| 423 | - fieldList.push({type:'string',value:'fkfsfjx',text:'付款方式否决项',dictCode:''}) | ||
| 424 | - fieldList.push({type:'string',value:'ggxhfjx',text:'规格型号否决项',dictCode:''}) | ||
| 425 | - fieldList.push({type:'string',value:'ppfjx',text:'品牌否决项',dictCode:''}) | ||
| 426 | - fieldList.push({type:'string',value:'xqdw',text:'需求单位',dictCode:''}) | ||
| 427 | - fieldList.push({type:'string',value:'bz',text:'备注',dictCode:''}) | ||
| 428 | - fieldList.push({type:'string',value:'xjbswjh',text:'询价标书文件号',dictCode:''}) | ||
| 429 | - fieldList.push({type:'string',value:'xmlx',text:'项目类型',dictCode:''}) | ||
| 430 | - fieldList.push({type:'string',value:'shdz',text:'送货地址',dictCode:''}) | ||
| 431 | - fieldList.push({type:'string',value:'yxdj',text:'优先等级',dictCode:''}) | ||
| 432 | - fieldList.push({type:'string',value:'xjjhwcsj',text:'询价计划完成日期',dictCode:''}) | ||
| 433 | - fieldList.push({type:'string',value:'bdlx',text:'标的类型',dictCode:''}) | 440 | + clearData() { |
| 441 | + // 直接调用子组件方法 | ||
| 442 | + this.$refs.tabSskcList.clearData() | ||
| 443 | + //询单情况 | ||
| 444 | + this.$refs.tblTradeTenderInfoTab2List.clearData() | ||
| 445 | + //采买情况 | ||
| 446 | + this.$refs.tabCmInfoList.clearData() | ||
| 447 | + }, | ||
| 448 | + // loadData(arg) { | ||
| 449 | + // if(!this.url.list){ | ||
| 450 | + // this.$message.error("请设置url.list属性!") | ||
| 451 | + // return | ||
| 452 | + // } | ||
| 453 | + // //加载数据 若传入参数1则加载第一页的内容 | ||
| 454 | + // if (arg === 1) { | ||
| 455 | + // this.ipagination.current = 1; | ||
| 456 | + // } | ||
| 457 | + // this.onClearSelected() | ||
| 458 | + // var params = this.getQueryParams();//查询条件 | ||
| 459 | + // this.loading = true; | ||
| 460 | + // getAction(this.url.list, params).then((res) => { | ||
| 461 | + // if (res.success) { | ||
| 462 | + // this.dataSource = res.result.records; | ||
| 463 | + // this.ipagination.total = res.result.total; | ||
| 464 | + // } | ||
| 465 | + // if(res.code===510){ | ||
| 466 | + // this.$message.warning(res.message) | ||
| 467 | + // } | ||
| 468 | + // this.loading = false; | ||
| 469 | + // }) | ||
| 470 | + // }, | ||
| 471 | + getSuperFieldList() { | ||
| 472 | + let fieldList = [] | ||
| 473 | + fieldList.push({ type: 'string', value: 'tenderNo', text: '招标号', dictCode: '' }) | ||
| 474 | + fieldList.push({ type: 'string', value: 'code', text: '物料编码', dictCode: '' }) | ||
| 475 | + fieldList.push({ type: 'string', value: 'tenderName', text: '标段(包)名称', dictCode: '' }) | ||
| 476 | + fieldList.push({ type: 'string', value: 'miaoshu', text: '物料长描述', dictCode: '' }) | ||
| 477 | + fieldList.push({ type: 'string', value: 'jldw', text: '计量单位', dictCode: '' }) | ||
| 478 | + fieldList.push({ type: 'string', value: 'xqsl', text: '需求数量', dictCode: '' }) | ||
| 479 | + fieldList.push({ type: 'date', value: 'xqjhq', text: '需求交货期' }) | ||
| 480 | + fieldList.push({ type: 'string', value: 'pinpai', text: '品牌', dictCode: '' }) | ||
| 481 | + fieldList.push({ type: 'string', value: 'sl', text: '税率', dictCode: '' }) | ||
| 482 | + fieldList.push({ type: 'string', value: 'xydj', text: '响应单价', dictCode: '' }) | ||
| 483 | + fieldList.push({ type: 'string', value: 'xysl', text: '响应数量', dictCode: '' }) | ||
| 484 | + fieldList.push({ type: 'string', value: 'xyjhq', text: '响应交货期', dictCode: '' }) | ||
| 485 | + fieldList.push({ type: 'Text', value: 'xysm', text: '响应说明', dictCode: '' }) | ||
| 486 | + fieldList.push({ type: 'string', value: 'xypp', text: '响应品牌', dictCode: '' }) | ||
| 487 | + fieldList.push({ type: 'string', value: 'xybz', text: '响应币种', dictCode: '' }) | ||
| 488 | + fieldList.push({ type: 'string', value: 'jhqfjx', text: '交货期否决项', dictCode: '' }) | ||
| 489 | + fieldList.push({ type: 'string', value: 'fkfsfjx', text: '付款方式否决项', dictCode: '' }) | ||
| 490 | + fieldList.push({ type: 'string', value: 'ggxhfjx', text: '规格型号否决项', dictCode: '' }) | ||
| 491 | + fieldList.push({ type: 'string', value: 'ppfjx', text: '品牌否决项', dictCode: '' }) | ||
| 492 | + fieldList.push({ type: 'string', value: 'xqdw', text: '需求单位', dictCode: '' }) | ||
| 493 | + fieldList.push({ type: 'string', value: 'bz', text: '备注', dictCode: '' }) | ||
| 494 | + fieldList.push({ type: 'string', value: 'xjbswjh', text: '询价标书文件号', dictCode: '' }) | ||
| 495 | + fieldList.push({ type: 'string', value: 'xmlx', text: '项目类型', dictCode: '' }) | ||
| 496 | + fieldList.push({ type: 'string', value: 'shdz', text: '送货地址', dictCode: '' }) | ||
| 497 | + fieldList.push({ type: 'string', value: 'yxdj', text: '优先等级', dictCode: '' }) | ||
| 498 | + fieldList.push({ type: 'string', value: 'xjjhwcsj', text: '询价计划完成日期', dictCode: '' }) | ||
| 499 | + fieldList.push({ type: 'string', value: 'bdlx', text: '标的类型', dictCode: '' }) | ||
| 434 | this.superFieldList = fieldList | 500 | this.superFieldList = fieldList |
| 435 | } | 501 | } |
| 436 | } | 502 | } |
| 437 | - } | 503 | +} |
| 438 | </script> | 504 | </script> |
| 439 | <style scoped> | 505 | <style scoped> |
| 440 | - @import '~@assets/less/common.less' | 506 | +@import '~@assets/less/common.less' |
| 441 | </style> | 507 | </style> |
| 1 | <template> | 1 | <template> |
| 2 | <a-card :bordered="false" :class="'cust-erp-sub-tab'"> | 2 | <a-card :bordered="false" :class="'cust-erp-sub-tab'"> |
| 3 | - <!-- 查询区域 --> | ||
| 4 | - <div class="table-page-search-wrapper"> | ||
| 5 | - <a-form layout="inline" @keyup.enter.native="searchQuery"> | ||
| 6 | - <a-row :gutter="24"> | ||
| 7 | - </a-row> | ||
| 8 | - </a-form> | ||
| 9 | - </div> | ||
| 10 | - <!-- 查询区域-END --> | ||
| 11 | - | ||
| 12 | - <!-- 操作按钮区域 --> | ||
| 13 | - <div class="table-operator" v-if="mainId"> | ||
| 14 | - <!-- <a-button @click="handleAdd" type="primary" icon="plus">新增</a-button> | ||
| 15 | - <a-button type="primary" icon="download" @click="handleExportXls('询价明细表')">导出</a-button> | ||
| 16 | - <a-upload | ||
| 17 | - name="file" | ||
| 18 | - :showUploadList="false" | ||
| 19 | - :multiple="false" | ||
| 20 | - :headers="tokenHeader" | ||
| 21 | - :action="importExcelUrl" | ||
| 22 | - @change="handleImportExcel"> | ||
| 23 | - <a-button type="primary" icon="import">导入</a-button> | ||
| 24 | - </a-upload> | ||
| 25 | - <a-dropdown v-if="selectedRowKeys.length > 0"> | ||
| 26 | - <a-menu slot="overlay"> | ||
| 27 | - <a-menu-item key="1" @click="batchDel"><a-icon type="delete"/>删除</a-menu-item> | ||
| 28 | - </a-menu> | ||
| 29 | - <a-button style="margin-left: 8px"> 批量操作 <a-icon type="down" /></a-button> | ||
| 30 | - </a-dropdown> --> | ||
| 31 | - </div> | ||
| 32 | - | ||
| 33 | <!-- table区域-begin --> | 3 | <!-- table区域-begin --> |
| 34 | <div> | 4 | <div> |
| 35 | - <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;"> | ||
| 36 | - <i class="anticon anticon-info-circle ant-alert-icon"></i> 已选择 <a style="font-weight: 600">{{ selectedRowKeys.length }}</a>项 | ||
| 37 | - <a style="margin-left: 24px" @click="onClearSelected">清空</a> | ||
| 38 | - </div> | ||
| 39 | - | ||
| 40 | <a-table | 5 | <a-table |
| 41 | ref="table" | 6 | ref="table" |
| 42 | size="middle" | 7 | size="middle" |
| @@ -46,54 +11,21 @@ | @@ -46,54 +11,21 @@ | ||
| 46 | :columns="columns" | 11 | :columns="columns" |
| 47 | :dataSource="dataSource" | 12 | :dataSource="dataSource" |
| 48 | :pagination="ipagination" | 13 | :pagination="ipagination" |
| 49 | - :loading="loading" | ||
| 50 | - :rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}" | ||
| 51 | - @change="handleTableChange"> | ||
| 52 | - | ||
| 53 | - <template slot="htmlSlot" slot-scope="text"> | ||
| 54 | - <div v-html="text"></div> | ||
| 55 | - </template> | ||
| 56 | - <template slot="imgSlot" slot-scope="text,record"> | ||
| 57 | - <span v-if="!text" style="font-size: 12px;font-style: italic;">无图片</span> | ||
| 58 | - <img v-else :src="getImgView(text)" :preview="record.id" height="25px" alt="" style="max-width:80px;font-size: 12px;font-style: italic;"/> | ||
| 59 | - </template> | ||
| 60 | - <template slot="fileSlot" slot-scope="text"> | ||
| 61 | - <span v-if="!text" style="font-size: 12px;font-style: italic;">无文件</span> | ||
| 62 | - <a-button | ||
| 63 | - v-else | ||
| 64 | - :ghost="true" | ||
| 65 | - type="primary" | ||
| 66 | - icon="download" | ||
| 67 | - size="small" | ||
| 68 | - @click="downloadFile(text)"> | ||
| 69 | - 下载 | ||
| 70 | - </a-button> | ||
| 71 | - </template> | ||
| 72 | - | ||
| 73 | - <span slot="action" slot-scope="text, record"> | ||
| 74 | - <a @click="handleEdit(record)">编辑</a> | ||
| 75 | - <a-divider type="vertical" /> | ||
| 76 | - <a-popconfirm title="确定删除吗?" @confirm="() => handleDelete(record.id)"> | ||
| 77 | - <a>删除</a> | ||
| 78 | - </a-popconfirm> | ||
| 79 | - </span> | ||
| 80 | - | 14 | + :loading="loading"> |
| 81 | </a-table> | 15 | </a-table> |
| 82 | </div> | 16 | </div> |
| 83 | - | ||
| 84 | - <TblTradeTenderInfoTab2Modal ref="modalForm" @ok="modalFormOk" :mainId="mainId"></TblTradeTenderInfoTab2Modal> | ||
| 85 | </a-card> | 17 | </a-card> |
| 86 | </template> | 18 | </template> |
| 87 | 19 | ||
| 88 | <script> | 20 | <script> |
| 89 | 21 | ||
| 90 | import { JeecgListMixin } from '@/mixins/JeecgListMixin' | 22 | import { JeecgListMixin } from '@/mixins/JeecgListMixin' |
| 91 | - import TblTradeTenderInfoTab2Modal from './modules/TblTradeTenderInfoTab2Modal.vue' | 23 | + import { getAction } from '@api/manage' |
| 92 | 24 | ||
| 93 | export default { | 25 | export default { |
| 94 | - name: "TblTradeInquiryInfoList", | 26 | + name: "TblTradeTenderInfoTab2List", |
| 95 | mixins:[JeecgListMixin], | 27 | mixins:[JeecgListMixin], |
| 96 | - components: { TblTradeTenderInfoTab2Modal }, | 28 | + components: { }, |
| 97 | props:{ | 29 | props:{ |
| 98 | mainId:{ | 30 | mainId:{ |
| 99 | type:String, | 31 | type:String, |
| @@ -123,48 +55,93 @@ | @@ -123,48 +55,93 @@ | ||
| 123 | { | 55 | { |
| 124 | title: '#', | 56 | title: '#', |
| 125 | dataIndex: '', | 57 | dataIndex: '', |
| 126 | - key:'rowIndex', | ||
| 127 | - width:60, | ||
| 128 | - align:"center", | ||
| 129 | - customRender:function (t,r,index) { | ||
| 130 | - return parseInt(index)+1; | 58 | + key: 'rowIndex', |
| 59 | + width: 60, | ||
| 60 | + align: 'center', | ||
| 61 | + customRender: function (t, r, index) { | ||
| 62 | + return parseInt(index) + 1 | ||
| 131 | } | 63 | } |
| 132 | }, | 64 | }, |
| 133 | { | 65 | { |
| 134 | - title:'完成询价进度(%)', | ||
| 135 | - align:"center", | 66 | + title: '供货商名称', |
| 67 | + align: 'center', | ||
| 136 | dataIndex: 'ghsmc' | 68 | dataIndex: 'ghsmc' |
| 137 | }, | 69 | }, |
| 138 | { | 70 | { |
| 139 | - title:'计划完成日期', | ||
| 140 | - align:"center", | ||
| 141 | - dataIndex: 'tel' | 71 | + title: '专票单价', |
| 72 | + align: 'center', | ||
| 73 | + dataIndex: 'zpdj' | ||
| 74 | + }, | ||
| 75 | + { | ||
| 76 | + title: '专票税率(%)', | ||
| 77 | + align: 'center', | ||
| 78 | + dataIndex: 'zpsl' | ||
| 79 | + }, | ||
| 80 | + { | ||
| 81 | + title: '普票单价', | ||
| 82 | + align: 'center', | ||
| 83 | + dataIndex: 'ppdj' | ||
| 84 | + }, | ||
| 85 | + { | ||
| 86 | + title: '普票税率(%)', | ||
| 87 | + align: 'center', | ||
| 88 | + dataIndex: 'ppsl' | ||
| 89 | + }, | ||
| 90 | + { | ||
| 91 | + title: '无票单价', | ||
| 92 | + align: 'center', | ||
| 93 | + dataIndex: 'wpdj' | ||
| 94 | + }, | ||
| 95 | + { | ||
| 96 | + title: '是否含运费', | ||
| 97 | + align: 'center', | ||
| 98 | + dataIndex: 'sfhyf' | ||
| 99 | + }, | ||
| 100 | + { | ||
| 101 | + title: '运费', | ||
| 102 | + align: 'center', | ||
| 103 | + dataIndex: 'yf' | ||
| 104 | + }, | ||
| 105 | + { | ||
| 106 | + title: '发货地址', | ||
| 107 | + align: 'center', | ||
| 108 | + dataIndex: 'fhdz' | ||
| 142 | }, | 109 | }, |
| 143 | { | 110 | { |
| 144 | - title:'询价时间是否超期', | ||
| 145 | - align:"center", | ||
| 146 | - dataIndex: 'wldz' | 111 | + title: '最小出货量', |
| 112 | + align: 'center', | ||
| 113 | + dataIndex: 'zxchl' | ||
| 147 | }, | 114 | }, |
| 148 | { | 115 | { |
| 149 | - title:'询单状态', | ||
| 150 | - align:"center", | ||
| 151 | - dataIndex: 'wxh' | ||
| 152 | - }, | ||
| 153 | - // { | ||
| 154 | - // title: '操作', | ||
| 155 | - // dataIndex: 'action', | ||
| 156 | - // align:"center", | ||
| 157 | - // fixed:"right", | ||
| 158 | - // width:147, | ||
| 159 | - // scopedSlots: { customRender: 'action' }, | ||
| 160 | - // } | 116 | + title: 'L/T(交货周期天)', |
| 117 | + align: 'center', | ||
| 118 | + dataIndex: 'jhzqt' | ||
| 119 | + }, | ||
| 120 | + { | ||
| 121 | + title: '价格评价', | ||
| 122 | + align: 'center', | ||
| 123 | + dataIndex: 'jgpj' | ||
| 124 | + }, | ||
| 125 | + { | ||
| 126 | + title: '是否需要重新询价', | ||
| 127 | + align: 'center', | ||
| 128 | + dataIndex: 'sfxycxxj', | ||
| 129 | + customRender: (text, record) => { | ||
| 130 | + if (text == 'Y') { | ||
| 131 | + return '是' | ||
| 132 | + } else if (text == 'N') { | ||
| 133 | + return '否' | ||
| 134 | + } | ||
| 135 | + } | ||
| 136 | + }, | ||
| 137 | + { | ||
| 138 | + title: '原因/备注', | ||
| 139 | + align: 'center', | ||
| 140 | + dataIndex: 'bz' | ||
| 141 | + } | ||
| 161 | ], | 142 | ], |
| 162 | url: { | 143 | url: { |
| 163 | - list: "/trade/tblTradeTenderInfo/listTblTradeInquiryInfoByMainId", | ||
| 164 | - delete: "/trade/tblTradeTenderInfo/deleteTblTradeInquiryInfo", | ||
| 165 | - deleteBatch: "/trade/tblTradeTenderInfo/deleteBatchTblTradeInquiryInfo", | ||
| 166 | - exportXlsUrl: "/trade/tblTradeTenderInfo/exportTblTradeInquiryInfo", | ||
| 167 | - importUrl: "/trade/tblTradeTenderInfo/importTblTradeInquiryInfo", | 144 | + getTenderInfo: "/trade/tblTradeBidSub/getTenderInfo", |
| 168 | }, | 145 | }, |
| 169 | dictOptions:{ | 146 | dictOptions:{ |
| 170 | } | 147 | } |
| @@ -178,6 +155,28 @@ | @@ -178,6 +155,28 @@ | ||
| 178 | } | 155 | } |
| 179 | }, | 156 | }, |
| 180 | methods: { | 157 | methods: { |
| 158 | + clearData(){ | ||
| 159 | + this.dataSource = [] | ||
| 160 | + }, | ||
| 161 | + loadData(rows){ | ||
| 162 | + console.log("row:tab2",rows) | ||
| 163 | + const row = rows[0] | ||
| 164 | + console.log("row",row) | ||
| 165 | + const materialCode = row.code | ||
| 166 | + const xjbswjh = row.xjbswjh | ||
| 167 | + const param = { | ||
| 168 | + xjbswjh:xjbswjh, | ||
| 169 | + wlbm:materialCode | ||
| 170 | + } | ||
| 171 | + getAction(this.url.getTenderInfo, param).then((res) => { | ||
| 172 | + if (res.success) { | ||
| 173 | + if (res.result) { | ||
| 174 | + console.log("result...........",res.result) | ||
| 175 | + this.dataSource = res.result | ||
| 176 | + } | ||
| 177 | + } | ||
| 178 | + }) | ||
| 179 | + }, | ||
| 181 | clearList(){ | 180 | clearList(){ |
| 182 | this.dataSource=[] | 181 | this.dataSource=[] |
| 183 | this.selectedRowKeys=[] | 182 | this.selectedRowKeys=[] |
| @@ -113,16 +113,13 @@ | @@ -113,16 +113,13 @@ | ||
| 113 | </a-tab-pane> | 113 | </a-tab-pane> |
| 114 | <a-tab-pane tab="合同列表" key="2" forceRender> | 114 | <a-tab-pane tab="合同列表" key="2" forceRender> |
| 115 | <div class="table-operator"> | 115 | <div class="table-operator"> |
| 116 | - <a-button @click="handleAdd" type="primary" icon="plus">新增</a-button> | 116 | + <a-button @click="handleAdd" type="primary" icon="plus" :disabled="addHt">新增合同</a-button> |
| 117 | </div> | 117 | </div> |
| 118 | <a-table :dataSource="dataSource3" :columns="columns3" :scroll="{x:true}" > | 118 | <a-table :dataSource="dataSource3" :columns="columns3" :scroll="{x:true}" > |
| 119 | <template slot="action" slot-scope="text, record"> | 119 | <template slot="action" slot-scope="text, record"> |
| 120 | <a @click="downloadContract(record)">下载</a> | 120 | <a @click="downloadContract(record)">下载</a> |
| 121 | </template> | 121 | </template> |
| 122 | </a-table> | 122 | </a-table> |
| 123 | - | ||
| 124 | - | ||
| 125 | - | ||
| 126 | </a-tab-pane> | 123 | </a-tab-pane> |
| 127 | </a-tabs> | 124 | </a-tabs> |
| 128 | 125 | ||
| @@ -140,6 +137,15 @@ | @@ -140,6 +137,15 @@ | ||
| 140 | <a-form-model ref="form" :model="model" :rules="validatorRules" slot="detail"> | 137 | <a-form-model ref="form" :model="model" :rules="validatorRules" slot="detail"> |
| 141 | <a-row> | 138 | <a-row> |
| 142 | <a-col :span="12"> | 139 | <a-col :span="12"> |
| 140 | + <a-form-model-item label="询价标书文件号" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="contractNumber"> | ||
| 141 | + <a-input | ||
| 142 | + v-model="model.xjbswjh" | ||
| 143 | + placeholder="请输入询价标书文件号" | ||
| 144 | + disabled="disabled" | ||
| 145 | + ></a-input> | ||
| 146 | + </a-form-model-item> | ||
| 147 | + </a-col> | ||
| 148 | + <a-col :span="12"> | ||
| 143 | <a-form-model-item label="中标合同编号" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="contractNumber"> | 149 | <a-form-model-item label="中标合同编号" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="contractNumber"> |
| 144 | <a-input | 150 | <a-input |
| 145 | v-model="model.contractNumber" | 151 | v-model="model.contractNumber" |
| @@ -478,6 +484,7 @@ | @@ -478,6 +484,7 @@ | ||
| 478 | superFieldList:[], | 484 | superFieldList:[], |
| 479 | dataSource2: [], | 485 | dataSource2: [], |
| 480 | dataSource3: [], | 486 | dataSource3: [], |
| 487 | + addHt:true | ||
| 481 | } | 488 | } |
| 482 | }, | 489 | }, |
| 483 | created() { | 490 | created() { |
| @@ -492,6 +499,7 @@ | @@ -492,6 +499,7 @@ | ||
| 492 | }, | 499 | }, |
| 493 | methods: { | 500 | methods: { |
| 494 | onClearSelected() { | 501 | onClearSelected() { |
| 502 | + this.addHt = true | ||
| 495 | this.selectedRowKeys = []; | 503 | this.selectedRowKeys = []; |
| 496 | this.selectionRows = []; | 504 | this.selectionRows = []; |
| 497 | this.getContractList(); | 505 | this.getContractList(); |
| @@ -515,10 +523,12 @@ | @@ -515,10 +523,12 @@ | ||
| 515 | handleAdd(){ | 523 | handleAdd(){ |
| 516 | this.model = {} | 524 | this.model = {} |
| 517 | this.visibleContract = true | 525 | this.visibleContract = true |
| 526 | + this.model.xjbswjh = this.selectionRows[0].xjbswjh | ||
| 518 | }, | 527 | }, |
| 519 | handleOkInfo(){ | 528 | handleOkInfo(){ |
| 520 | this.$refs.form.validate((valid) => { | 529 | this.$refs.form.validate((valid) => { |
| 521 | if (valid) { | 530 | if (valid) { |
| 531 | + this.model.xjbswjh = this.selectionRows[0].xjbswjh | ||
| 522 | postAction(this.url.addContract,this.model).then( | 532 | postAction(this.url.addContract,this.model).then( |
| 523 | res=>{ | 533 | res=>{ |
| 524 | if(res.success){ | 534 | if(res.success){ |
| @@ -546,8 +556,8 @@ | @@ -546,8 +556,8 @@ | ||
| 546 | this.getTblTradeBidMaterialDetailsList() | 556 | this.getTblTradeBidMaterialDetailsList() |
| 547 | }, | 557 | }, |
| 548 | onSelectChange(selectedRowKeys, selectionRows) { | 558 | onSelectChange(selectedRowKeys, selectionRows) { |
| 549 | - | ||
| 550 | - console.log("selectionRows",selectionRows[0].xjbswjh) | 559 | + this.addHt = false |
| 560 | + console.log("selectionRows",selectionRows[0]) | ||
| 551 | this.selectedRowKeys = selectedRowKeys; | 561 | this.selectedRowKeys = selectedRowKeys; |
| 552 | this.selectionRows = selectionRows; | 562 | this.selectionRows = selectionRows; |
| 553 | 563 | ||
| @@ -561,7 +571,7 @@ | @@ -561,7 +571,7 @@ | ||
| 561 | }) | 571 | }) |
| 562 | 572 | ||
| 563 | getAction(this.url.contractList, { | 573 | getAction(this.url.contractList, { |
| 564 | - contractNumber: selectionRows[0].xjbswjh | 574 | + xjbswjh: selectionRows[0].xjbswjh |
| 565 | }).then((res) => { | 575 | }).then((res) => { |
| 566 | if (res.success) { | 576 | if (res.success) { |
| 567 | this.dataSource3 = res.result.records | 577 | this.dataSource3 = res.result.records |
-
请 注册 或 登录 后发表评论