From e00afb3606217b489c8ae20646d1a8301051a8a8 Mon Sep 17 00:00:00 2001
From: hayu <1604366271@qq.com>
Date: Fri, 7 Nov 2025 09:19:14 +0800
Subject: [PATCH 1/3] =?UTF-8?q?=E9=80=80=E6=96=99=E3=80=81=E7=BB=B4?=
=?UTF-8?q?=E4=BF=AE=E3=80=81=E7=BB=B4=E4=BF=AE=E5=AE=A1=E6=A0=B8=E9=A1=B5?=
=?UTF-8?q?=E9=9D=A2?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/api/back/index.js | 11 +
src/api/repair/repair.js | 21 +-
src/views/material/ma/device/index.vue | 365 ++++++++++++++----
src/views/material/query/backQuery.vue | 288 ++++++++++++++
src/views/material/query/repairAuditQuery.vue | 271 +++++++++++++
src/views/material/query/repairQuery.vue | 306 +++++++++++++++
src/views/material/report/reportQuery.vue | 4 +-
.../material/stquery/deviceStatusRecord.vue | 15 +-
8 files changed, 1207 insertions(+), 74 deletions(-)
create mode 100644 src/views/material/query/backQuery.vue
create mode 100644 src/views/material/query/repairAuditQuery.vue
create mode 100644 src/views/material/query/repairQuery.vue
diff --git a/src/api/back/index.js b/src/api/back/index.js
index dd8de442..83de75ee 100644
--- a/src/api/back/index.js
+++ b/src/api/back/index.js
@@ -126,3 +126,14 @@ export function updatePrintStatus(id) {
data: {id: id},
})
}
+
+
+//退料查询
+export function getBackQueryList(query) {
+ return request({
+ url: '/material/back_apply_info/getBackQueryList',
+ method: 'get',
+ params: query,
+ })
+}
+
diff --git a/src/api/repair/repair.js b/src/api/repair/repair.js
index e888815b..85e77455 100644
--- a/src/api/repair/repair.js
+++ b/src/api/repair/repair.js
@@ -117,4 +117,23 @@ export function getRepairProjectListApi(query) {
method: 'get',
params: query
})
-}
\ No newline at end of file
+}
+
+
+//维修查询
+export function getRepairQueryList(query) {
+ return request({
+ url: '/material/repair/getRepairQueryList',
+ method: 'get',
+ params: query,
+ })
+}
+
+//维修审核查询
+export function getRepairAuditQueryList(query) {
+ return request({
+ url: '/material/repair/getRepairAuditQueryList',
+ method: 'get',
+ params: query,
+ })
+}
diff --git a/src/views/material/ma/device/index.vue b/src/views/material/ma/device/index.vue
index 6a24b164..be961ba2 100644
--- a/src/views/material/ma/device/index.vue
+++ b/src/views/material/ma/device/index.vue
@@ -10,17 +10,97 @@
maxlength="20"
/>
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -29,34 +109,34 @@
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
@@ -100,6 +180,7 @@
+
{
+ // 如果返回的是对象数组,根据实际字段调整
+ return {
+ value: item.typeId,
+ label: item.typeName
+ }
+ })
+ } else {
+ this.$message.error('获取施工类型下拉失败')
+ this.lineTypeOptions = [] // 失败时设置为空数组
+ }
+ } catch (error) {
+ console.error('获取施工类型下拉列表失败:', error)
+ this.$message.error('获取施工类型下拉列表失败')
+ this.lineTypeOptions = [] // 异常时设置为空数组
+ }
+ },
+ // 线路类型变化处理
+ async handleLineTypeChange(selectedLineTypes) {
+ // 清空物资类型选择
+ this.queryParams.materialType = null
+ this.materialTypeOptions=[]
+ this.queryParams.typeName=null
+ this.typeNameOptions=[]
+ this.queryParams.typeModelName=null
+ this.typeModelNameOptions=[]
+
+ if (!selectedLineTypes || selectedLineTypes.length === 0) {
+ this.materialTypeOptions = []
+ }
+
+ // 获取物资类型数据
+ await this.getMaterialTypeList(selectedLineTypes)
+ },
+ async getMaterialTypeList(lineTypes) {
+ const params = {
+ constructionType:lineTypes
+ }
+ try {
+ // 调用接口获取物资类型数据
+ const res = await getMaterialTypeList(params)
+
+ if (res.code === 200 && res.data) {
+ // 处理返回的物资类型数据
+ const materialTypes = res.data.map(item => ({
+ value: item.typeId,
+ label: item.typeName
+ }))
+
+ // 更新选项并缓存
+ this.materialTypeOptions = materialTypes
+ } else {
+ this.$message.error('获取物资类型失败')
+ this.materialTypeOptions = []
+ }
+ } catch (error) {
+ console.error('获取物资类型列表失败:', error)
+ this.$message.error('获取物资类型列表失败')
+ this.materialTypeOptions = []
+ }
+ },
+ async handleMaterialTypeChange(e){
+ this.queryParams.typeName=null
+ this.typeNameOptions=[]
+ this.queryParams.typeModelName=null
+ this.typeModelNameOptions=[]
+ getDeviceType({ level: 3, typeId:e }).then(response => {
+ let matNameRes = response.data
+ this.typeNameOptions = matNameRes.map((item) => {
+ return {
+ label: item.typeName,
+ value: item.typeId
+ }
+ })
+ })
+ },
+ async handleTypeNameChange(e){
+ this.queryParams.typeModelName=null
+ this.typeModelNameOptions=[]
+ getDeviceType({ level: 4, typeId:e }).then(response => {
+ let matNameRes = response.data
+ this.typeModelNameOptions = matNameRes.map((item) => {
+ return {
+ label: item.typeName,
+ value: item.typeId
+ }
+ })
+ })
+ },
+ getDeviceType() {
+ getDeviceType({ level: 3 }).then(response => {
+ let matNameRes = response.data
+ this.typeNameOptions = matNameRes.map((item) => {
+ return {
+ label: item.typeName,
+ value: item.typeId
+ }
+ })
+ })
+ getDeviceType({ level: 4 }).then(response => {
+ let matModelRes = response.data
+ this.typeModelNameOptions = matModelRes.map((item) => {
+ return {
+ label: item.typeName,
+ value: item.typeId
+ }
+ })
+ })
+ },
async getKeeperData() {
const itemName = 'ku_guan_role_ids'
let roleIdsTemp = []
@@ -724,35 +930,35 @@ export default {
})
},
- getDeviceType() {
- getDeviceType({ level: 2, skipPermission: 1 }).then(response => {
- let matTypeRes = response.data
- this.materialTypeList = matTypeRes.map((item) => {
- return {
- label: item.typeName,
- value: item.typeId
- }
- })
- })
- getDeviceType({ level: 3, skipPermission: 1 }).then(response => {
- let matNameRes = response.data
- this.materialNameList = matNameRes.map((item) => {
- return {
- label: item.typeName,
- value: item.typeId
- }
- })
- })
- getDeviceType({ level: 4, skipPermission: 1 }).then(response => {
- let matModelRes = response.data
- this.materialModelList = matModelRes.map((item) => {
- return {
- label: item.typeName,
- value: item.typeId
- }
- })
- })
- },
+ // getDeviceType() {
+ // getDeviceType({ level: 2, skipPermission: 1 }).then(response => {
+ // let matTypeRes = response.data
+ // this.materialTypeList = matTypeRes.map((item) => {
+ // return {
+ // label: item.typeName,
+ // value: item.typeId
+ // }
+ // })
+ // })
+ // getDeviceType({ level: 3, skipPermission: 1 }).then(response => {
+ // let matNameRes = response.data
+ // this.materialNameList = matNameRes.map((item) => {
+ // return {
+ // label: item.typeName,
+ // value: item.typeId
+ // }
+ // })
+ // })
+ // getDeviceType({ level: 4, skipPermission: 1 }).then(response => {
+ // let matModelRes = response.data
+ // this.materialModelList = matModelRes.map((item) => {
+ // return {
+ // label: item.typeName,
+ // value: item.typeId
+ // }
+ // })
+ // })
+ // },
// change设备类型
handleMaModel(e) {
@@ -790,7 +996,19 @@ export default {
/** 查询岗位列表 */
getList() {
this.loading = true
- getListDevice(this.queryParams).then(response => {
+ const params = {
+ isAssets:this.queryParams.isAssets,
+ maStatus:this.queryParams.maStatus,
+ keyWord: this.queryParams.keyWord,
+ typeNameId: this.queryParams.typeName,
+ typeModelNameId: this.queryParams.typeModelName,
+ constructionTypes:this.queryParams.lineTypes,
+ materialTypeId:this.queryParams.materialType,
+ jiJuTypeStr:this.queryParams.jiJuType,
+ pageSize: this.queryParams.pageSize,
+ pageNum: this.queryParams.pageNum
+ }
+ getListDevice(params).then(response => {
this.deviceList = response.rows
this.total = response.total
this.loading = false
@@ -1185,7 +1403,18 @@ export default {
try {
let fileName = `设备管理_${formatTime(new Date())}.xLsx`
let url = '/material/ma_machine/export'
- const params = { ...this.queryParams }
+ const params = {
+ isAssets:this.queryParams.isAssets,
+ maStatus:this.queryParams.maStatus,
+ keyWord: this.queryParams.keyWord,
+ typeNameId: this.queryParams.typeName,
+ typeModelNameId: this.queryParams.typeModelName,
+ constructionTypes:this.queryParams.lineTypes,
+ materialTypeId:this.queryParams.materialType,
+ jiJuTypeStr:this.queryParams.jiJuType,
+ pageSize: this.queryParams.pageSize,
+ pageNum: this.queryParams.pageNum
+ }
console.log('🚀 ~ 导出 ~ params:', params)
this.download(url, params, fileName)
} catch (error) {
diff --git a/src/views/material/query/backQuery.vue b/src/views/material/query/backQuery.vue
new file mode 100644
index 00000000..28ef8642
--- /dev/null
+++ b/src/views/material/query/backQuery.vue
@@ -0,0 +1,288 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 查询
+ 重置
+
+
+
+
+
+ {{ (queryParams.pageNum - 1) * queryParams.pageSize + scope.$index + 1 }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/material/query/repairAuditQuery.vue b/src/views/material/query/repairAuditQuery.vue
new file mode 100644
index 00000000..76b662dc
--- /dev/null
+++ b/src/views/material/query/repairAuditQuery.vue
@@ -0,0 +1,271 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 查询
+ 重置
+
+
+
+
+
+ {{ (queryParams.pageNum - 1) * queryParams.pageSize + scope.$index + 1 }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/material/query/repairQuery.vue b/src/views/material/query/repairQuery.vue
new file mode 100644
index 00000000..29e1cc6e
--- /dev/null
+++ b/src/views/material/query/repairQuery.vue
@@ -0,0 +1,306 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 查询
+ 重置
+
+
+
+
+
+ {{ (queryParams.pageNum - 1) * queryParams.pageSize + scope.$index + 1 }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ scope.row.repairStatus }}
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/material/report/reportQuery.vue b/src/views/material/report/reportQuery.vue
index d52b547d..e1d7fe54 100644
--- a/src/views/material/report/reportQuery.vue
+++ b/src/views/material/report/reportQuery.vue
@@ -105,7 +105,7 @@
-
+
{{ (queryParams.pageNum - 1) * queryParams.pageSize + scope.$index + 1 }}
@@ -197,7 +197,7 @@
>查看
-
+
下载
diff --git a/src/views/material/stquery/deviceStatusRecord.vue b/src/views/material/stquery/deviceStatusRecord.vue
index ab201455..6f09ed3c 100644
--- a/src/views/material/stquery/deviceStatusRecord.vue
+++ b/src/views/material/stquery/deviceStatusRecord.vue
@@ -33,6 +33,7 @@
placeholder="请选择物资类型"
style="width: 240px"
clearable
+ filterable
@change="handleMaterialTypeChange"
>
Date: Fri, 7 Nov 2025 10:35:43 +0800
Subject: [PATCH 2/3] =?UTF-8?q?=E6=8E=88=E6=9D=83=E6=96=87=E4=BB=B6?=
=?UTF-8?q?=E6=A0=A1=E9=AA=8C?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../materialStation/authorize/index.vue | 98 ++++---------------
1 file changed, 21 insertions(+), 77 deletions(-)
diff --git a/src/views/material/materialStation/authorize/index.vue b/src/views/material/materialStation/authorize/index.vue
index ecfb20fc..81b3c9c5 100644
--- a/src/views/material/materialStation/authorize/index.vue
+++ b/src/views/material/materialStation/authorize/index.vue
@@ -175,6 +175,7 @@
:on-error="handleError"
:on-remove="handleFileRemove"
accept=".docx"
+ :before-upload="beforeUploadDocx"
:disabled="isEditMode"
style="margin-right: 10px"
>
@@ -272,50 +273,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
删除
@@ -327,8 +284,6 @@
新增领料人
-
-
@@ -772,6 +727,26 @@ export default {
}
},
methods: {
+ beforeUploadDocx(file) {
+ const isDocx = file.name.toLowerCase().endsWith('.docx')
+ const isWordMime =
+ file.type ===
+ 'application/vnd.openxmlformats-officedocument.wordprocessingml.document'
+
+ if (!isDocx || !isWordMime) {
+ this.$message.error('只能上传.docx格式的文件!')
+ return false // 阻止上传
+ }
+
+ // 限制大小,例如 10MB
+ const isLt10M = file.size / 1024 / 1024 < 10
+ if (!isLt10M) {
+ this.$message.error('文件大小不能超过 10MB!')
+ return false
+ }
+
+ return true
+ },
// 判断节点是否可选择(只有第三级或没有层级的数据可选择)
isSelectableNode(node) {
// 第三级数据:level为"3"
@@ -1445,37 +1420,6 @@ export default {
} finally {
}
},
- // 上传并解析成功
- // handleParseSuccess(response, file, fileList) {
- // // 兼容你的 AjaxResult 结构:{ code:200, data: [...] }
- // const list = (response && response.code === 200) ? response.data : (Array.isArray(response) ? response : null);
- //
- // if (!list || list.length === 0) {
- // this.$message.warning('未识别到委托人信息,请手动填写');
- // // 设置 fileList 显示上传的文件名
- // this.fileList = [{ name: file.name, url: '' }];
- // return;
- // }
- //
- // // 直接把识别到的结果赋值给 materialReceivers(并保证字段名一致)
- // this.materialReceivers = list.map(item => ({
- // name: item.name || '',
- // idNumber: item.idNumber || '',
- // phone: item.phone || '',
- // idFrontPhoto: item.frontUrl || item.idFrontPhoto || item.fronturl || null,
- // idBackPhoto: item.backUrl || item.idBackPhoto || item.backurl || null,
- // frontUploading: false,
- // backUploading: false
- // }));
- //
- // // 同步到 authForm
- // this.authForm.materialReceivers = [...this.materialReceivers];
- //
- // // 更新 fileList 显示
- // this.fileList = [{ name: file.name, url: '' }];
- //
- // this.$message.success(`识别成功,共提取 ${this.materialReceivers.length} 个委托人`);
- // },
handleParseSuccess(response, file, fileList) {
// 后端返回结构:{ code:200, data: { receivers: [...], filePath: "xxx" } }
const data = (response && response.code === 200) ? response.data : null;
From fbaf1a31b487cd387d5ccbb151b2e979cbe97920 Mon Sep 17 00:00:00 2001
From: bb_pan
Date: Fri, 7 Nov 2025 15:26:54 +0800
Subject: [PATCH 3/3] =?UTF-8?q?=E9=A2=86=E6=96=99=E5=87=BA=E5=BA=93-?=
=?UTF-8?q?=E5=A2=9E=E5=8A=A0=E6=9F=A5=E8=AF=A2=E6=9D=A1=E4=BB=B6?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/api/back/index.js | 9 ++
src/views/material/lease/outBound/index.vue | 92 ++++++++++++++++++++-
2 files changed, 99 insertions(+), 2 deletions(-)
diff --git a/src/api/back/index.js b/src/api/back/index.js
index 83de75ee..41ecc25b 100644
--- a/src/api/back/index.js
+++ b/src/api/back/index.js
@@ -26,6 +26,15 @@ export function getUnitList(data) {
})
}
+// 分公司-下拉
+export function getImpUnitNameListApi(data) {
+ return request({
+ url: '/material/select/getImpUnitNameList',
+ method: 'get',
+ params: data,
+ })
+}
+
// 往来单位下拉选,过滤掉班组
// 往来单位下拉选
export function getUnitListFilterTeam(data) {
diff --git a/src/views/material/lease/outBound/index.vue b/src/views/material/lease/outBound/index.vue
index 858ee7c3..bb9d00db 100644
--- a/src/views/material/lease/outBound/index.vue
+++ b/src/views/material/lease/outBound/index.vue
@@ -50,6 +50,34 @@
>
+
+
+
+
+
+
+
+
+
+
+
搜索
@@ -729,13 +757,20 @@