From ce841ddf85c48bae32f9e3068403fdfe98ac8711 Mon Sep 17 00:00:00 2001
From: zzw <228544128@qq.com>
Date: 星期三, 07 十月 2026 12:35:09 +0800
Subject: [PATCH] feat: add extension defaults for fault reporting
---
emergency-repair-web/src/views/system/OrganizationManage.vue | 60 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--
1 files changed, 58 insertions(+), 2 deletions(-)
diff --git a/emergency-repair-web/src/views/system/OrganizationManage.vue b/emergency-repair-web/src/views/system/OrganizationManage.vue
index 519eb3c..0b455e3 100644
--- a/emergency-repair-web/src/views/system/OrganizationManage.vue
+++ b/emergency-repair-web/src/views/system/OrganizationManage.vue
@@ -39,14 +39,40 @@
</el-table-column>
<el-table-column prop="leader" label="璐熻矗浜�" width="120"></el-table-column>
<el-table-column prop="phone" label="鑱旂郴鐢佃瘽" width="150"></el-table-column>
+ <el-table-column prop="responsibleXNo" label="璐熻矗rk_T" width="110" align="center">
+ <template slot-scope="{ row }">
+ <el-tag v-if="row.responsibleXNo" size="mini" type="success">{{ row.responsibleXNo }}</el-tag>
+ <span v-else class="muted">鏈缃�</span>
+ </template>
+ </el-table-column>
<el-table-column prop="orderNum" label="鎺掑簭" width="80" align="center"></el-table-column>
<el-table-column label="鐘舵��" width="90" align="center">
<template slot-scope="{ row }">
<el-tag size="mini" :type="row.status === '1' ? 'info' : 'success'">{{ row.status === '1' ? '鍋滅敤' : '姝e父' }}</el-tag>
</template>
</el-table-column>
+ <el-table-column label="鎿嶄綔" width="120" align="center" fixed="right">
+ <template slot-scope="{ row }">
+ <el-button type="text" icon="el-icon-setting" v-permission="'system:organization:ext'" @click="openExt(row)">鎵╁睍灞炴��</el-button>
+ </template>
+ </el-table-column>
</el-table>
</div>
+
+ <el-dialog :title="'鎵╁睍灞炴�ц缃� - ' + (currentDept.name || '')" :visible.sync="extVisible" width="520px" append-to-body :close-on-click-modal="false">
+ <el-form label-width="105px" v-loading="extLoading">
+ <el-form-item label="璐熻矗rk_T">
+ <el-select v-model="extForm.responsibleXNo" clearable filterable placeholder="璇烽�夋嫨rk_X鍙�" style="width:100%">
+ <el-option v-for="item in xNumbers" :key="item" :label="item" :value="item"></el-option>
+ </el-select>
+ <div class="field-tip">璇ュ�兼柊澧炴晠闅滄椂浣滀负rk_X鍙烽粯璁ゅ�硷紝浠ラ儴闂ㄨ缃负鍑嗐��</div>
+ </el-form-item>
+ </el-form>
+ <template slot="footer">
+ <el-button @click="extVisible = false">鍙栨秷</el-button>
+ <el-button type="primary" :loading="extSaving" @click="saveExt">淇濆瓨</el-button>
+ </template>
+ </el-dialog>
</div>
</template>
<script>
@@ -58,7 +84,13 @@
loading: false,
rows: [],
keyword: '',
- deptType: ''
+ deptType: '',
+ extVisible: false,
+ extLoading: false,
+ extSaving: false,
+ currentDept: {},
+ extForm: { responsibleXNo: '' },
+ xNumbers: []
}
},
computed: {
@@ -91,13 +123,35 @@
return walk(this.tree)
}
},
- created() { this.load() },
+ created() { this.load(); this.loadXNumbers() },
methods: {
load() {
this.loading = true
api.get('/system/depts').then(res => {
this.rows = res.data || []
}).finally(() => { this.loading = false })
+ },
+ loadXNumbers() {
+ api.get('/system/tree/product/x-numbers').then(res => { this.xNumbers = res.data || [] })
+ },
+ openExt(row) {
+ this.currentDept = { ...row }
+ this.extForm = { responsibleXNo: row.responsibleXNo || '' }
+ this.extVisible = true
+ this.extLoading = true
+ api.get('/system/depts/' + row.id + '/ext').then(res => {
+ const data = res.data || {}
+ this.extForm = { responsibleXNo: data.responsibleXNo || '' }
+ }).finally(() => { this.extLoading = false })
+ },
+ saveExt() {
+ if (!this.currentDept.id) return
+ this.extSaving = true
+ api.put('/system/depts/' + this.currentDept.id + '/ext', this.extForm).then(() => {
+ this.$message.success('鎵╁睍灞炴�ц缃垚鍔�')
+ this.extVisible = false
+ this.load()
+ }).finally(() => { this.extSaving = false })
},
buildTree(rows) {
const nodes = rows.map(row => ({ ...row, children: [] }))
@@ -124,4 +178,6 @@
</script>
<style scoped>
.summary { color: #6d7f91; font-size: 13px; }
+.muted { color: #a3afbc; font-size: 12px; }
+.field-tip { margin-top: 4px; color: #7b8a99; font-size: 12px; line-height: 18px; }
</style>
--
Gitblit v1.9.1