From 990052a70e601df7b0dcd6c71bba85a1b45e7706 Mon Sep 17 00:00:00 2001 From: liushuai Date: Thu, 14 May 2020 18:17:03 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../PartsNumberMaintenance/index.vue | 12 +++-- .../Inventory/CreatePickingList/index.vue | 25 ++++++++++- src/views/Inventory/MaterialOut/index.vue | 7 ++- src/views/Inventory/MaterialOut/index2.vue | 11 +++-- .../SelfMadePartsWarehouseOut/index.vue | 7 ++- .../CreatePreparationBill/index.vue | 8 +++- .../InitialProduction/index.vue | 9 +++- .../ManufacturingCenter/ParseQuery/index.vue | 24 +++++----- .../PartAssignment/index.vue | 30 ++++++++++--- .../ProcessTaskAssignment/index.vue | 7 ++- .../ScrappedSupplementaryInvestment/index.vue | 7 ++- .../OfflineContract/index.vue | 44 ++++++++++++++++--- .../PurchaseTaskAllocate/index.vue | 29 +++++++++++- .../CreatingProcurementContracts/index.vue | 9 +++- .../CreatingPurchasingMaterials/index.vue | 5 +++ .../manufacturingPurchaseArrival/index.vue | 9 +++- static/config.js | 2 +- 17 files changed, 200 insertions(+), 45 deletions(-) diff --git a/src/views/BasicData/PartsNumberMaintenance/index.vue b/src/views/BasicData/PartsNumberMaintenance/index.vue index 216704ea..45aa0b73 100644 --- a/src/views/BasicData/PartsNumberMaintenance/index.vue +++ b/src/views/BasicData/PartsNumberMaintenance/index.vue @@ -23,7 +23,7 @@
- 基本件 + 自制件 全部删除 @@ -91,6 +91,7 @@ + 共{{ totalnumber }}条信息,选择{{ gouxuan }}条 @@ -104,7 +105,7 @@
- 外购件和标准件 + 外购件 全部删除 @@ -660,7 +661,10 @@ export default { // total6: 0, pageCurrent7: 1, pageSize7: 10, - total7: 0 + total7: 0, + gouxuan: 0, + totalnumber: 0 + // pageCurrentWB: 1, // pageSizeWB: 10, // totalWB: 0 @@ -765,6 +769,7 @@ export default { }) }, handleSelectionChange(val) { + this.gouxuan = val.length this.BasicGroup = [] for (let i = 0; i < val.length; i++) { this.BasicGroup.push(val[i].基本件流水号) @@ -823,6 +828,7 @@ export default { console.log(response, 111) this.loading = false const res = response.data + this.totalnumber = response.data.length this.total = res.total this.tableData = res.map(item => { if (item.整改类型 === '1') { diff --git a/src/views/Inventory/CreatePickingList/index.vue b/src/views/Inventory/CreatePickingList/index.vue index f094b9d1..c45edfd1 100644 --- a/src/views/Inventory/CreatePickingList/index.vue +++ b/src/views/Inventory/CreatePickingList/index.vue @@ -106,6 +106,7 @@ + 共{{ totalnumber }}条信息,选择{{ gouxuan }}条
+ 共{{ totalnumber }}条信息,选择{{ gouxuan }}条
+ 共{{ totalnumber }}条信息,选择{{ gouxuan }}条
+ 共{{ totalnumber }}条信息,选择{{ gouxuan }}条
{ console.log(response.data.rows, 1111) this.tableData0 = response.data.rows + this.totalnumber = response.data.rows.length this.total0 = response.data.total this.loading0 = false }).catch(() => { @@ -781,6 +790,7 @@ export default { searchTable(check1, this.machineNumberValue, check2, this.groupNumberValue, check3, this.Name, 1, 1, this.pageCurrent0, this.pageSize0, 1).then(response => { this.tableData0 = response.data.rows this.total0 = response.data.total + this.totalnumber = response.data.rows.length }) } }, @@ -790,12 +800,15 @@ export default { this.machineNumberValue ? check1 = 1 : check1 = 0 this.groupNumberValue ? check2 = 1 : check2 = 0 this.Name ? check3 = 1 : check3 = 0 + this.totalnumber = 0 + this.gouxuan = 0 console.log(this.PickingValue, 111) if (this.PickingValue === false) { this.loading1 = true searchTable(check1, this.machineNumberValue, check2, this.groupNumberValue, check3, this.Name, 1, 0, this.pageCurrent1, this.pageSize1, 2).then(response => { console.log(response, 2) this.tableData1 = response.data.rows + this.totalnumber = response.data.rows.length this.total1 = response.data.total this.loading1 = false }).catch(() => { @@ -804,6 +817,7 @@ export default { } else { searchTable(check1, this.machineNumberValue, check2, this.groupNumberValue, check3, this.Name, 1, 1, this.pageCurrent1, this.pageSize1, 2).then(response => { this.tableData1 = response.data.rows + this.totalnumber = response.data.rows.length this.total1 = response.data.total }) } @@ -814,11 +828,14 @@ export default { this.machineNumberValue ? check1 = 1 : check1 = 0 this.groupNumberValue ? check2 = 1 : check2 = 0 this.Name ? check3 = 1 : check3 = 0 + this.totalnumber = 0 + this.gouxuan = 0 console.log(this.PickingValue, 111) if (this.PickingValue === false) { this.loading2 = true searchTable(check1, this.machineNumberValue, check2, this.groupNumberValue, check3, this.Name, 1, 0, this.pageCurrent2, this.pageSize2, 3).then(response => { this.tableData2 = response.data.rows + this.totalnumber = response.data.rows.length this.total2 = response.data.total this.loading2 = false }).catch(() => { @@ -828,6 +845,7 @@ export default { searchTable(check1, this.machineNumberValue, check2, this.groupNumberValue, check3, this.Name, 1, 1, this.pageCurrent2, this.pageSize2, 3).then(response => { this.tableData2 = response.data.rows this.total2 = response.data.total + this.totalnumber = response.data.rows.length }) } }, @@ -835,10 +853,13 @@ export default { searchTable4() { this.listLoading = true this.tableDataBasic = [] + this.totalnumber = 0 + this.gouxuan = 0 let check1 this.Name ? check1 = 1 : check1 = 0 searchPart(check1, this.Name, this.pageCurrent4, this.pageSize4).then(response => { this.tableDataBasic = response.data.rows + this.totalnumber = response.data.rows.length this.total4 = response.data.total this.listLoading = false }).catch(() => { @@ -1005,9 +1026,11 @@ export default { // 多选 handleSelectionChange(val) { this.multipleSelection = val + this.gouxuan = val.length }, handleSelectionChange1(val) { this.multipleSelection1 = val + this.gouxuan = val.length }, // 选入 selectInto() { diff --git a/src/views/Inventory/MaterialOut/index.vue b/src/views/Inventory/MaterialOut/index.vue index 0c8f7453..818af7ff 100644 --- a/src/views/Inventory/MaterialOut/index.vue +++ b/src/views/Inventory/MaterialOut/index.vue @@ -116,6 +116,7 @@ + 共{{ totalnumber }}条信息,选择{{ gouxuan }}条
@@ -370,7 +371,9 @@ export default { 请购单明细流水号: '', 最大归还量: '', 审批未通过: true, - 占用数量: 0 + 占用数量: 0, + gouxuan: 0, + totalnumber: 0 } }, computed: { @@ -596,6 +599,7 @@ export default { row && row.姓名 ? this.form3.personName = row.姓名 : this.form3.personName searchListDetail(this.pickingListNum).then(res => { this.pickListTable2 = res.data + this.totalnumber = res.data.length }) }, tableRowClassName({ row }) { @@ -616,6 +620,7 @@ export default { }, // 多选 handleSelectionChange(val) { + this.gouxuan = val.length this.StockNumberTable = val this.multipleSelection = [] this.basePartNum = [] diff --git a/src/views/Inventory/MaterialOut/index2.vue b/src/views/Inventory/MaterialOut/index2.vue index fe98aa02..cea080fc 100644 --- a/src/views/Inventory/MaterialOut/index2.vue +++ b/src/views/Inventory/MaterialOut/index2.vue @@ -44,7 +44,7 @@ @@ -58,6 +58,7 @@ + 共{{ totalnumber }}条信息,选择{{ gouxuan }}条
{ - console.log(response, 123) this.loading1 = false this.total1 = response.data.total this.pickListTable2 = response.data.rows + this.totalnumber = response.data.rows.length }) }, tableRowClassName1({ row }) { @@ -211,6 +215,7 @@ export default { }, // 多选 handleSelectionChange(val) { + this.gouxuan = val.length this.StockNumberTable = val this.multipleSelection = [] this.basePartNum = [] diff --git a/src/views/Inventory/SelfMadePartsWarehouseOut/index.vue b/src/views/Inventory/SelfMadePartsWarehouseOut/index.vue index a6251e26..88cebc3b 100644 --- a/src/views/Inventory/SelfMadePartsWarehouseOut/index.vue +++ b/src/views/Inventory/SelfMadePartsWarehouseOut/index.vue @@ -80,6 +80,7 @@ + 共{{ totalnumber }}条信息,选择{{ gouxuan }}条
{ + this.totalnumber = response.data.rows.length if (response.data.rows.length !== 0) { for (let i = 0; i < response.data.rows.length; i++) { this.tableData.push({ @@ -267,6 +271,7 @@ export default { handleSelectionChange(val) { this.shuzu = [] this.shuzu = val + this.gouxuan = val.length // val.map(v => { // this.multipleSelection.push(v.工艺计划流水号) // this.outgoingQuantity.push(v.出库数量) diff --git a/src/views/ManufacturingCenter/CreatePreparationBill/index.vue b/src/views/ManufacturingCenter/CreatePreparationBill/index.vue index 43085bbc..f2011b65 100644 --- a/src/views/ManufacturingCenter/CreatePreparationBill/index.vue +++ b/src/views/ManufacturingCenter/CreatePreparationBill/index.vue @@ -93,6 +93,7 @@ + 共{{ totalnumber }}条信息,选择{{ gouxuan }}条
-
+ 共{{ totalnumber }}条信息,选择{{ gouxuan }}条 +
{ this.total = parseInt(response.data.total) this.tableData = [] + this.totalnumber = response.data.rows.length for (let i = 0; i < response.data.rows.length; i++) { this.tableData.push({ 零件图号: response.data.rows[i].零件图号, @@ -741,6 +745,7 @@ export default { }, handleSelectionChange(val) { this.multipleSelection = val + this.gouxuan = val.length }, handleEditNumber(index, row) { this.dialogFormVisible3 = true diff --git a/src/views/ManufacturingCenter/ParseQuery/index.vue b/src/views/ManufacturingCenter/ParseQuery/index.vue index ee362b84..acd31ace 100644 --- a/src/views/ManufacturingCenter/ParseQuery/index.vue +++ b/src/views/ManufacturingCenter/ParseQuery/index.vue @@ -1586,19 +1586,19 @@ {{ scope.row.组件名称 ? scope.row.组件名称 : '--' }} - + - + - + @@ -3777,14 +3777,14 @@ export default { type: '3', name: ` select 组号,组件名称 - ,SUM(基本件数) as 总基本件数 - ,SUM(已采购基本件数) as 已采购基本件数 - ,SUM(已到货基本件数 ) as 总到货数基本件数 + ,SUM(外购件数) as 总外购件数 + ,SUM(已采购外购件数) as 已采购外购件数 + ,SUM(已到货外购件数 ) as 总到货数外购件数 from ( select 组号,组件名称, - (select COUNT(*) where 机床流水号 =${this.machineValue1} and 标准件和外购件流水号 is not null) as 基本件数, - (select COUNT(*) where 机床流水号 =${this.machineValue1} and 标准件和外购件流水号 is not null and 采购合同明细流水号 is not null) as 已采购基本件数, - (select COUNT(*) where 机床流水号 =${this.machineValue1} and 标准件和外购件流水号 is not null and isnull(零件数量,0) = isnull(已到货数量,0)) as 已到货基本件数 + (select COUNT(*) where 机床流水号 =${this.machineValue1} and 标准件和外购件流水号 is not null) as 外购件数, + (select COUNT(*) where 机床流水号 =${this.machineValue1} and 标准件和外购件流水号 is not null and 采购合同明细流水号 is not null) as 已采购外购件数, + (select COUNT(*) where 机床流水号 =${this.machineValue1} and 标准件和外购件流水号 is not null and isnull(零件数量,0) = isnull(已到货数量,0)) as 已到货外购件数 from 车间采购_综合查询视图 where 机床流水号 =${this.machineValue1} ) as a group by a.组号,a.组件名称 order by 组号` diff --git a/src/views/ManufacturingCenter/PartAssignment/index.vue b/src/views/ManufacturingCenter/PartAssignment/index.vue index bef655e0..6e6b28cd 100644 --- a/src/views/ManufacturingCenter/PartAssignment/index.vue +++ b/src/views/ManufacturingCenter/PartAssignment/index.vue @@ -87,8 +87,9 @@ + 共{{ totalnumber }}条信息,选择{{ gouxuan }}条 - + @@ -137,8 +138,9 @@ + 共{{ totalnumber }}条信息,选择{{ gouxuan }}条 - + @@ -187,6 +189,7 @@ + 共{{ totalnumber }}条信息,选择{{ gouxuan }}条 @@ -653,7 +656,9 @@ export default { dialogFormVisible2: false, dialogFormVisible3: false, dialogFormVisible4: false, - checked: false + checked: false, + gouxuan: 0, + totalnumber: 0 } }, computed: { @@ -979,22 +984,31 @@ export default { this.tableData2 = [] this.tableData3 = [] this.loading = false + this.totalnumber = 0 + this.gouxuan = 0 this.searchPart() }) }, selectPart(val) { + let num this.PartType = val.label + this.checked ? num = 1 : num = 0 + this.totalnumber = 0 + this.gouxuan = 0 if (this.PartType === '基本件') { - searchPart(this.groupFloatValue).then(response => { + searchPart(this.groupFloatValue, num).then(response => { this.tableData1 = response.data + this.totalnumber = response.data.length }) } else if (this.PartType === '外购件') { - searchPart1(this.groupFloatValue, 2).then(response => { + searchPart1(this.groupFloatValue, 2, num).then(response => { this.tableData2 = response.data + this.totalnumber = response.data.length }) } else if (this.PartType === '标准件') { - searchPart1(this.groupFloatValue, 1).then(response => { + searchPart1(this.groupFloatValue, 1, num).then(response => { this.tableData3 = response.data + this.totalnumber = response.data.length }) } }, @@ -1013,14 +1027,17 @@ export default { if (this.PartType === '基本件') { searchPart(this.groupFloatValue, num).then(response => { this.tableData1 = response.data + this.totalnumber = response.data.length }) } else if (this.PartType === '外购件') { searchPart1(this.groupFloatValue, 2, num).then(response => { this.tableData2 = response.data + this.totalnumber = response.data.length }) } else if (this.PartType === '标准件') { searchPart1(this.groupFloatValue, 1, num).then(response => { this.tableData3 = response.data + this.totalnumber = response.data.length }) } }, @@ -1274,6 +1291,7 @@ export default { }, handleSelectionChange(val) { this.multipleSelection = val + this.gouxuan = val.length }, handleSelectionChange10(val) { this.multipleSelection10 = val diff --git a/src/views/ManufacturingCenter/ProcessTaskAssignment/index.vue b/src/views/ManufacturingCenter/ProcessTaskAssignment/index.vue index c7c0878e..0ea4125e 100644 --- a/src/views/ManufacturingCenter/ProcessTaskAssignment/index.vue +++ b/src/views/ManufacturingCenter/ProcessTaskAssignment/index.vue @@ -67,6 +67,7 @@ + 共{{ totalnumber }}条信息,选择{{ gouxuan }}条
{ this.total = response.data.total + this.totalnumber = response.data.rows.length for (let i = 0; i < response.data.rows.length; i++) { this.tableData.push({ 零件图号: response.data.rows[i].零件图号, @@ -226,6 +230,7 @@ export default { }, handleSelectionChange(val) { this.multipleSelection = val + this.gouxuan = val.length }, // 全选 selectAll(rows) { diff --git a/src/views/ManufacturingCenter/ScrappedSupplementaryInvestment/index.vue b/src/views/ManufacturingCenter/ScrappedSupplementaryInvestment/index.vue index bbf19259..0441cbc6 100644 --- a/src/views/ManufacturingCenter/ScrappedSupplementaryInvestment/index.vue +++ b/src/views/ManufacturingCenter/ScrappedSupplementaryInvestment/index.vue @@ -162,6 +162,7 @@ + 共{{ totalnumber }}条信息,选择{{ gouxuan }}条
{ console.log(response.data, 123) this.tableData = response.data.result + this.totalnumber = this.tableData.length this.loading = false this.total = parseInt(response.data.output[0].ItemCount) this.loading = false @@ -365,6 +369,7 @@ export default { // 20200509↑ handleSelectionChange(val) { this.procedureGroup = val + this.gouxuan = val.length }, // 分页 handleSizeChange(val) { diff --git a/src/views/PurchasingCenter/OfflineContract/index.vue b/src/views/PurchasingCenter/OfflineContract/index.vue index 8d4e8fac..78f2c5fc 100644 --- a/src/views/PurchasingCenter/OfflineContract/index.vue +++ b/src/views/PurchasingCenter/OfflineContract/index.vue @@ -144,6 +144,7 @@ 选入物料 + 共{{ totalnumber }}条信息,选择{{ gouxuan }}条 @@ -155,7 +156,7 @@ -
+
@@ -211,6 +212,7 @@ 选入物料 + 共{{ totalnumber1 }}条信息,选择{{ gouxuan1 }}条 @@ -222,7 +224,7 @@ -
+
{ this.tableData00 = response.data.rows + this.totalnumber = response.data.rows.length this.total11 = response.data.total const remark = [] const supplier = [] @@ -1710,11 +1739,14 @@ export default { this.searchTable12() }, searchTable22() { + this.totalnumber1 = 0 + this.gouxuan1 = 0 let check1 this.materialName ? check1 = 1 : check1 = 0 this.loading2 = true searchMaterial22(check1, this.materialName, this.pageCurrent22, this.pageSize22).then(response => { this.tableData22 = response.data.result + this.totalnumber1 = this.tableData22.length this.total22 = parseInt(response.data.output[0].ItemCount) const supplier = [] this.remarkFilters = [] diff --git a/src/views/PurchasingCenter/PurchaseTaskAllocate/index.vue b/src/views/PurchasingCenter/PurchaseTaskAllocate/index.vue index b25a3c73..8af74c85 100644 --- a/src/views/PurchasingCenter/PurchaseTaskAllocate/index.vue +++ b/src/views/PurchasingCenter/PurchaseTaskAllocate/index.vue @@ -19,7 +19,7 @@
- + @@ -242,6 +242,7 @@ + 共{{ totalnumber }}条信息,选择{{ gouxuan }}条
+ 共{{ totalnumber }}条信息,选择{{ gouxuan }}条
+ 共{{ totalnumber }}条信息,选择{{ gouxuan }}条
{ this.tableData0 = response.data.rows + this.totalnumber = response.data.rows.length this.total0 = response.data.total this.loading = false }) @@ -969,8 +988,10 @@ export default { this.materialSpec ? check2 = 1 : check2 = 0 this.materialModel ? check3 = 1 : check3 = 0 this.checked2 ? this.radio1 = 2 : this.radio1 = 1 + this.totalnumber = 0 searchTable1(this.pageCurrent1, this.pageSize1, this.check1, this.MaterialCategoryValue, this.check2, this.MaterialVarietyValue, this.check3, this.projectValue, check0, this.machineValue, check1, this.groupValue, this.check4, this.materialName, parseInt(this.radio1), check2, this.materialSpec, check3, this.materialModel, 2, 0, '', '').then(response => { this.tableData1 = response.data.rows + this.totalnumber = response.data.rows.length this.total1 = response.data.total this.loading = false }) @@ -986,13 +1007,16 @@ export default { this.machineValue ? check5 = 1 : check5 = 0 this.groupValue ? check6 = 1 : check6 = 0 this.checked3 ? this.radio2 = 2 : this.radio2 = 1 + this.totalnumber = 0 searchTable2(this.pageCurrent2, this.pageSize2, this.check3, this.projectValue, check5, this.machineValue, check6, this.groupValue, parseInt(this.radio2), check1, this.partNum, check2, this.partName, check3, this.partSpec, check4, this.partMaterial).then(response => { this.tableData2 = response.data.rows + this.totalnumber = response.data.rows.length this.total2 = response.data.total this.loading = false }) }, handleSelectionChange1(val) { // 标准件和外购件多选 + this.gouxuan = val.length this.standardAndPurchase = [] this.groupAndPart = [] this.partNumber = [] @@ -1003,6 +1027,7 @@ export default { } }, handleSelectionChange2(val) { // 基本件多选 + this.gouxuan = val.length this.basic = [] this.groupAndPartBasic = [] this.partNumberBasic = [] diff --git a/src/views/WorkshopProcurement/CreatingProcurementContracts/index.vue b/src/views/WorkshopProcurement/CreatingProcurementContracts/index.vue index 111264e3..04b10f33 100644 --- a/src/views/WorkshopProcurement/CreatingProcurementContracts/index.vue +++ b/src/views/WorkshopProcurement/CreatingProcurementContracts/index.vue @@ -129,10 +129,11 @@ + 共{{ totalnumber }}条信息,选择{{ gouxuan }}条 @@ -431,7 +432,9 @@ export default { group9: [], group10: '', group11: '', - group12: '' + group12: '', + gouxuan: 0, + totalnumber: 0 } }, computed: { @@ -486,6 +489,7 @@ export default { this.calculateContractSum() }, handleSelectionChange(val) { + this.gouxuan = val.length this.multipleSelection = val for (let i = 0; i < this.multipleSelection.length; i++) { this.Selection.push(Number(this.multipleSelection[i].请购单明细流水号)) @@ -566,6 +570,7 @@ export default { searchData2(this.contractNumValue).then(response => { this.tableData4 = [] console.log(response, 'tableData4') + this.totalnumber = response.data.length if (response.data.length !== 0) { for (let i = 0; i < response.data.length; i++) { this.tableData4.push({ diff --git a/src/views/WorkshopProcurement/CreatingPurchasingMaterials/index.vue b/src/views/WorkshopProcurement/CreatingPurchasingMaterials/index.vue index 351c2941..0f8ab9e5 100644 --- a/src/views/WorkshopProcurement/CreatingPurchasingMaterials/index.vue +++ b/src/views/WorkshopProcurement/CreatingPurchasingMaterials/index.vue @@ -65,6 +65,7 @@ + 共{{ totalnumber }}条信息,选择{{ gouxuan }}条
{ this.tableData1 = response.data + this.totalnumber = response.data.length this.total1 = response.data.total this.loading1 = false }) @@ -669,6 +673,7 @@ export default { this.searchTable1() }, handleSelectionChange(val) { + this.gouxuan = val.length this.materielGroup = [] this.partNum = [] for (let i = 0; i < val.length; i++) { diff --git a/src/views/WorkshopProcurement/manufacturingPurchaseArrival/index.vue b/src/views/WorkshopProcurement/manufacturingPurchaseArrival/index.vue index 3daf9579..b8944a21 100644 --- a/src/views/WorkshopProcurement/manufacturingPurchaseArrival/index.vue +++ b/src/views/WorkshopProcurement/manufacturingPurchaseArrival/index.vue @@ -21,7 +21,7 @@ 确认到货 - + + 共{{ totalnumber }}条信息,选择{{ gouxuan }}条
@@ -67,7 +68,9 @@ export default { inventoryName: [], // 仓库名称 locateNumber: '', locateName: [], - table1: [] + table1: [], + gouxuan: 0, + totalnumber: 0 } }, created() { @@ -152,10 +155,12 @@ export default { if (!res.data[i].物料型号) { res.data[i].物料型号 = '' } } this.table1 = res.data + this.totalnumber = res.data.length }, // 多选 handleSelectionChange(val) { this.multipleSelection = val + this.gouxuan = val.length }, // 明细可选 selectable(row) { diff --git a/static/config.js b/static/config.js index e14a0f17..ffa895e5 100644 --- a/static/config.js +++ b/static/config.js @@ -23,4 +23,4 @@ export const downloadFileMachine_config = `http://123.56.95.229:58010/submit/dow export const MESUploadFile_config = `http://123.56.95.229:58010/submit/MESUploadFile.ashx` export const MESDownloadFile_config = `http://123.56.95.229:58010/submit/MESDownloadFile.ashx` -export const request_config = `http://localhost:8002/submit/MESCommonBase.ashx` +export const request_config = `http://123.56.95.229:58010/submit/MESCommonBase.ashx`