From c6e96cdb8b1cfb51e9a45bf86c38d1353e983127 Mon Sep 17 00:00:00 2001
From: 吴羡 <16976746+Xian-TT3@user.noreply.gitee.com>
Date: 星期一, 19 十月 2026 15:19:48 +0800
Subject: [PATCH] 设备模块业务完善及前序页面优化
---
src/views/CNAS/resourceDemand/device/component/usageAuthorization.vue | 51 +++++++++++++++++++++++++++++++++++++++------------
1 files changed, 39 insertions(+), 12 deletions(-)
diff --git a/src/views/CNAS/resourceDemand/device/component/usageAuthorization.vue b/src/views/CNAS/resourceDemand/device/component/usageAuthorization.vue
index 8db89c6..daac854 100644
--- a/src/views/CNAS/resourceDemand/device/component/usageAuthorization.vue
+++ b/src/views/CNAS/resourceDemand/device/component/usageAuthorization.vue
@@ -10,7 +10,7 @@
:page="page" :tableLoading="tableLoading"></lims-table>
</div>
<el-dialog :close-on-click-modal="false" :close-on-press-escape="false" v-model="usageTableDia"
- title="璁惧淇濆吇璁″垝琛�" width="80%" @close="closeDialog">
+ title="璁惧浣跨敤鎺堟潈琛�" width="80%" @close="closeDialog">
<div style="display: flex;align-items: center;">
<el-button size="small" type="primary" @click="addTableRow" v-if="operationType !== 'check'">娣诲姞</el-button>
<span style="width: 60px;margin-left: 10px">骞翠唤锛�</span>
@@ -53,7 +53,7 @@
clearable filterable multiple
:disabled="operationType === 'check'"
placeholder="璇烽�夋嫨" size="small" style="width: 100%;">
- <el-option v-for="item in responsibleOptions" :key="item.id" :label="item.name" :value="item.id">
+ <el-option v-for="item in responsibleOptions" :key="item.id" :label="item.name" :value="item.name">
</el-option>
</el-select>
</template>
@@ -80,7 +80,7 @@
<span style="width: 90px;margin-left: 10px">琚巿鏉冧汉锛�</span>
<el-select v-model="delegatedUser" clearable filterable multiple
placeholder="璇烽�夋嫨" size="small" style="width: 100%;">
- <el-option v-for="item in responsibleOptions" :key="item.name" :label="item.name" :value="item.name">
+ <el-option v-for="item in inspectorOptions" :key="item.name" :label="item.name" :value="item.name">
</el-option>
</el-select>
</div>
@@ -122,6 +122,8 @@
} from "@/api/cnas/resourceDemand/device";
import {selectUserCondition} from "@/api/system/user";
import {mapGetters} from "@/utils/store-compat";
+import {formatListDate} from './dateFormat'
+import {saveBlobOrShowError} from '@/utils/saveBlob'
export default {
name: '',
@@ -148,9 +150,9 @@
column: [
{ label: '璁″垝骞翠唤', prop: 'impowerYear' },
{ label: '缂栧埗浜�', prop: 'compiler' },
- { label: '缂栧埗鏃堕棿', prop: 'datePreparation' },
+ { label: '缂栧埗鏃堕棿', prop: 'datePreparation', formatData: val => formatListDate(val) },
{ label: '鎺堟潈浜�', prop: 'audit' },
- { label: '鎺堟潈鏃ユ湡', prop: 'auditDate' },
+ { label: '鎺堟潈鏃ユ湡', prop: 'auditDate', formatData: val => formatListDate(val) },
{
dataType: 'tag',
label: '鎺堟潈鐘舵��',
@@ -205,7 +207,7 @@
this.openDia('check', row);
},
disabled: (row) => {
- return row.status === 1 || this.userId !== row.auditId;
+ return row.status === 1 || this.userId != row.auditId;
},
},
{
@@ -229,6 +231,7 @@
}
],
responsibleOptions: [],
+ inspectorOptions: [],
operationType: '',
usageTableDia: false,
deviceImpowerDetails: [],
@@ -258,6 +261,7 @@
},
// 鍒嗛〉鍒囨崲
pagination(page) {
+ this.page.current = page.page
this.page.size = page.limit
this.getTableList()
},
@@ -318,9 +322,9 @@
getImpowerDetail({ impowerId: this.impowerId }).then(res => {
if (res.code === 200) {
this.form = res.data
- this.deviceImpowerDetails = this.form.deviceImpowerDetails
+ this.deviceImpowerDetails = this.form.deviceImpowerDetails || []
this.deviceImpowerDetails.forEach(item => {
- item['delegatedUserArr'] = item.delegatedUser.split(',')
+ item['delegatedUserArr'] = item.delegatedUser ? String(item.delegatedUser).split(',') : []
})
}
}).catch(error => {
@@ -337,7 +341,7 @@
// 娣诲姞璁惧
addTableRow() {
this.addEquipDia = true
- this.delegatedUser = this.responsibleOptions.map((item) => item.name);
+ this.delegatedUser = this.inspectorOptions.map((item) => item.name);
this.getEquipOptions()
},
// 鍒犻櫎琛ㄦ牸琛�
@@ -346,9 +350,24 @@
},
// 鎻愪氦鏂板鍜屼慨鏀�
submitForm() {
+ if (!this.form.impowerYear) {
+ this.$message.warning('璇烽�夋嫨骞翠唤')
+ return
+ }
+ if (!this.deviceImpowerDetails.length) {
+ this.$message.warning('璇锋坊鍔犺澶�')
+ return
+ }
+ const noDelegatee = this.deviceImpowerDetails.find(item => {
+ return !Array.isArray(item.delegatedUserArr) || item.delegatedUserArr.length === 0
+ })
+ if (noDelegatee) {
+ this.$message.warning(`璇蜂负璁惧鈥�${noDelegatee.deviceName || ''}鈥濋�夋嫨琚巿鏉冧汉`)
+ return
+ }
this.form.deviceImpowerDetails = this.HaveJson(this.deviceImpowerDetails)
this.form.deviceImpowerDetails.forEach((item) => {
- item.delegatedUser = item.delegatedUserArr.join(',')
+ item.delegatedUser = Array.isArray(item.delegatedUserArr) ? item.delegatedUserArr.join(',') : ''
})
this.submitFormLoading = true
if (this.operationType === 'add') {
@@ -420,10 +439,12 @@
})
},
openHandleOut (row) {
+ this.outLoading = true
exportDeviceImpower({ impowerId: row.impowerId }).then(res => {
this.outLoading = false
- const blob = new Blob([res], { type: 'application/msword' });
- this.$download.saveAs(blob, '璁惧浣跨敤鎺堟潈琛�' + '.docx')
+ saveBlobOrShowError(res, '璁惧浣跨敤鎺堟潈琛�.docx', 'application/msword')
+ }).catch(() => {
+ this.outLoading = false
})
},
handleDeleteClick(row) {
@@ -453,6 +474,12 @@
this.responsibleOptions = res.data
}
})
+ // 琚巿鏉冧汉涓嬫媺鍙彇妫�娴嬪憳瑙掕壊浜哄憳
+ selectUserCondition({type: 3}).then(res => {
+ if (res.code == 200) {
+ this.inspectorOptions = res.data
+ }
+ })
},
},
watch: {
--
Gitblit v1.9.3