Merge remote-tracking branch 'origin/master'
This commit is contained in:
commit
4fb81eb128
|
|
@ -0,0 +1,27 @@
|
||||||
|
import request from '@/axios';
|
||||||
|
// 查询项目数据列表
|
||||||
|
export const getList = (data) => {
|
||||||
|
return request({
|
||||||
|
url: '/blade-system/project/getProjectList',
|
||||||
|
method: 'post',
|
||||||
|
data: data,
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
// 配置档案类型
|
||||||
|
export function updateContentsNameAPI(data) {
|
||||||
|
return request({
|
||||||
|
url: '/blade-system/project/updateContentsName',
|
||||||
|
method: 'POST',
|
||||||
|
data: data,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
// 档案类型下拉选
|
||||||
|
export function getFileCatalogSelectAPI(data) {
|
||||||
|
return request({
|
||||||
|
url: '/blade-system/project/getFileCatalogSelect',
|
||||||
|
method: 'POST',
|
||||||
|
data: data,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,279 @@
|
||||||
|
<template>
|
||||||
|
<basic-container>
|
||||||
|
<avue-crud
|
||||||
|
:option="option"
|
||||||
|
:table-loading="loading"
|
||||||
|
:data="data"
|
||||||
|
v-model:page="page"
|
||||||
|
:permission="permissionList"
|
||||||
|
v-model="form"
|
||||||
|
ref="crud"
|
||||||
|
@search-change="searchChange"
|
||||||
|
@search-reset="searchReset"
|
||||||
|
@on-load="onLoad"
|
||||||
|
>
|
||||||
|
<!-- 匹配档案目录类型显示 slot -->
|
||||||
|
<template #contentsName="{ row }">
|
||||||
|
<span v-if="row.contentsName && row.contentsName.toString().trim() !== ''">
|
||||||
|
{{ row.contentsName }}
|
||||||
|
</span>
|
||||||
|
<span v-else style="color: #909399;">未配置</span>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<!-- 操作列 -->
|
||||||
|
<template #menu="{ row }">
|
||||||
|
<el-button
|
||||||
|
v-if="!row.contentsName || row.contentsName.toString().trim() === ''"
|
||||||
|
type="primary"
|
||||||
|
@click="openConfig(row)"
|
||||||
|
>
|
||||||
|
配置档案类型
|
||||||
|
</el-button>
|
||||||
|
<span v-else style="display:inline-block;width:0;"></span>
|
||||||
|
</template>
|
||||||
|
</avue-crud>
|
||||||
|
|
||||||
|
<!-- 配置档案类型弹窗 -->
|
||||||
|
<el-dialog
|
||||||
|
v-model="configDialogVisible"
|
||||||
|
title="配置档案类型"
|
||||||
|
width="400px"
|
||||||
|
height="300px"
|
||||||
|
>
|
||||||
|
<el-form :model="configForm" label-width="100px">
|
||||||
|
<el-form-item label="档案类型">
|
||||||
|
<el-select v-model="configForm.contentsId" placeholder="请选择档案类型" style="width: 100%;" @change="handleSelectChange">
|
||||||
|
<el-option
|
||||||
|
v-for="item in fileCatalogList"
|
||||||
|
:key="item.id"
|
||||||
|
:label="item.name"
|
||||||
|
:value="item.id"
|
||||||
|
/>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
</el-form>
|
||||||
|
|
||||||
|
<span slot="footer">
|
||||||
|
<el-button @click="configDialogVisible = false">取消</el-button>
|
||||||
|
<el-button type="primary" @click="saveConfig">保存</el-button>
|
||||||
|
</span>
|
||||||
|
</el-dialog>
|
||||||
|
</basic-container>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import { getList, updateContentsNameAPI, getFileCatalogSelectAPI } from '@/api/archivesManagement/proManager';
|
||||||
|
import { mapGetters } from 'vuex';
|
||||||
|
|
||||||
|
export default {
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
form: {},
|
||||||
|
query: {},
|
||||||
|
loading: true,
|
||||||
|
data: [],
|
||||||
|
|
||||||
|
page: {
|
||||||
|
pageSize: 10,
|
||||||
|
currentPage: 1,
|
||||||
|
total: 0
|
||||||
|
},
|
||||||
|
|
||||||
|
selectionList: [],
|
||||||
|
|
||||||
|
// 配置弹窗
|
||||||
|
configDialogVisible: false,
|
||||||
|
configForm: {
|
||||||
|
id: null,
|
||||||
|
proId:null,
|
||||||
|
contentsId: '', // 档案类型ID
|
||||||
|
contentsName: '' // 档案类型名称
|
||||||
|
},
|
||||||
|
fileCatalogList: [],
|
||||||
|
|
||||||
|
option: {
|
||||||
|
height: 'auto',
|
||||||
|
calcHeight: 32,
|
||||||
|
tip: false,
|
||||||
|
searchShow: true,
|
||||||
|
searchMenuSpan: 6,
|
||||||
|
border: true,
|
||||||
|
index: true,
|
||||||
|
selection: false,
|
||||||
|
addBtn: false,
|
||||||
|
editBtn: false,
|
||||||
|
delBtn: false,
|
||||||
|
viewBtn: false,
|
||||||
|
menu: true,
|
||||||
|
menuWidth: 180,
|
||||||
|
dialogClickModal: false,
|
||||||
|
|
||||||
|
column: [
|
||||||
|
|
||||||
|
{
|
||||||
|
label: '项目名称',
|
||||||
|
prop: 'proName',
|
||||||
|
search: false
|
||||||
|
},
|
||||||
|
|
||||||
|
/** ---------------- 查询字段 开始---------------- */
|
||||||
|
{
|
||||||
|
label: '单项工程名称',
|
||||||
|
prop: 'singleProName',
|
||||||
|
search: true,
|
||||||
|
searchLabelWidth: 100 // 设置标签固定宽度
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: '工程类型',
|
||||||
|
prop: 'proStatus',
|
||||||
|
type: 'select',
|
||||||
|
search: true,
|
||||||
|
dicUrl: '/blade-system/system/dict/data/type',
|
||||||
|
dicMethod: 'post',
|
||||||
|
dicQuery: { dictType: 'pro_type' },
|
||||||
|
props: { label: 'dictLabel', value: 'dictValue' }
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: '电压等级',
|
||||||
|
prop: 'voltageLevel',
|
||||||
|
type: 'select',
|
||||||
|
search: true,
|
||||||
|
dicUrl: '/blade-system/system/dict/data/type',
|
||||||
|
dicMethod: 'post',
|
||||||
|
dicQuery: { dictType: 'voltage_level' },
|
||||||
|
props: { label: 'dictLabel', value: 'dictValue' }
|
||||||
|
},
|
||||||
|
/** ---------------- 查询字段 结束 ---------------- */
|
||||||
|
{
|
||||||
|
label: '计划开工日期',
|
||||||
|
prop: 'planStartDate',
|
||||||
|
slot: true,
|
||||||
|
search: false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: '计划竣工日期',
|
||||||
|
prop: 'planEndDate',
|
||||||
|
slot: true,
|
||||||
|
search: false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: '计划投产日期',
|
||||||
|
prop: 'planTcDate',
|
||||||
|
slot: true,
|
||||||
|
search: false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: '工程状态',
|
||||||
|
prop: 'proStatusName',
|
||||||
|
slot: true,
|
||||||
|
search: false
|
||||||
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
label: '匹配档案目录类型',
|
||||||
|
prop: 'contentsName',
|
||||||
|
slot: true,
|
||||||
|
search: false
|
||||||
|
}
|
||||||
|
|
||||||
|
]
|
||||||
|
}
|
||||||
|
};
|
||||||
|
},
|
||||||
|
|
||||||
|
computed: {
|
||||||
|
...mapGetters(['permission']),
|
||||||
|
permissionList() {
|
||||||
|
return {
|
||||||
|
viewBtn: false,
|
||||||
|
delBtn: false,
|
||||||
|
editBtn: false
|
||||||
|
};
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
methods: {
|
||||||
|
/** --------------------- 读取列表 --------------------- */
|
||||||
|
onLoad(page, params = {}) {
|
||||||
|
this.loading = true;
|
||||||
|
|
||||||
|
const queryParams = {
|
||||||
|
...params,
|
||||||
|
pageNum: page.currentPage,
|
||||||
|
pageSize: page.pageSize
|
||||||
|
};
|
||||||
|
|
||||||
|
getList(queryParams).then(res => {
|
||||||
|
const data = res.data;
|
||||||
|
this.data = data.rows;
|
||||||
|
this.page.total = data.total;
|
||||||
|
this.loading = false;
|
||||||
|
});
|
||||||
|
},
|
||||||
|
|
||||||
|
searchReset() {
|
||||||
|
this.query = {};
|
||||||
|
this.onLoad(this.page);
|
||||||
|
},
|
||||||
|
|
||||||
|
searchChange(params, done) {
|
||||||
|
this.query = params;
|
||||||
|
this.page.currentPage = 1;
|
||||||
|
this.onLoad(this.page, params);
|
||||||
|
done();
|
||||||
|
},
|
||||||
|
|
||||||
|
/** --------------------- 配置档案类型 --------------------- */
|
||||||
|
openConfig(row) {
|
||||||
|
this.configForm.proId = row.id;
|
||||||
|
this.configForm.id = null;
|
||||||
|
// 重置表单
|
||||||
|
this.configForm.contentsId = '';
|
||||||
|
this.configForm.contentsName = '';
|
||||||
|
getFileCatalogSelectAPI().then(res => {
|
||||||
|
this.fileCatalogList = res.data.data;
|
||||||
|
this.configDialogVisible = true;
|
||||||
|
});
|
||||||
|
},
|
||||||
|
|
||||||
|
/** 处理下拉框选择变化 */
|
||||||
|
handleSelectChange(selectedId) {
|
||||||
|
const selectedItem = this.fileCatalogList.find(item => item.id === selectedId);
|
||||||
|
if (selectedItem) {
|
||||||
|
this.configForm.contentsName = selectedItem.name;
|
||||||
|
} else {
|
||||||
|
this.configForm.contentsName = '';
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
saveConfig() {
|
||||||
|
if (!this.configForm.contentsId) {
|
||||||
|
this.$message.warning('请选择档案类型');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!this.configForm.contentsName) {
|
||||||
|
const selectedItem = this.fileCatalogList.find(item => item.id === this.configForm.contentsId);
|
||||||
|
if (selectedItem) {
|
||||||
|
this.configForm.contentsName = selectedItem.name;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
updateContentsNameAPI({
|
||||||
|
proId: this.configForm.proId,
|
||||||
|
id: this.configForm.contentsId,
|
||||||
|
contentsId: this.configForm.contentsId,
|
||||||
|
contentsName: this.configForm.contentsName,
|
||||||
|
}).then(() => {
|
||||||
|
this.$message.success('配置成功!');
|
||||||
|
this.configDialogVisible = false;
|
||||||
|
this.onLoad(this.page, this.query);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style>
|
||||||
|
|
||||||
|
</style>
|
||||||
Loading…
Reference in New Issue