Commit 317c2e3c by zhaopanyu

Merge branch 'master' of 49.232.152.146:xhxy/smart_school

parents bc340c85 17503e8c
......@@ -5,4 +5,4 @@ VUE_APP_TITLE = 智慧校园管理系统
ENV = 'production'
# 智慧校园/生产环境
VUE_APP_BASE_API = '/prod-api'
VUE_APP_BASE_API = '/gld_api'
......@@ -56,6 +56,7 @@
"moment": "^2.29.4",
"nprogress": "0.2.0",
"print-js": "^1.6.0",
"qrcodejs2": "0.0.2",
"quill": "1.3.7",
"screenfull": "5.0.2",
"socket.io-client": "^4.6.1",
......
import request from "@/utils/request";
//查询设备台账列表
export function getEquipmentLedger(params) {
return request({
url: "/equipmentLedger/list",
method: "GET",
params,
});
}
//根据ID查看设备台账详细信息
export function getEquipmentLedgerDetailByID(id) {
return request({
url: `equipmentLedger/${id}`,
method: "GET",
});
}
//设备台账入库 新增
export function addEquipmentLedger(data) {
return request({
url: "/equipmentLedger/add",
method: "POST",
data,
});
}
//设备台账编辑
export function editEquipmentLedger(data) {
return request({
url: "/equipmentLedger/edit",
method: "PUT",
data,
});
}
//根据分类编码ID获取设备型号
export function getModelByID(id) {
return request({
url: `/productCategory/getEquipmentByCode/${id}`,
method: "GET",
});
}
//设备台账出库 删除
export function deleteEquipmentLedger(id) {
return request({
url: `/equipmentLedger/outStock/${id}`,
method: "POST",
});
}
/**
* 公共接口
* 获取用户列表
**/
export function getUserList(params) {
return request({
url: '/equipmentLedger/getUser',
method: "GET",
params
});
}
import request from "@/utils/request";
//查询借出归还台账列表
export function getLendingReturn(params) {
return request({
url: "/circulation/list",
method: "GET",
params,
});
}
//借出归还台账 根据ID获取详情
export function getLRDetailByID(id) {
return request({
url: `/circulation/${id}`,
method: "GET",
});
}
//借出归还台账新增
export function addLendingReturn(data) {
return request({
url: "/circulation/add",
method: "POST",
data,
});
}
//借出归还台账编辑
export function editLendingReturn(data) {
return request({
url: "/circulation/edit",
method: "PUT",
data,
});
}
//借出归还台账删除
export function deleteLendingReturn(id) {
return request({
url: `/circulation/delete/${id}`,
method: "POST",
});
}
......@@ -22,9 +22,10 @@
<div class="login-card-left">
<el-image
style="width: 600px;"
:src="require('@/assets/images/logo-login.gif')"
:src="require('@/assets/images/login.png')"
lazy
></el-image>
<!-- :src="require('@/assets/images/logo-login.gif')"-->
</div>
<div class="login-card-right">
<el-form ref="loginForm" :model="loginForm" :rules="loginRules" class="login-form">
......@@ -200,6 +201,9 @@ export default {
</script>
<style rel="stylesheet/scss" lang="scss">
.login {
background-color: rgba(0,191,255,0.15);
}
.login-container {
//transition: transform .5s ease-in;
......
......@@ -36,7 +36,6 @@
<template slot-scope="{ row }">
<div>{{ selectDictLabel(dict.type.section_type, row.selectedCourse) }}</div>
</template>
</el-table-column>
<el-table-column label="所分班级" prop="divisionClassesName" align="center" />
</el-table>
......
......@@ -247,12 +247,6 @@ export default {
})
},
// 查询管理员列表
handleQueryVehicle() {
this.throttle(() => {
this.getVehicleList();
})
},
rowClick(row) {
this.$refs.vehicleSelectTable.clearSelection();
this.$refs.vehicleSelectTable.toggleRowSelection(row, true);
......
<template>
<div class="app-container">
<el-form :model="queryParams" ref="queryForm" size="small" v-show="showSearch" inline>
<el-form-item label="设备名称">
<el-input v-model="queryParams.equipmentName" @keyup.enter.native="handleQuery" clearable
placeholder="请输入设备名称"></el-input>
</el-form-item>
<el-form-item label="分类编码">
<el-input v-model="queryParams.equipmentCode" @keyup.enter.native="handleQuery" clearable
placeholder="请输入分类编码"></el-input>
</el-form-item>
<el-form-item label="设备状态">
<el-select v-model="queryParams.equipmentStatus" @keyup.enter.native="handleQuery" clearable
placeholder="请选择设备状态">
<el-option v-for="dict in dict.type.EquipmentStatus" :key="dict.value" :label="dict.label"
:value="dict.value" />
<el-form :model="queryParams" ref="queryForm" size="small" inline>
<el-row>
<el-col :span="5">
<el-form-item label="设备名称">
<el-input style="width: 100%" v-model="queryParams.equipmentName" clearable placeholder="请输入设备名称"></el-input>
</el-form-item>
</el-col>
<el-col :span="5">
<el-form-item label="分类编码">
<treeselect v-model="queryParams.classificationCode" :options="classificationOptions"
:normalizer="normalizer" placeholder="请选择分类编码"/>
</el-form-item>
</el-col>
<el-col :span="5">
<el-form-item label="设备状态">
<el-select v-model="queryParams.equipmentState" clearable placeholder="请选择设备状态">
<el-option v-for="dict in dict.type.equipment_state" :key="dict.value" :label="dict.label"
:value="dict.value" />
</el-select>
</el-form-item>
<el-form-item label="归属类型">
<el-select v-model="queryParams.belongType" @keyup.enter.native="handleQuery" clearable
placeholder="请选择归属类型">
<el-option v-for="dict in dict.type.BelongType" :key="dict.value" :label="dict.label"
:value="dict.value" />
</el-form-item>
</el-col>
<el-col :span="5">
<el-form-item label="归属类型">
<el-select v-model="queryParams.affiliationType" clearable placeholder="请选择归属类型">
<el-option v-for="dict in dict.type.affiliation_type" :key="dict.value" :label="dict.label"
:value="dict.value" />
</el-select>
</el-form-item>
<el-button class="ml20" type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索
</el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
</el-form-item>
</el-col>
<el-col :span="4">
<el-button class="ml20" type="primary" icon="el-icon-search" size="mini" @click="getList">搜索</el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
</el-col>
</el-row>
</el-form>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleAdd">入库
</el-button>
<el-button type="danger" plain icon="el-icon-minus" size="mini" @click="handleDelete">出库
</el-button>
<el-button type="primary" plain icon="el-icon-plus" size="mini" @click="showDetail(0)">入库</el-button>
<el-button type="danger" plain icon="el-icon-minus" size="mini"
@click="handleDelete(0)" :disabled="isDisabledBtn">批量出库</el-button>
</el-col>
<el-col :span="1.5">
<el-button type="success" icon="el-icon-download" size="mini" @click="handleImport">导入
</el-button>
<el-button type="success" icon="el-icon-download" size="mini" @click="upload.open = true">导入</el-button>
</el-col>
<el-col :span="1.5">
<el-button type="warning" icon="el-icon-upload2" size="mini" @click="handleExportClass">导出
</el-button>
<el-button type="warning" icon="el-icon-upload2" size="mini" @click="handleExportClass">导出</el-button>
</el-col>
<el-col :span="1.5">
<el-button type="warning" icon="el-icon-printer" size="mini" @click="printBarcodes">批量打印条码</el-button>
<el-button type="warning" icon="el-icon-printer" size="mini"
@click="printBarcodes" :disabled="isDisabledBtn">批量打印条码</el-button>
</el-col>
</el-row>
<!-- 表单数据 -->
<el-table v-loading="loading" stripe :data="ClassList" @selection-change="handleSelectionChange" width="100%">
<el-table v-loading="loading" stripe :data="deviceData" @selection-change="handleSelectionChange" width="100%">
<el-table-column type="selection" width="55" align="center" />
<el-table-column header-align="center" align="center" type="index" label="序号" width="55" fixed="left" />
<el-table-column header-align="center" align="center" prop="equipmentCode" fixed="left" label="自编码" width="120"
show-overflow-tooltip>
</el-table-column>
<el-table-column header-align="center" align="center" prop="equipmentName" fixed="left" label="设备名称"
show-overflow-tooltip>
</el-table-column>
<el-table-column header-align="center" align="center" prop="equipmentModel" fixed="left" label="型号"
show-overflow-tooltip>
</el-table-column>
<el-table-column header-align="center" align="center" prop="equipmentSpec" fixed="left" label="规格"
show-overflow-tooltip>
</el-table-column>
<el-table-column header-align="center" align="center" prop="equipmentTypeCode" label="分类编码"
show-overflow-tooltip>
<el-table-column align="center" type="index" label="序号" width="55" fixed="left" />
<el-table-column align="center" prop="encode" label="自编码"></el-table-column>
<el-table-column align="center" prop="equipmentName" label="设备名称"></el-table-column>
<el-table-column align="center" prop="model" label="型号"></el-table-column>
<el-table-column align="center" prop="specification" label="规格"></el-table-column>
<el-table-column align="center" prop="classificationCode" label="分类编码"></el-table-column>
<el-table-column align="center" prop="unit" label="单位"></el-table-column>
<el-table-column align="center" prop="affiliationType" label="归属类型">
<template slot-scope="{ row }">
<div>{{ selectDictLabel(dict.type.affiliation_type, row.affiliationType) }}</div>
</template>
</el-table-column>
<el-table-column header-align="center" align="center" prop="equipmentUnit" label="单位" show-overflow-tooltip>
<el-table-column align="center" prop="equipmentState" label="设备状态">
<template slot-scope="{ row }">
<div>{{ selectDictLabel(dict.type.equipment_state, row.equipmentState) }}</div>
</template>
</el-table-column>
<el-table-column header-align="center" align="center" prop="belongType" label="归属类型" show-overflow-tooltip>
<el-table-column align="center" prop="isAllowLend" label="是否允许借出">
<template slot-scope="{ row }">
<div>{{ selectDictLabel(dict.type.is_lend, row.isAllowLend) }}</div>
</template>
</el-table-column>
<el-table-column header-align="center" align="center" prop="equipmentStatus" label="设备状态" show-overflow-tooltip>
</el-table-column>
<el-table-column header-align="center" align="center" prop="isAllowBorrow" label="是否允许借出" width="120px"
show-overflow-tooltip>
</el-table-column>
<el-table-column header-align="center" align="center" prop="isBorrow" label="是否借出" show-overflow-tooltip>
</el-table-column>
<el-table-column header-align="center" align="center" prop="productionDate" label="投产日期" show-overflow-tooltip>
</el-table-column>
<el-table-column header-align="center" align="center" prop="equipmentPrice" label="价格(元)" width="120px"
show-overflow-tooltip>
</el-table-column>
<el-table-column header-align="center" align="center" prop="usefulLife" label="效用年限(年)" width="120px"
show-overflow-tooltip>
</el-table-column>
<el-table-column header-align="center" align="center" prop="equipmentPlace" label="地点" show-overflow-tooltip>
</el-table-column>
<el-table-column header-align="center" align="center" prop="equipmentUser" label="使用人" show-overflow-tooltip>
</el-table-column>
<el-table-column header-align="center" align="center" prop="remark" label="备注" show-overflow-tooltip>
<el-table-column align="center" prop="isLend" label="是否借出">
<template slot-scope="{ row }">
<div>{{ selectDictLabel(dict.type.is_lend, row.isLend) }}</div>
</template>
</el-table-column>
<el-table-column align="center" prop="dateOfProduction" label="投产日期"></el-table-column>
<el-table-column align="center" prop="price" label="价格(元)"></el-table-column>
<el-table-column align="center" prop="lifeOfUtility" label="效用年限(年)"></el-table-column>
<el-table-column align="center" prop="place" label="地点"></el-table-column>
<el-table-column align="center" prop="useName" label="使用人"></el-table-column>
<el-table-column align="center" prop="remark" label="备注"></el-table-column>
<el-table-column label="操作" align="center" min-width="220px" fixed="right">
<template slot-scope="scope">
<el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)"
v-hasPermi="['system:grade:edit']">编辑
</el-button>
<el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)"
v-hasPermi="['system:grade:edit']">查看
</el-button>
<el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)"
v-hasPermi="['system:grade:remove']">出库
</el-button>
<el-button size="mini" type="text" icon="el-icon-edit" @click="showDetail(1,scope.row.id)">编辑</el-button>
<el-button size="mini" type="text" icon="el-icon-view" @click="showDetail(2,scope.row.id)">查看</el-button>
<el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(1,scope.row)">出库</el-button>
</template>
</el-table-column>
</el-table>
<pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize"
@pagination="getList" />
<pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize" @pagination="getList" />
<!-- 添加或修改对话框 -->
<el-dialog :title="title" :visible.sync="dialogVisibleforClass" width="50%" append-to-body>
<el-form ref="form" :model="form" :rules="rules" :disabled="!isEdit" label-width="140px">
<el-dialog :title="title" :visible.sync="dialogVisible" width="50%" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="100px">
<el-row :gutter="20">
<el-col :span="12">
<el-form-item label="自编码:" prop="teacherName">
<el-input v-model="form.teacherName" placeholder="请输入自编码" clearable></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="设备名称:" prop="equipmentName">
<el-input v-model="form.equipmentName" placeholder="请输入设备名称" clearable></el-input>
<el-col :span="24">
<el-form-item v-if="nowOptionType != 0" label="自编码:" prop="encode">
<el-input v-model="form.encode" placeholder="请输入自编码" disabled></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="12">
<el-form-item label="型号:" prop="equipmentModel">
<el-input v-model="form.equipmentModel" placeholder="请输入型号" clearable></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="规格:" prop="equipmentSpec">
<el-input v-model="form.equipmentSpec" placeholder="请输入规格" clearable></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="分类编码:" prop="classificationCode">
<treeselect v-model="form.classificationCode" :options="classificationOptions"
:normalizer="normalizer" @select="selectNode"
placeholder="请选择分类编码" :disabled="nowOptionType==2?true:false"/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="设备名称:" prop="equipmentName">
<el-input v-model="form.equipmentName" placeholder="请输入设备名称"
:disabled="nowOptionType==2?true:false" clearable></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="12">
<el-form-item label="分类编码:" prop="equipmentType">
<el-input v-model="form.equipmentType" placeholder="请输入分类编码" clearable></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="单位:" prop="equipmentUnit">
<el-input v-model="form.equipmentUnit" placeholder="请输入单位" clearable></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="型号:" prop="model">
<el-input v-model="form.model" placeholder="请输入型号"
:disabled="nowOptionType==2?true:false" clearable></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="规格:" prop="specification">
<el-input v-model="form.specification" placeholder="请输入规格"
:disabled="nowOptionType==2?true:false" clearable></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="12">
<el-form-item label="单位:" prop="unit">
<el-input v-model="form.unit" placeholder="请输入单位"
:disabled="nowOptionType==2?true:false" clearable></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="归属类型:" prop="equipmentBelongType">
<el-input v-model="form.equipmentBelongType" placeholder="请输入归属类型" clearable></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="设备状态:">
<el-select v-model="queryParams.equipmentStatus" clearable placeholder="请选择设备状态"
style="width: 100%;">
<el-option v-for="dict in dict.type.EquipmentStatus" :key="dict.value" :label="dict.label"
:value="dict.value" />
</el-select>
<el-form-item label="归属类型:" prop="affiliationType">
<el-select v-model="form.affiliationType" clearable placeholder="请选择归属类型"
:disabled="nowOptionType==2?true:false" class="selectWidth">
<el-option v-for="dict in dict.type.affiliation_type" :key="dict.value" :label="dict.label"
:value="dict.value" />
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="12">
<el-form-item label="设备状态:" prop="equipmentState">
<el-select v-model="form.equipmentState" clearable placeholder="请选择设备状态"
:disabled="nowOptionType==2?true:false" class="selectWidth">
<el-option v-for="dict in dict.type.equipment_state" :key="dict.value" :label="dict.label"
:value="dict.value" />
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="是否允许借出:" prop="equipmentIsBorrow">
<el-select v-model="queryParams.equipmentIsBorrow" clearable placeholder="请选择是否允许借出"
style="width: 100%;">
<el-option v-for="dict in dict.type.EquipmentIsBorrow" :key="dict.value" :label="dict.label"
:value="dict.value" />
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="是否借出:" prop="equipmentIsBorrow">
<el-select v-model="queryParams.equipmentIsBorrow" clearable placeholder="请选择是否借出"
style="width: 100%;">
<el-option v-for="dict in dict.type.EquipmentIsBorrow" :key="dict.value" :label="dict.label"
<el-form-item label="是否允许借出:" prop="isAllowLend">
<el-select v-model="form.isAllowLend" clearable placeholder="请选择是否允许借出"
:disabled="nowOptionType==2?true:false" class="selectWidth">
<el-option v-for="dict in dict.type.is_lend" :key="dict.value" :label="dict.label"
:value="dict.value" />
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="12">
<el-form-item label="是否借出:" prop="isLend">
<el-select v-model="form.isLend" clearable placeholder="请选择是否借出"
:disabled="nowOptionType==2?true:false" class="selectWidth">
<el-option v-for="dict in dict.type.is_lend" :key="dict.value" :label="dict.label"
:value="dict.value" />
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="投产日期:" prop="equipmentProductionDate">
<el-date-picker v-model="form.equipmentProductionDate" type="date" placeholder="选择日期"
style="width: 100%;" value-format="yyyy-MM-dd" clearable></el-date-picker>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="价格:" prop="equipmentPrice">
<el-input v-model="form.equipmentPrice" placeholder="请输入价格" clearable></el-input>
<el-form-item label="投产日期:" prop="dateOfProduction">
<el-date-picker v-model="form.dateOfProduction" type="date" placeholder="选择日期"
class="selectWidth" value-format="yyyy-MM-dd"
:disabled="nowOptionType==2?true:false" clearable>
</el-date-picker>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="12">
<el-form-item label="价格:" prop="price">
<el-input v-model="form.price" placeholder="请输入价格"
:disabled="nowOptionType==2?true:false" clearable></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="效用年限(年):" prop="equipmentUseYear">
<el-input v-model="form.equipmentUseYear" placeholder="请输入效用年限(年)" clearable></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="地点:" prop="equipmentAddress">
<el-input v-model="form.equipmentAddress" placeholder="请输入地点" clearable></el-input>
<el-form-item label="效用年限:" prop="lifeOfUtility">
<el-input v-model="form.lifeOfUtility" placeholder="请输入效用年限(年)"
:disabled="nowOptionType==2?true:false" clearable></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="12">
<el-form-item label="地点:" prop="place">
<el-input v-model="form.place" placeholder="请输入地点"
:disabled="nowOptionType==2?true:false" clearable></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="使用人:" prop="equipmentUsePerson">
<el-input v-model="form.equipmentUsePerson" placeholder="请输入使用人" clearable></el-input>
<el-form-item label="使用人:" prop="useName">
<el-select v-model="form.useId" filterable placeholder="请选择使用人"
:disabled="nowOptionType==2?true:false" clearable>
<el-option v-for="(item,index) in userList" :key="index"
:label="item.userName" :value="item.userId">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="备注:" prop="remark">
<el-input v-model="form.remark" placeholder="请输入备注" clearable></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="24">
<el-form-item label="备注:" prop="remark">
<el-input type="textarea" v-model="form.remark" placeholder="请输入备注"
:disabled="nowOptionType==2?true:false" clearable></el-input>
</el-form-item>
</el-col>
</el-row>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button v-show="isEdit" type="primary" @click="submitForm">确 定</el-button>
<el-button @click="cancel">{{ !isEdit ? '退 出' : '取 消' }}</el-button>
<el-button v-if="nowOptionType != 2" type="primary" @click="submitForm">确 定</el-button>
<el-button @click="dialogVisible = false">取 消</el-button>
</div>
</el-dialog>
<!-- 导入对话框-->
<el-dialog :title="upload.title" :visible.sync="upload.open" width="400px" append-to-body>
<el-upload ref="upload" :limit="1" accept=".xlsx, .xls" :headers="upload.headers" :action="upload.url"
......@@ -248,351 +262,492 @@
</div>
</el-dialog>
<!-- 打印二维码 弹框部分 -->
<el-dialog title="打印条码预览" :visible.sync="printDialog" width="30%">
<div class="qrCodeList">
<div v-for="(item,index) in chooseList" :key="index">
<div class="titlShow">东营市二中</div>
<div class="flexBlock qrCode">
<div class="qrCodeLeft">
<div :id="'qrcode' + index"></div>
<div>{{item.encode}}</div>
</div>
<div class="qrCodeRight">
<div>{{ item.equipmentName }}:{{ item.model }}</div>
<div>地点:{{ item.place }}</div>
</div>
</div>
</div>
</div>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="printCode">打 印</el-button>
</div>
</el-dialog>
<!-- 打印二维码 弹框部分 -->
<!-- 隐藏二维码页面样式 -->
<div id="printBlock">
<div v-for="(item,index) in printList" :key="index" class="printBody">
<div class="titlePrint">东营市二中</div>
<div class="flexBlock printQrCode">
<div class="printLeft">
<div :id="'print' + index" class="printImg"></div>
<div>{{item.encode}}</div>
</div>
<div class="printRight">
<div>{{ item.equipmentName }}:{{ item.model }}</div>
<div>地点:{{item.place}}</div>
</div>
</div>
<div style="page-break-after:always"></div>
</div>
</div>
<!-- 隐藏二维码页面样式 -->
</div>
</template>
<script>
import {
getClassList,
getDetailInfo,
addClass,
editClass,
deleteClass,
allBY, editBatch,
} from "@/api/smartSchool/teachAffairAdministration/affairClassManage/index";
import { getToken } from "@/utils/auth";
import {
addEquipmentLedger, deleteEquipmentLedger, editEquipmentLedger,
getEquipmentLedger,
getEquipmentLedgerDetailByID, getModelByID, getUserList
} from "../../../../api/smartSchool/schoolProperty/equipmenTledger";
import { getProduct } from "../../../../api/smartSchool/schoolProperty/classiFication";
import Treeselect from "@riophae/vue-treeselect";
import "@riophae/vue-treeselect/dist/vue-treeselect.css";
import QRCode from "qrcodejs2"; // 生成二维码插件
import printJS from "print-js"; // 打印插件
export default {
name: "index",
dicts: [],
data() {
return {
// 遮罩层
loading: true,
// 选中数组
ids: [],
// 非单个禁用
single: true,
// 非多个禁用
multiple: true,
// 显示搜索条件
showSearch: true,
// 总条数
total: 0,
// 学校班级表格数据
ClassList: [],
name: "index",
dicts: ['equipment_state','affiliation_type','is_lend'],
components: { Treeselect },
data() {
return {
loading: true, // 遮罩层
total: 0, // 总条数
deviceData: [], // 设备台账表格数据
title: "", // 弹出层标题
dialogVisible: false, // 添加或修改
queryParams: { // 查询参数
pageNum: 1,
pageSize: 10,
equipmentName:'',
classificationCode:undefined,
equipmentState:'',
affiliationType:'',
},
classificationOptions:[], // 分类编码树状结构
upload: {
// 是否显示弹出层
open: false,
// 弹出层标题
title: "",
// 添加或修改学校班级对话框
dialogVisibleforClass: false,
// 批量操作对话框
dialogVisibleforBatch: false,
// 班级导入参数
upload: {
// 是否显示弹出层(班级导入)
open: false,
// 弹出层标题(班级导入)
title: "",
// 是否禁用上传
isUploading: false,
// 设置上传的请求头部
headers: { Authorization: "Bearer " + getToken() },
// 上传的地址
url: process.env.VUE_APP_BASE_API + "/schoolClass/importData"
},
// 查询参数
queryParams: {
pageNum: 1,
pageSize: 10,
},
// 表单参数
form: {},
batchForm: {},
// 表单校验
rules: {
},
// 表单是否可以修改、
isEdit: true,
};
// 是否禁用上传
isUploading: false,
// 设置上传的请求头部
headers: { Authorization: "Bearer " + getToken() },
// 上传的地址
url: process.env.VUE_APP_BASE_API + "/equipmentLedger/importData"
},
form: {
id:'',
encode:'',
equipmentName:'',
model:'',
specification:'',
classificationCode:undefined,
unit:'',
affiliationType:'',
equipmentState:'',
isAllowLend:'',
isLend:'',
dateOfProduction:'',
price:'',
lifeOfUtility:'',
place:'',
useId:'',
useName:'',
remark:'',
},
rules: { // 表单校验
equipmentName:[
{ required: true, message: '请输入设备名称', trigger: 'blur' },
],
classificationCode: [
{ required: true, message: '请选择分类编码', trigger: 'change' }
],
equipmentState: [
{ required: true, message: '请选择设备状态', trigger: 'change' }
],
},
nowOptionType:'', // 0 入库 1 编辑 2 查看
electItem:[], // 选中的数据
isDisabledBtn:true,
chooseList:[], //用户选择的table数据
printDialog:false, // 打印二维码预览
printList:[],
userList:[] //使用人列表
};
},
created() {
this.getClassificationCodeTree()
this.getList()
},
methods: {
//获取分类编码树形下拉框
getClassificationCodeTree(){
getProduct().then(res=>{
if(res.code == 200){
this.classificationOptions = this.handleTree(res.rows, "id")
}
})
},
created() {
this.getList()
/** 查询列表 */
getList() {
this.loading = true
getEquipmentLedger({...this.queryParams}).then(res=>{
if(res.code == 200){
this.total = res.total
this.deviceData = res.rows
this.loading = false
}
})
},
/** 重置按钮操作 */
resetQuery() {
this.queryParams = {
pageNum: 1,
pageSize: 10,
equipmentName:'',
classificationCode:undefined,
equipmentState:'',
affiliationType:'',
}
this.getList()
},
/** 转换分类编码数据结构 */
normalizer(node) {
if (node.children && !node.children.length) {
delete node.children;
}
return {
id: node.classificationCode,
label: node.equipmentType,
children: node.children
};
},
methods: {
/** 查询列表 */
getList() {
this.loading = true;
getClassList(this.queryParams).then((response) => {
this.ClassList = response.rows;
this.total = response.total;
this.loading = false;
});
},
// 取消按钮
cancel() {
this.dialogVisibleforClass = false;
this.reset();
},
// 表单重置
reset() {
this.form = {
};
// this.imageUrl = '';
//表单可编辑
this.isEdit = true;
this.resetForm("form");
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
},
/** 重置按钮操作 */
resetQuery() {
this.queryParams = {
pageNum: 1,
pageSize: 10,
};
this.newYear();
//
},
// 多选框选中数据
handleSelectionChange(selection) {
this.ids = selection.map((item) => item.id);
this.single = selection.length !== 1;
this.multiple = !selection.length;
},
/** 新增按钮操作 */
handleAdd() {
this.reset();
this.dialogVisibleforClass = true;
this.title = "新增";
},
/** 修改按钮操作 */
handleUpdate(row) {
this.reset();
const id = row.id || this.ids;
this.$modal.loading('正在加载数据,请稍等...');
getDetailInfo(id).then((response) => {
this.$modal.closeLoading();
this.form = response.data;
this.dialogVisibleforClass = true;
this.title = "修改";
}).catch(error => {
this.$modal.closeLoading();
})
},
//出库按钮操作
// handleOut(row) {
// this.reset();
// const id = row.id || this.ids;
// this.$modal.loading('正在加载数据,请稍等...');
// getDetailInfo(id).then((response) => {
// this.$modal.closeLoading();
// this.form = response.data;
// this.dialogVisibleforOut = true;
// this.title = "出库";
// }).catch(error => {
// this.$modal.closeLoading();
// })
// },
/** 上传过程 */
handleFileUploadProgress() {
this.upload.isUploading = true;
},
/** 上传成功 */
handleFileSuccess(response) {
this.upload.open = false;
this.upload.isUploading = false;
this.$refs.upload.clearFiles();
this.$alert("<div style='overflow: auto;overflow-x: hidden;max-height: 70vh;padding: 10px 20px 0;'>" + response.msg + "</div>", "导入结果", { dangerouslyUseHTMLString: true });
this.getList();
},
//弹出层分类编码选择事件 获取当前分类编码的型号
selectNode(node){
const id = node.classificationCode
getModelByID(id).then(res=>{
if(res.code == 200){
this.form.model = res.data.model
}
})
},
/** 查看详情 */
handleDetail(row) {
this.reset();
const id = row.id || this.ids;
this.$modal.loading('正在加载数据,请稍等...');
getDetailInfo(id).then(response => {
this.$modal.closeLoading();
this.form = response.data;
this.dialogVisibleforClass = true;
this.title = "查看详情";
this.isEdit = false;
}).catch(error => {
this.$modal.closeLoading();
//0 入库 1 编辑 2 查看
showDetail(type,id){
this.form = {
id:'',
encode:'',
equipmentName:'',
model:'',
specification:'',
classificationCode:undefined,
unit:'',
affiliationType:'',
equipmentState:'',
isAllowLend:'',
isLend:'',
dateOfProduction:'',
price:'',
lifeOfUtility:'',
place:'',
useName:'',
useId:'',
remark:'',
}
this.nowOptionType = type
this.getSelectUser()
if(type != 0){
getEquipmentLedgerDetailByID(id).then(res=>{
if(res.code == 200){
Object.keys(this.form).forEach(key => {
res.data[key] && (this.form[key] = res.data[key])
})
},
/** 提交按钮 */
submitForm() {
this.$refs["form"].validate((valid) => {
if (valid) {
this.$modal.loading('正在上传数据,请稍等...');
if (this.form.id != null) {
editClass(this.form).then((response) => {
this.$modal.closeLoading();
this.$modal.msgSuccess("修改成功");
this.dialogVisibleforClass = false;
this.getList();
}).catch(error => {
this.$modal.closeLoading();
})
} else {
addClass({
...this.form,
gradeType: 4
}).then((response) => {
this.$modal.closeLoading();
this.$modal.msgSuccess("新增成功");
this.dialogVisibleforClass = false;
this.getList();
}).catch(error => {
this.$modal.closeLoading();
})
}
}
});
},
handleBaseInfo() {
this.form.gradeName = this.dict.type.Grade.find(item => item.value == this.form.gradeValue).label;
this.form.className = this.dict.type.Class.find(item => item.value == this.form.classValue).label;
},
console.log("this.form",this.form)
}
})
}
this.dialogVisible = true
},
//使用人列表数据
getSelectUser(){
getUserList().then(res=>{
if(res.code == 200){
this.userList = res.rows
}
})
},
/** 删除按钮操作 */
handleDelete(row) {
const ids = row.id || this.ids;
this.$modal.confirm('是否确认出库?').then(() => {
this.$modal.loading('正在出库,请稍等...');
return deleteClass(ids);
}).then(response => {
this.$modal.closeLoading();
this.$modal.msgSuccess("出库成功");
this.getList();
}).catch(error => {
this.$modal.closeLoading();
//表单提交
submitForm(){
const useId = this.form.useId
this.form.useName = this.userList.find(item=>item.userId == useId).userName
this.$refs['form'].validate((valid) => {
if (valid) {
if(this.nowOptionType == 0){
//0 入库 1 编辑 2 查看
const data = {
equipmentName:this.form.equipmentName,
model:this.form.model,
specification:this.form.specification,
classificationCode:this.form.classificationCode,
unit:this.form.unit,
affiliationType:this.form.affiliationType,
equipmentState:this.form.equipmentState,
isAllowLend:this.form.isAllowLend,
isLend:this.form.isLend,
dateOfProduction:this.form.dateOfProduction,
price:this.form.price,
lifeOfUtility:this.form.lifeOfUtility,
place:this.form.place,
useName:this.form.useName,
useId,
remark:this.form.remark,
}
addEquipmentLedger(data).then(res=>{
if(res.code == 200){
this.$message.success("设备台账入库成功!")
this.dialogVisible = false
this.getList()
}
})
},
// 批量打印
printBarcodes() {
// this.$modal.confirm('是否确认打印所选班级条码?').then(() => {
// this.$modal.loading('正在打印,请稍等...');
// return printBarcodes(this.ids);
// }).then(response => {
// this.$modal.closeLoading();
// this.$modal.msgSuccess("打印成功");
// this.getList();
// }).catch(error => {
// this.$modal.closeLoading();
// })
},
// 取消按钮
cancelForBatch() {
this.dialogVisibleforBatch = false;
this.reset();
},
}else if(this.nowOptionType == 1){
//1 编辑
editEquipmentLedger({...this.form}).then(res=>{
if(res.code == 200){
this.$message.success("设备台账编辑成功!")
this.dialogVisible = false
this.getList()
}
})
}
}
})
},
//出库
handleDelete(type,item){
let idString = type == 0?this.electItem.toString():item.id
let message = type == 0?'是否确认批量出库选中设备?':`是否确认出库${item.model}设备?`
this.$confirm(message, '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
deleteEquipmentLedger(idString).then(res=>{
if(res.code == 200){
this.$message({
type: 'success',
message: '出库成功!'
});
}
})
}).catch(() => {
this.$message({
type: 'info',
message: '已取消出库!'
});
});
},
// 下载模板
importTemplate() {
this.download(
"/schoolClass/importTemplate",
{},
`设备台帐.xlsx`
);
},
//模版下载
importTemplate(){
this.download(
"/equipmentLedger/importTemplate",
{},
`设备台账_template_${new Date().getTime()}.xlsx`
);
},
/** 导入按钮操作 */
handleImport() {
this.upload.title = "导入";
this.upload.open = true;
},
// 文件上传中处理
handleFileUploadProgress(event, file, fileList) {
this.upload.isUploading = true;
},
// 文件上传成功处理
handleFileSuccess(response, file, fileList) {
this.upload.open = false;
this.upload.isUploading = false;
this.$refs.upload.clearFiles();
this.$alert(
"<div style='overflow: auto;overflow-x: hidden;max-height: 70vh;padding: 10px 20px 0;'>" +
response.msg +
"</div>",
"导入结果",
{ dangerouslyUseHTMLString: true }
);
this.getList();
},
// 提交上传文件
submitFileForm() {
this.$refs.upload.submit();
},
/** 导出按钮操作 */
handleExportClass() {
const length = this.ids.length;
const ids = this.ids;
if (!length) {
this.download(
"/schoolClass/export",
{
...this.queryParams,
},
`设备台帐.xlsx`
);
} else {
this.download(
"/schoolClass/export/" + ids,
{
...this.queryParams,
},
`class_${new Date().getTime()}.xlsx`
);
}
},
//导出
handleExportClass(){
const data = {
equipmentName:this.queryParams.equipmentName,
classificationCode:this.queryParams.classificationCode,
equipmentState:this.queryParams.equipmentState,
affiliationType:this.queryParams.affiliationType,
}
this.download('/equipmentLedger/export', {
...data,
}, `设备台账_${Date.now()}.xlsx`)
},
//生成批量打印条码
printBarcodes(){
this.printDialog = true
this.printList = this.chooseList
this.$nextTick(()=>{
this.chooseList.map((item,index) => {
const dom = document.getElementById(`qrcode${index}`).lastElementChild
if(dom == null){
new QRCode(`qrcode${index}`, {
width: 150,
height: 150,
text: item.encode,
});
}
})
this.printList.map((item,index) =>{
const domPrint = document.getElementById(`print${index}`).lastElementChild
if(domPrint == null) {
new QRCode(`print${index}`, {
width: 60,
height: 60,
text: item.encode,
});
}
})
})
},
/** 提交 */
submitFileForm() {
this.$refs.upload.submit();
}
//打印条码
printCode(){
printJS({
printable: 'printBlock', // 标签元素id
type: 'html',
targetStyles: ['*'],
font_size: '10px',
style:`
@media print{
@page{
size:auto;
margin:4mm 0mm 0mm 0mm
}
@page :first {
margin-top:2mm
}
#printBlock{
display:block!important
}
}`
})
},
// 多选框选中数据
handleSelectionChange(selection) {
this.chooseList = selection
this.electItem = selection.map(item=>{
return item.id
})
this.isDisabledBtn = selection.length != 0?false:true
},
},
};
</script>
<style>
.avatar-uploader .el-upload {
border: 1px dashed #d9d9d9;
border-radius: 6px;
cursor: pointer;
position: relative;
overflow: hidden;
<style scoped>
::v-deep .el-form-item,
::v-deep .el-select{
width: 100%;
}
.avatar-uploader .el-upload:hover {
border-color: #409eff;
::v-deep .el-form-item--small .el-form-item__content {
width: 75%;
}
.avatar-uploader-icon {
font-size: 28px;
color: #8c939d;
width: 178px;
height: 178px;
line-height: 178px;
text-align: center;
.qrCodeList{
max-height: 500px;
overflow-y: scroll;
}
.qrCode {
width: 300px;
font-size: 14px;
line-height: 30px;
align-items: flex-start;
margin: 0 auto 20px auto;
}
.qrCodeLeft {
text-align: center;
}
.qrCodeRight {
padding:20px 0 20px 15px;
}
.titlShow {
font-weight: bold;
text-align: center;
padding-bottom: 10px;
font-size: 16px;
}
.avatar {
width: 178px;
height: 178px;
display: block;
#printBlock {
display: none;
margin: 0px!important;
}
.printLeft {
display: flex;
flex-direction: column;
align-items: center;
text-align: center;
}
.printBody {
width: 250px;
}
.printQrCode {
font-size: 6px;
line-height: 20px;
align-items: center;
padding: 8px;
}
.printRight {
width: 60%;
padding:0 5px;
}
.titlePrint {
font-size: 8px;
font-weight: bold;
text-align: center;
}
.printImg {
display: block;
}
</style>
......@@ -2,10 +2,10 @@
<div class="app-container">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" label-width="80px">
<el-form-item label="设备名称" prop="studentName">
<el-input v-model="queryParams.xc" placeholder="请输入设备名称" clearable/>
<el-input v-model="queryParams.equipmentName" placeholder="请输入设备名称" clearable/>
</el-form-item>
<el-form-item label="借用日期" prop="studentName">
<el-date-picker v-model="queryParams.xc" type="date" clearable
<el-date-picker v-model="queryParams.borrowTime" type="date" clearable
placeholder="请选择借用日期" format="yyyy-MM-dd">
</el-date-picker>
</el-form-item>
......@@ -20,22 +20,21 @@
</el-col>
</el-row>
<el-table v-loading="loading" :data="lendReturnData" stripe>
<el-table-column type="selection" width="55"></el-table-column>
<el-table-column label="序号" type="index" width="55" align="center"/>
<el-table-column label="自编码" align="center" prop="studentName"/>
<el-table-column label="设备名称" align="center" prop="studentNumber"/>
<el-table-column label="型号" align="center" prop="studentNumber"/>
<el-table-column label="借用日期" align="center" prop="studentNumber"/>
<el-table-column label="借用人" align="center" prop="studentNumber"/>
<el-table-column label="用途" align="center" prop="studentNumber"/>
<el-table-column label="借用期限(天)" align="center" prop="studentNumber"/>
<el-table-column label="归还日期" align="center" prop="studentNumber"/>
<el-table-column label="归还时设备情况" align="center" prop="studentNumber"/>
<el-table-column label="接收人" align="center" prop="studentNumber"/>
<el-table-column label="预计使用时间" align="center" prop="studentNumber"/>
<el-table-column label="实际使用时间" align="center" prop="studentNumber"/>
<el-table-column label="备注" align="center" prop="studentNumber"/>
<el-table-column label="操作" align="center" prop="orgname" width="150">
<el-table-column label="自编码" align="center" prop="encode"/>
<el-table-column label="设备名称" align="center" prop="equipmentName"/>
<el-table-column label="型号" align="center" prop="model"/>
<el-table-column label="借用日期" align="center" prop="borrowTime"/>
<el-table-column label="借用人" align="center" prop="borrowBy"/>
<el-table-column label="用途" align="center" prop="purpose"/>
<el-table-column label="借用期限(天)" align="center" prop="deadline"/>
<el-table-column label="归还日期" align="center" prop="returnTime"/>
<el-table-column label="归还时设备情况" align="center" prop="returnEquipmentCondition"/>
<el-table-column label="接收人" align="center" prop="receivedBy"/>
<el-table-column label="预计使用时间" align="center" prop="yjuseTime"/>
<el-table-column label="实际使用时间" align="center" prop="sjuseTime"/>
<el-table-column label="备注" align="center" prop="remark"/>
<el-table-column label="操作" align="center" prop="orgname" width="150" fixed="right">
<template slot-scope="{ row }">
<el-button type="text" size="small" @click="handleOption(1,row)">编辑</el-button>
<el-button type="text" size="small" @click="handleOption(2,row)">查看</el-button>
......@@ -48,83 +47,112 @@
<!-- 新增、编辑、查看页面 -->
<el-dialog title="详细信息" :visible.sync="dialogVisible" width="50%">
<el-form :model="lendReturnForm" :rules="lendReturnRules" ref="achievementForm"
label-width="110px" label-position="right">
<el-form :model="lendReturnForm" :rules="lendReturnRules" ref="lendReturnForm"
label-width="120px" label-position="right">
<el-row :gutter="30">
<el-col :span="12">
<el-form-item label="自编码" prop="idCard">
<el-input v-model="lendReturnForm" placeholder="请输入自编码"></el-input>
<el-form-item label="自编码" prop="encode">
<el-input v-model="lendReturnForm.encode" placeholder="请输入自编码"
:disabled="nowType != 0?true:false" @change="getOtherInfoByCode"></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="借用人" prop="idCard">
<el-input v-model="lendReturnForm" placeholder="请输入借用人"></el-input>
<el-form-item label="借用人" prop="borrowById">
<el-select v-model="lendReturnForm.borrowById" filterable placeholder="请选择借用人"
:disabled="nowType == 2?true:false" clearable>
<el-option v-for="(item,index) in userList" :key="index"
:label="item.userName" :value="item.userId">
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="30">
<el-col :span="12">
<el-form-item label="设备名称" prop="idCard">
<el-input v-model="lendReturnForm" placeholder="请输入设备名称"></el-input>
<el-form-item label="设备名称" prop="equipmentName">
<el-input v-model="lendReturnForm.equipmentName" placeholder="请输入设备名称" :disabled="nowType == 2?true:false"></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="型号" prop="idCard">
<el-input v-model="lendReturnForm" placeholder="请输入型号"></el-input>
<el-form-item label="型号" prop="model">
<el-input v-model="lendReturnForm.model" placeholder="请输入型号" :disabled="nowType == 2?true:false"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="30">
<el-col :span="12">
<el-form-item label="借用日期" prop="idCard">
<el-date-picker v-model="lendReturnForm" type="date" clearable class="selectWidth"
placeholder="请选择借用日期" format="yyyy-MM-dd">
<el-form-item label="借用日期" prop="borrowTime">
<el-date-picker v-model="lendReturnForm.borrowTime" type="date" clearable class="selectWidth"
placeholder="请选择借用日期" format="yyyy-MM-dd" :disabled="nowType == 2?true:false">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="归还日期" prop="idCard">
<el-date-picker v-model="lendReturnForm" type="date" clearable class="selectWidth"
placeholder="请选择归还日期" format="yyyy-MM-dd">
<el-form-item label="归还日期" prop="returnTime">
<el-date-picker v-model="lendReturnForm.returnTime" type="date" clearable class="selectWidth"
placeholder="请选择归还日期" format="yyyy-MM-dd" :disabled="nowType == 2?true:false">
</el-date-picker>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="30">
<el-col :span="12">
<el-form-item label="借用期限(天)" prop="idCard">
<el-input v-model="lendReturnForm" placeholder="请输入借用期限"></el-input>
<el-form-item label="借用期限(天)" prop="deadline">
<el-input v-model="lendReturnForm.deadline" placeholder="请输入借用期限" :disabled="nowType == 2?true:false"></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="归还时设备情况" prop="idCard">
<el-input v-model="lendReturnForm" placeholder="请输入归还时设备情况"></el-input>
<el-form-item label="归还时设备情况" prop="returnEquipmentCondition">
<el-input v-model="lendReturnForm.returnEquipmentCondition" placeholder="请输入归还时设备情况"
:disabled="nowType == 2?true:false"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="30">
<el-col :span="12">
<el-form-item label="用途" prop="idCard">
<el-input v-model="lendReturnForm" placeholder="请输入用途"></el-input>
<el-form-item label="用途" prop="purpose">
<el-input v-model="lendReturnForm.purpose" placeholder="请输入用途" :disabled="nowType == 2?true:false"></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="接收人" prop="idCard">
<el-input v-model="lendReturnForm" placeholder="请输入接收人"></el-input>
<el-form-item label="接收人" prop="receivedById">
<el-select v-model="lendReturnForm.receivedById" filterable placeholder="请选择接收人"
:disabled="nowType == 2?true:false" clearable>
<el-option v-for="(item,index) in adminUserList" :key="index"
:label="item.admin" :value="item.adminId">
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="30">
<el-col :span="12">
<el-form-item label="预计使用时间" prop="yjuseTime">
<el-date-picker v-model="lendReturnForm.yjuseTime" type="date" clearable class="selectWidth"
placeholder="请选择预计使用时间" format="yyyy-MM-dd" :disabled="nowType == 2?true:false">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="实际使用时间" prop="sjuseTime">
<el-date-picker v-model="lendReturnForm.sjuseTime" type="date" clearable class="selectWidth"
placeholder="请选择实际使用时间" format="yyyy-MM-dd" :disabled="nowType == 2?true:false">
</el-date-picker>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="30">
<el-col :span="24">
<el-form-item label="备注" prop="chemistry">
<el-input type="textarea" v-model="lendReturnForm" placeholder="请输入备注"></el-input>
<el-form-item label="备注" prop="remark">
<el-input type="textarea" v-model="lendReturnForm.remark" placeholder="请输入备注"
:disabled="nowType == 2?true:false"></el-input>
</el-form-item>
</el-col>
</el-row>
</el-form>
<span slot="footer" class="dialog-footer">
<el-button @click="dialogVisible = false">取 消</el-button>
<el-button type="primary" @click="submitForm">确 定</el-button>
<el-button type="primary" v-if="nowType != 2" @click="submitForm">确 定</el-button>
</span>
</el-dialog>
<!-- 新增、编辑、查看页面 -->
......@@ -132,45 +160,218 @@
</template>
<script>
import {
addLendingReturn, deleteLendingReturn, editLendingReturn,
getLendingReturn,
getLRDetailByID
} from "../../../../api/smartSchool/schoolProperty/lendingReturn";
import { getRepairencode } from "../../../../api/smartSchool/schoolProperty/repairApplicant";
import { getUserList } from "../../../../api/smartSchool/schoolProperty/equipmenTledger";
import { getAdmin } from '@/api/smartSchool/schoolProperty/classiFication.js'
export default {
// dicts: [''],
data() {
return {
queryParams: {
xc: '',
equipmentName: '',
borrowTime: '',
pageNum: 1,
pageSize: 10,
},
loading: false,
total: 0,
lendReturnData:[],
lendReturnForm:{},
lendReturnRules:[],
lendReturnForm:{
id:'',
encode:'',
equipmentId:'',
equipmentName:'',
model:'',
borrowTime:'',
borrowById:'',
borrowBy:'',
purpose:'',
deadline:'',
returnTime:'',
returnEquipmentCondition:'',
receivedById:'',
yjuseTime:'',
sjuseTime:'',
remark:'',
},
lendReturnRules:{
encode:[
{ required: true, message: '请输入自编码', trigger: 'blur' },
],
equipmentName:[
{ required: true, message: '请输入设备名称', trigger: 'blur' },
],
model:[
{ required: true, message: '请输入型号', trigger: 'blur' },
],
borrowById:[
{ required: true, message: '请输入借用人', trigger: 'blur' },
],
borrowTime:[
{ required: true, message: '请输入借用日期', trigger: 'change' },
],
deadline:[
{ required: true, message: '请输入借用期限', trigger: 'change' },
],
purpose:[
{ required: true, message: '请输入用途', trigger: 'change' },
],
},
dialogVisible:false,
nowType:0, // 0新增、1编辑、2查看
userList:[], //用户列表
adminUserList:[] //管理员用户列表
}
},
mounted() {
this.getList()
},
methods:{
// 获取列表数据
getList(){},
getList(){
this.loading = true
getLendingReturn({...this.queryParams}).then(res=>{
if(res.code == 200){
this.total = res.total
this.lendReturnData = res.rows
this.loading = false
}
})
},
// 重置搜索
resetQuery(){},
resetQuery(){
this.queryParams = {
equipmentName: '',
borrowTime: '',
pageNum: 1,
pageSize: 10,
}
this.getList()
},
//根据自编码获取信息
getOtherInfoByCode(){
const code = this.lendReturnForm.encode
getRepairencode(code).then(res=>{
if(res.code == 200){
this.lendReturnForm.equipmentId = res.data.equipmentId
this.lendReturnForm.model = res.data.model
this.lendReturnForm.equipmentName = res.data.equipmentName
}
})
},
// 0新增、1编辑、2查看
handleOption(type,item){
this.lendReturnForm = {
id:'',
encode:'',
equipmentId:'',
equipmentName:'',
model:'',
borrowTime:'',
borrowById:'',
borrowBy:'',
purpose:'',
deadline:'',
returnTime:'',
returnEquipmentCondition:'',
receivedById:'',
yjuseTime:'',
sjuseTime:'',
remark:'',
}
this.nowType = type
this.getSelectUser()
this.getAdminUserList()
if(type != 0){
const id = item.id
getLRDetailByID(id).then(res=>{
if(res.code == 200){
Object.keys(this.lendReturnForm).forEach(key => {
if (res.data[key]) {
this.$set(this.lendReturnForm, key, res.data[key]);
}
})
}
})
}
this.dialogVisible = true
},
//获取用户列表数据
getSelectUser(){
getUserList().then(res=>{
if(res.code == 200){
this.userList = res.rows
}
})
},
//获取管理员用户列表
getAdminUserList(){
getAdmin().then(res=>{
if(res.code == 200){
this.adminUserList = res.data
}
})
},
//删除
handleDelete(){},
handleDelete(id){
this.$confirm("此操作将永久删除该数据,是否继续?", '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
deleteLendingReturn(id).then(res=>{
if(res.code == 200){
this.$message.success("删除成功!")
}
})
}).catch(() => {
this.$message({
type: 'info',
message: '已取消删除!'
});
});
},
//表单提交
submitForm(){},
submitForm(){
const borrowById = this.lendReturnForm.borrowById
this.lendReturnForm.borrowBy = borrowById ==''?'':this.userList.find(item=>item.userId == borrowById).userName
this.$refs['lendReturnForm'].validate((valid) => {
if (valid) {
if(this.nowType == 1){
//1编辑
editLendingReturn({...this.lendReturnForm}).then(res=>{
if(res.code == 200){
this.$message.success("编辑成功!")
this.dialogVisible = false
this.getList()
}
})
}else if(this.nowType == 0){
//0新增
addLendingReturn({...this.lendReturnForm}).then(res=>{
if(res.code == 200){
this.$message.success("新增成功!")
this.dialogVisible = false
this.getList()
}
})
}
}
})
},
}
}
</script>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment