:feat:consulting/device.view.py 设备台账搜索

This commit is contained in:
zty 2024-07-01 14:08:01 +08:00
parent 80a8bd19c7
commit 5552a52b79
7 changed files with 160 additions and 34 deletions

File diff suppressed because one or more lines are too long

View File

@ -16,4 +16,11 @@ export function DeviceImp(data) {
method: 'post',
data
})
}
export function getDeviceListAll() {
return request({
url: '/consulting/device/no_page',
method: 'get',
})
}

View File

@ -207,7 +207,7 @@ export const asyncRoutes = [
path: 'device',
name: 'device',
component: () => import('@/views/consulting/device.vue'),
meta: { title: '设备台账', perms: ['policy_view'] }
meta: { title: '设备台账', perms: ['device_view'] }
}, {
path: 'validation',
name: 'validation',

View File

@ -379,8 +379,6 @@
this.qtaskId = sessionStorage.getItem('qtaskId');
this.getOptions();
this.getQtaskDept();
},
methods: {
//领域类型和领域名称

View File

@ -17,6 +17,7 @@
icon="el-icon-upload"
:disabled="checkPermission['device_import']"
>导入Excel</el-button>
<el-button @click="clearFilter" icon="el-icon-clear" type="primary" >清除所有过滤器</el-button>
</el-card>
<el-card style="margin-top: 10px">
<el-table
@ -27,25 +28,50 @@
stripe
highlight-current-row
max-height="700"
ref="filterTable"
>
<el-table-column type="index" width="50" />
<el-table-column align="left" label="公司名称">
<template slot-scope="scope">{{ scope.row.company_name }}</template>
<el-table-column align="left"
label="公司名称"
prop="company_name"
column-key="company_name"
:filters="companylist"
:filter-method="filterHandler"
>
</el-table-column>
<el-table-column align="left" label="设备名称">
<template slot-scope="scope">{{ scope.row.device_name }}</template>
<el-table-column align="left"
label="设备名称"
prop="device_name"
column-key="device_name"
:filters="devicelist"
:filter-method="filterHandler" >
</el-table-column>
<el-table-column align="left" label="设备编号">
<template slot-scope="scope">{{ scope.row.device_number }}</template>
</el-table-column>
<el-table-column align="left" label="规格型号">
<template slot-scope="scope">{{ scope.row.spec }}</template>
<el-table-column align="left"
label="规格型号"
prop="spec"
column-key="spec"
:filters="speclist"
:filter-method="filterHandler"
>
</el-table-column>
<el-table-column align="left" label="生产厂家">
<template slot-scope="scope">{{ scope.row.manufactor }}</template>
<el-table-column align="left"
label="生产厂家"
prop="manufactor"
column-key="manufactor"
:filters="manufactorlist"
:filter-method="filterHandler"
>
</el-table-column>
<el-table-column align="left" label="检测参数">
<template slot-scope="scope">{{ scope.row.dec_parameter }}</template>
<el-table-column align="left"
label="检测参数"
prop="dec_parameter"
column-key="dec_parameter"
:filters="dec_parameterlist"
:filter-method="filterHandler"
>
</el-table-column>
<el-table-column align="left" label="量程">
<template slot-scope="scope">{{ scope.row.range }}</template>
@ -59,8 +85,13 @@
<el-table-column align="left" label="使用部门">
<template slot-scope="scope">{{ scope.row.department }}</template>
</el-table-column>
<el-table-column align="left" label="采购时间">
<template slot-scope="scope">{{ scope.row.procurement_time }}</template>
<el-table-column align="left"
label="采购时间"
prop="procurement_time"
column-key="procurement_time"
:filters="procurement_timelist"
:filter-method="filterHandler"
>
</el-table-column>
<el-table-column align="left" label="资产原值">
<template slot-scope="scope">{{ scope.row.original_price }}</template>
@ -145,6 +176,7 @@
import {
getDeviceList,
DeviceImp,
getDeviceListAll,
} from "@/api/device";
import checkPermission from "@/utils/permission";
import Pagination from "@/components/Pagination"; // secondary package based on el-pagination
@ -163,6 +195,12 @@ export default {
fileList:[],
Content: defaultContent,
listLoading:false,
devicelist:[],
companylist:[],
speclist:[],
procurement_timelist:[],
manufactorlist:[],
dec_parameterlist:[],
dialogVisible: false,
listQuery: {
page: 1,
@ -178,6 +216,9 @@ export default {
},
};
},
mounted(){
this.getALLData();
},
computed: {},
watch: {
filterOrgText(val) {
@ -209,6 +250,10 @@ export default {
that.Content.excel_path = null;
}
},
filterHandler(value, row, column) {
const property = column['property'];
return row[property] === value;
},
importExcel(){
this.dialogVisible = true;
},
@ -223,6 +268,23 @@ export default {
}
});
},
clearFilter() {
this.getList();
this.$refs.filterTable.clearFilter();
},
getALLData(){
getDeviceListAll().then((response) => {
if (response.data){
this.devicelist = Array.from(new Set(response.data.map(item => JSON.stringify({text:item.device_name, value:item.device_name})))).map(item => JSON.parse(item));
this.companylist = Array.from(new Set(response.data.map(item => JSON.stringify({text:item.company_name, value:item.company_name})))).map(item => JSON.parse(item));
this.speclist = Array.from(new Set(response.data.map(item => JSON.stringify({text:item.spec, value:item.spec})))).map(item => JSON.parse(item));
this.procurement_timelist = Array.from(new Set(response.data.map(item => JSON.stringify({text:item.procurement_time, value:item.procurement_time})))).map(item => JSON.parse(item));
this.manufactorlist = Array.from(new Set(response.data.map(item => JSON.stringify({text:item.manufactor, value:item.manufactor})))).map(item => JSON.parse(item));
this.dec_parameterlist = Array.from(new Set(response.data.map(item => JSON.stringify({text:item.dec_parameter, value:item.dec_parameter})))).map(item => JSON.parse(item));
}
});
},
async confirm(){
let that = this;
this.dialogVisible = false;

View File

@ -23,11 +23,11 @@
<el-table-column label="活动参与单位数量" prop="participations"></el-table-column>
<el-table-column label="活动中发挥的作用" prop="function"></el-table-column>
<el-table-column label="活动收益(元)" prop="earnings" ></el-table-column>
<!-- <el-table-column align="center" label="文件下载">
<template slot-scope="scope" v-if="scope.row.file_.file">
<el-link :href="scope.row.file_.file" type="primary">下载</el-link>
<el-table-column align="center" label="文件下载">
<template slot-scope="scope" v-if="scope.row.file">
<el-link :href="scope.row.file" type="primary">下载</el-link>
</template>
</el-table-column> -->
</el-table-column>
<el-table-column align="center" label="操作" width="120px" fixed="right">
<template slot-scope="scope">
<el-link :disabled="!checkPermission(['infoCollect_QA'])" type="primary" size="small"
@ -49,7 +49,7 @@
:limit.sync="listQuery.page_size" @pagination="getTableList" />
</el-card>
<el-dialog :visible.sync="dialogVisible" :title="dialogType === 'edit' ? '编辑' : '新增'">
<el-form ref="Form" :model="Content" label-width="80px" label-position="right" :rules="rule">
<el-form ref="Form" :model="Content" label-width="80px" label-position="right">
<el-form-item label="名称" prop="name">
<el-input v-model="Content.name" placeholder="名称"/>
</el-form-item>
@ -102,6 +102,19 @@
>
</el-date-picker>
</el-form-item>
<el-form-item label="文件路径" prop="file">
<el-upload
ref="upload"
:action="upUrl"
:on-success="handleUpSuccess1"
:on-remove="handleRemove1"
:headers="upHeaders"
:file-list="fileList"
:limit="1">
<el-button size="small" type="primary">上传文件</el-button>
<div slot="tip" class="el-upload__tip">上传相关材料/照片压缩包</div>
</el-upload>
</el-form-item>
</el-form>
<div style="text-align: right">
@ -133,10 +146,10 @@
:headers="upHeaders"
:file-list="fileList"
:limit="1"
accept=".doc,.docx,.xls,.xlsx,.ppt,.pptx,.pdf,.zip">
accept=".doc,.docx,.xls,.xlsx,.ppt,.pptx,.pdf,.zip, .rar">
<el-button size="small" type="primary">上传文件</el-button>
</el-upload>
</el-form-item>``
</el-form-item>
</el-form>
<div style="text-align: right">
<el-button type="danger" @click="close_dialog">取消</el-button>
@ -188,13 +201,15 @@ const defaultContent = {
name: "",
roles: "",
collaborators: "",
orgunits: "",
orgunits: "",
place: "",
activate_time: "",
participations: "",
function: "",
earnings: ""
};
earnings: "",
file:"",
};
export default {
components: { Pagination, Treeselect },
@ -210,6 +225,21 @@ export default {
participations: "",
function: "",
earnings: "",
file: " "
},
formLabelWidth: "120px",
dialogFormVisible: false,
dialogStatus: "",
rules: {
name: [{ required: true, message: "请输入名称", trigger: "blur" }],
},
list: null,
listLoading: true,
downloadLoading: false,
filename: "",
autoWidth: true,
bookType: "xlsx",
importHeaders: {
},
upHeaders: upHeaders(),
upUrl: upUrl(),
@ -254,7 +284,6 @@ export default {
let height1 = document.getElementsByClassName('app-main')[0].clientHeight;
let height2 = document.getElementsByClassName('elHeader')[0].clientHeight;
that.tableHeight = height1 - height2 - 70;
console.log(that.tableHeight)
that.getList();
},
@ -310,12 +339,10 @@ export default {
if (!this.exportForm.startDate || !this.exportForm.endDate) {
this.$message.error('请选择完整的起止日期!');
return;}
console.log(this.exportForm)
exportData(this.exportForm).then((response) => {
if (response.data) {
let filename = '质量活动表.xlsx';
let tableData = response.data;
console.log(tableData)
const ws = XLSX.utils.json_to_sheet(tableData.results);
const wb = XLSX.utils.book_new();
XLSX.utils.book_append_sheet(wb, ws, 'Sheet1');
@ -353,6 +380,13 @@ export default {
this.Content.file = res.data.id;
this.impForm.file = res.data.path;
},
handleUpSuccess1(res, file, filelist) {
console.log(res)
this.Content.file = res.data.path;
},
handleRemove1(file, filelist) {
this.Content.file = null;
},
handleRemove(file, filelist) {
this.Content.file = null;
this.fileList = [];
@ -370,7 +404,6 @@ export default {
this.tableData.results =[];
this.tableData.count =0;
getgetMyRcs(this.listQuery).then((response) => {
console.log(response);
if (response.data) {
this.tableData = response.data;
@ -399,7 +432,7 @@ export default {
if (this.Content.file) {
this.fileList = [
{
name: this.Content.file_.name,
name: this.Content.name,
url: this.Content.file,
},
];
@ -431,7 +464,6 @@ export default {
if (valid) {
const isEdit = this.dialogType === "edit";
if (isEdit) {
console.log(this.Content)
updateRc(this.Content.id, this.Content).then((response) => {
if (response.data) {
this.tableData = response.data;

View File

@ -30,6 +30,11 @@
<el-table-column label="获奖日期">
<template slot-scope="scope">{{ scope.row.awarded_date }}</template>
</el-table-column>
<el-table-column align="center" label="文件下载">
<template slot-scope="scope" v-if="scope.row.file">
<el-link :href="scope.row.file" type="primary">下载</el-link>
</template>
</el-table-column>
<el-table-column align="center" label="操作" width="120px" fixed="right">
<template slot-scope="scope">
<el-link :disabled="!checkPermission(['infoCollect_QC'])" type="primary" size="small"
@ -73,6 +78,19 @@
style="width:50%"
></el-date-picker>
</el-form-item>
<el-form-item label="文件路径" prop="file">
<el-upload
ref="upload"
:action="upUrl"
:on-success="handleUpSuccess1"
:on-remove="handleRemove1"
:headers="upHeaders"
:file-list="fileList"
:limit="1">
<el-button size="small" type="primary">上传文件</el-button>
<div slot="tip" class="el-upload__tip">上传相关材料/照片压缩包</div>
</el-upload>
</el-form-item>
</el-form>
<div style="text-align: right">
<el-button type="danger" @click="dialogVisible = false">取消</el-button>
@ -159,7 +177,8 @@ const defaultContent = {
awardee_company: "",
awardee_people: "",
awarded_by: "",
awarded_date: ""
awarded_date: "",
file:"",
};
export default {
components: { Pagination, Treeselect },
@ -172,7 +191,8 @@ export default {
awardee_company: "",
awardee_people: "",
awarded_by: "",
awarded_date: ""
awarded_date: "",
file:"",
},
upHeaders: upHeaders(),
upUrl: upUrl(),
@ -272,6 +292,13 @@ export default {
this.Content.file = null;
this.impForm.file = '';
},
handleUpSuccess1(res, file, filelist) {
console.log(res)
this.Content.file = res.data.path;
},
handleRemove1(file, filelist) {
this.Content.file = null;
},
checkPermission,
filterNode(value, data) {