| | |
| | | method: 'get' |
| | | }) |
| | | } |
| | | |
| | | // 高校下拉列表 |
| | | export function listSchool() { |
| | | return request({ |
| | | url: '/oa/school/select', |
| | | method: 'get' |
| | | }) |
| | | } |
| | | |
| | | // 生产批次下拉列表 |
| | | export function listBatch() { |
| | | return request({ |
| | | url: '/oa/batch/select', |
| | | method: 'get' |
| | | }) |
| | | } |
| | | |
| | | // 用户下拉列表 |
| | | export function listUser() { |
| | | return request({ |
| | | url: '/system/user/select', |
| | | method: 'get' |
| | | }) |
| | | } |
| | | |
| | | // 通过部门id获取用户表格 |
| | | export function listUserDept(p) { |
| | | return request({ |
| | | url: `/system/user/byDept?deptId=${p.deptId}&pageNum=${p.pageNum}&pageSize=${p.pageSize}`, |
| | | method: 'get' |
| | | }) |
| | | } |
New file |
| | |
| | | import request from '@/utils/request' |
| | | |
| | | // 查询生产批次列表 |
| | | export function listBatch(query) { |
| | | return request({ |
| | | url: '/oa/batch/list', |
| | | method: 'get', |
| | | params: query |
| | | }) |
| | | } |
| | | |
| | | // 查询生产批次详细 |
| | | export function getBatch(id) { |
| | | return request({ |
| | | url: '/oa/batch/' + id, |
| | | method: 'get' |
| | | }) |
| | | } |
| | | |
| | | // 新增生产批次 |
| | | export function addBatch(data) { |
| | | return request({ |
| | | url: '/oa/batch', |
| | | method: 'post', |
| | | data: data |
| | | }) |
| | | } |
| | | |
| | | // 修改生产批次 |
| | | export function updateBatch(data) { |
| | | return request({ |
| | | url: '/oa/batch', |
| | | method: 'put', |
| | | data: data |
| | | }) |
| | | } |
| | | |
| | | // 删除生产批次 |
| | | export function delBatch(id) { |
| | | return request({ |
| | | url: '/oa/batch/' + id, |
| | | method: 'delete' |
| | | }) |
| | | } |
New file |
| | |
| | | import request from '@/utils/request' |
| | | |
| | | // 查询智控设备列表 |
| | | export function listEquipment(query) { |
| | | return request({ |
| | | url: '/oa/equipment/list', |
| | | method: 'get', |
| | | params: query |
| | | }) |
| | | } |
| | | |
| | | // 查询智控设备详细 |
| | | export function getEquipment(id) { |
| | | return request({ |
| | | url: '/oa/equipment/' + id, |
| | | method: 'get' |
| | | }) |
| | | } |
| | | |
| | | // 新增智控设备 |
| | | export function addEquipment(data) { |
| | | return request({ |
| | | url: '/oa/equipment', |
| | | method: 'post', |
| | | data: data |
| | | }) |
| | | } |
| | | |
| | | // 修改智控设备 |
| | | export function updateEquipment(data) { |
| | | return request({ |
| | | url: '/oa/equipment', |
| | | method: 'put', |
| | | data: data |
| | | }) |
| | | } |
| | | |
| | | // 删除智控设备 |
| | | export function delEquipment(id) { |
| | | return request({ |
| | | url: '/oa/equipment/' + id, |
| | | method: 'delete' |
| | | }) |
| | | } |
New file |
| | |
| | | import request from '@/utils/request' |
| | | |
| | | // 查询外设单元列表 |
| | | export function listPeripheralUnit(query) { |
| | | return request({ |
| | | url: '/oa/peripheralUnit/list', |
| | | method: 'get', |
| | | params: query |
| | | }) |
| | | } |
| | | |
| | | // 查询外设单元详细 |
| | | export function getPeripheralUnit(id) { |
| | | return request({ |
| | | url: '/oa/peripheralUnit/' + id, |
| | | method: 'get' |
| | | }) |
| | | } |
| | | |
| | | // 新增外设单元 |
| | | export function addPeripheralUnit(data) { |
| | | return request({ |
| | | url: '/oa/peripheralUnit', |
| | | method: 'post', |
| | | data: data |
| | | }) |
| | | } |
| | | |
| | | // 修改外设单元 |
| | | export function updatePeripheralUnit(data) { |
| | | return request({ |
| | | url: '/oa/peripheralUnit', |
| | | method: 'put', |
| | | data: data |
| | | }) |
| | | } |
| | | |
| | | // 删除外设单元 |
| | | export function delPeripheralUnit(id) { |
| | | return request({ |
| | | url: '/oa/peripheralUnit/' + id, |
| | | method: 'delete' |
| | | }) |
| | | } |
| | |
| | | <template> |
| | | <div class="upload-file"> |
| | | <el-upload |
| | | :disabled="disabled" |
| | | :action="uploadFileUrl" |
| | | :before-upload="handleBeforeUpload" |
| | | :file-list="fileList" |
| | |
| | | <span class="el-icon-document"> {{ getFileName(file.name) }} </span> |
| | | </el-link> |
| | | <div class="ele-upload-list__item-content-action"> |
| | | <el-link :underline="false" @click="handleDelete(index)" type="danger">删除</el-link> |
| | | <el-link :underline="false" @click="handleDelete(index)" type="danger" :disabled="disabled">删除</el-link> |
| | | </div> |
| | | </li> |
| | | </transition-group> |
| | |
| | | isShowTip: { |
| | | type: Boolean, |
| | | default: true |
| | | }, |
| | | disabled: { |
| | | type: Boolean, |
| | | default: false |
| | | } |
| | | }, |
| | | data() { |
New file |
| | |
| | | <template> |
| | | <div class="app-container"> |
| | | <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px"> |
| | | <el-form-item label="生产批次" prop="batch"> |
| | | <el-input |
| | | v-model="queryParams.batch" |
| | | placeholder="请输入生产批次" |
| | | clearable |
| | | size="small" |
| | | @keyup.enter.native="handleQuery" |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item label="下单日期" prop="orderDate"> |
| | | <el-date-picker clearable size="small" |
| | | v-model="queryParams.orderDate" |
| | | type="date" |
| | | value-format="yyyy-MM-dd" |
| | | placeholder="选择下单日期"> |
| | | </el-date-picker> |
| | | </el-form-item> |
| | | <el-form-item label="到货日期" prop="arrivalDate"> |
| | | <el-date-picker clearable size="small" |
| | | v-model="queryParams.arrivalDate" |
| | | type="date" |
| | | value-format="yyyy-MM-dd" |
| | | placeholder="选择到货日期"> |
| | | </el-date-picker> |
| | | </el-form-item> |
| | | <el-form-item> |
| | | <el-button 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-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" |
| | | v-hasPermi="['oa:batch:add']" |
| | | >新增</el-button> |
| | | </el-col> |
| | | <el-col :span="1.5"> |
| | | <el-button |
| | | type="success" |
| | | plain |
| | | icon="el-icon-edit" |
| | | size="mini" |
| | | :disabled="single" |
| | | @click="handleUpdate" |
| | | v-hasPermi="['oa:batch:edit']" |
| | | >修改</el-button> |
| | | </el-col> |
| | | <el-col :span="1.5"> |
| | | <el-button |
| | | type="danger" |
| | | plain |
| | | icon="el-icon-delete" |
| | | size="mini" |
| | | :disabled="multiple" |
| | | @click="handleDelete" |
| | | v-hasPermi="['oa:batch:remove']" |
| | | >删除</el-button> |
| | | </el-col> |
| | | <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> |
| | | </el-row> |
| | | |
| | | <el-table v-loading="loading" :data="batchList" @selection-change="handleSelectionChange"> |
| | | <el-table-column type="selection" width="55" align="center" /> |
| | | <el-table-column label="序号" align="center" width="50"> |
| | | <template slot-scope="scope"> |
| | | <span>{{ scope.$index + (queryParams.pageNum - 1) * queryParams.pageSize + 1 }} </span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="生产批次" align="center" prop="batch" /> |
| | | <el-table-column label="下单日期" align="center" prop="orderDate" width="180"> |
| | | <template slot-scope="scope"> |
| | | <span>{{ parseTime(scope.row.orderDate, '{y}-{m}-{d}') }}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="到货日期" align="center" prop="arrivalDate" width="180"> |
| | | <template slot-scope="scope"> |
| | | <span>{{ parseTime(scope.row.arrivalDate, '{y}-{m}-{d}') }}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="批次说明" align="center" prop="illustrate" /> |
| | | <el-table-column label="操作" align="center" class-name="small-padding fixed-width"> |
| | | <template slot-scope="scope"> |
| | | <el-button |
| | | size="mini" |
| | | type="text" |
| | | icon="el-icon-edit" |
| | | @click="handleUpdate(scope.row)" |
| | | v-hasPermi="['oa:batch:edit']" |
| | | >修改</el-button> |
| | | <el-button |
| | | size="mini" |
| | | type="text" |
| | | icon="el-icon-delete" |
| | | @click="handleDelete(scope.row)" |
| | | v-hasPermi="['oa:batch:remove']" |
| | | >删除</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" |
| | | /> |
| | | |
| | | <!-- 添加或修改生产批次对话框 --> |
| | | <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body> |
| | | <el-form ref="form" :model="form" :rules="rules" label-width="80px"> |
| | | <el-form-item label="生产批次" prop="batch"> |
| | | <el-input v-model="form.batch" placeholder="请输入生产批次" /> |
| | | </el-form-item> |
| | | <el-form-item label="下单日期" prop="orderDate"> |
| | | <el-date-picker clearable size="small" |
| | | v-model="form.orderDate" |
| | | type="date" |
| | | value-format="yyyy-MM-dd" |
| | | placeholder="选择下单日期"> |
| | | </el-date-picker> |
| | | </el-form-item> |
| | | <el-form-item label="到货日期" prop="arrivalDate"> |
| | | <el-date-picker clearable size="small" |
| | | v-model="form.arrivalDate" |
| | | type="date" |
| | | value-format="yyyy-MM-dd" |
| | | placeholder="选择到货日期"> |
| | | </el-date-picker> |
| | | </el-form-item> |
| | | <el-form-item label="批次说明" prop="illustrate"> |
| | | <el-input v-model="form.illustrate" type="textarea" placeholder="请输入内容" /> |
| | | </el-form-item> |
| | | </el-form> |
| | | <div slot="footer" class="dialog-footer"> |
| | | <el-button :loading="buttonLoading" type="primary" @click="submitForm">确 定</el-button> |
| | | <el-button @click="cancel">取 消</el-button> |
| | | </div> |
| | | </el-dialog> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import { listBatch, getBatch, delBatch, addBatch, updateBatch } from "@/api/oa/batch"; |
| | | |
| | | export default { |
| | | name: "Batch", |
| | | data() { |
| | | return { |
| | | // 按钮loading |
| | | buttonLoading: false, |
| | | // 遮罩层 |
| | | loading: true, |
| | | // 选中数组 |
| | | ids: [], |
| | | // 非单个禁用 |
| | | single: true, |
| | | // 非多个禁用 |
| | | multiple: true, |
| | | // 显示搜索条件 |
| | | showSearch: true, |
| | | // 总条数 |
| | | total: 0, |
| | | // 生产批次表格数据 |
| | | batchList: [], |
| | | // 弹出层标题 |
| | | title: "", |
| | | // 是否显示弹出层 |
| | | open: false, |
| | | // 查询参数 |
| | | queryParams: { |
| | | pageNum: 1, |
| | | pageSize: 10, |
| | | batch: undefined, |
| | | orderDate: undefined, |
| | | arrivalDate: undefined, |
| | | illustrate: undefined, |
| | | }, |
| | | // 表单参数 |
| | | form: {}, |
| | | // 表单校验 |
| | | rules: { |
| | | batch: [ |
| | | { required: true, message: "生产批次不能为空", trigger: "blur" } |
| | | ], |
| | | orderDate: [ |
| | | { required: true, message: "下单日期不能为空", trigger: "blur" } |
| | | ], |
| | | arrivalDate: [ |
| | | { required: true, message: "到货日期不能为空", trigger: "blur" } |
| | | ], |
| | | // illustrate: [ |
| | | // { required: true, message: "批次说明不能为空", trigger: "blur" } |
| | | // ], |
| | | } |
| | | }; |
| | | }, |
| | | created() { |
| | | this.getList(); |
| | | }, |
| | | methods: { |
| | | /** 查询生产批次列表 */ |
| | | getList() { |
| | | this.loading = true; |
| | | listBatch(this.queryParams).then(response => { |
| | | this.batchList = response.rows; |
| | | this.total = response.total; |
| | | this.loading = false; |
| | | }); |
| | | }, |
| | | // 取消按钮 |
| | | cancel() { |
| | | this.open = false; |
| | | this.reset(); |
| | | }, |
| | | // 表单重置 |
| | | reset() { |
| | | this.form = { |
| | | id: undefined, |
| | | batch: undefined, |
| | | orderDate: undefined, |
| | | arrivalDate: undefined, |
| | | illustrate: undefined, |
| | | createBy: undefined, |
| | | createTime: undefined, |
| | | updateBy: undefined, |
| | | updateTime: undefined, |
| | | delFlag: undefined, |
| | | version: undefined |
| | | }; |
| | | this.resetForm("form"); |
| | | }, |
| | | /** 搜索按钮操作 */ |
| | | handleQuery() { |
| | | this.queryParams.pageNum = 1; |
| | | this.getList(); |
| | | }, |
| | | /** 重置按钮操作 */ |
| | | resetQuery() { |
| | | this.resetForm("queryForm"); |
| | | this.handleQuery(); |
| | | }, |
| | | // 多选框选中数据 |
| | | handleSelectionChange(selection) { |
| | | this.ids = selection.map(item => item.id) |
| | | this.single = selection.length!==1 |
| | | this.multiple = !selection.length |
| | | }, |
| | | /** 新增按钮操作 */ |
| | | handleAdd() { |
| | | this.reset(); |
| | | this.open = true; |
| | | this.title = "添加生产批次"; |
| | | }, |
| | | /** 修改按钮操作 */ |
| | | handleUpdate(row) { |
| | | this.loading = true; |
| | | this.reset(); |
| | | const id = row.id || this.ids |
| | | getBatch(id).then(response => { |
| | | this.loading = false; |
| | | this.form = response.data; |
| | | this.open = true; |
| | | this.title = "修改生产批次"; |
| | | }); |
| | | }, |
| | | /** 提交按钮 */ |
| | | submitForm() { |
| | | this.$refs["form"].validate(valid => { |
| | | if (valid) { |
| | | this.buttonLoading = true; |
| | | if (this.form.id != null) { |
| | | updateBatch(this.form).then(response => { |
| | | this.$modal.msgSuccess("修改成功"); |
| | | this.open = false; |
| | | this.getList(); |
| | | }).finally(() => { |
| | | this.buttonLoading = false; |
| | | }); |
| | | } else { |
| | | addBatch(this.form).then(response => { |
| | | this.$modal.msgSuccess("新增成功"); |
| | | this.open = false; |
| | | this.getList(); |
| | | }).finally(() => { |
| | | this.buttonLoading = false; |
| | | }); |
| | | } |
| | | } |
| | | }); |
| | | }, |
| | | /** 删除按钮操作 */ |
| | | handleDelete(row) { |
| | | const ids = row.id || this.ids; |
| | | this.$modal.confirm('是否确认删除生产批次编号为"' + ids + '"的数据项?').then(() => { |
| | | this.loading = true; |
| | | return delBatch(ids); |
| | | }).then(() => { |
| | | this.loading = false; |
| | | this.getList(); |
| | | this.$modal.msgSuccess("删除成功"); |
| | | }).finally(() => { |
| | | this.loading = false; |
| | | }); |
| | | }, |
| | | /** 导出按钮操作 */ |
| | | handleExport() { |
| | | this.download('oa/batch/export', { |
| | | ...this.queryParams |
| | | }, `batch_${new Date().getTime()}.xlsx`) |
| | | } |
| | | } |
| | | }; |
| | | </script> |
New file |
| | |
| | | <template> |
| | | <div class="app-container"> |
| | | <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="90px"> |
| | | <el-form-item label="设备类型" prop="type"> |
| | | <el-select v-model="queryParams.type" placeholder="请选择设备类型" clearable size="small"> |
| | | <el-option |
| | | v-for="dict in dict.type.DICT101" |
| | | :key="dict.value" |
| | | :label="dict.label" |
| | | :value="dict.value" |
| | | /> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="硬件序列码" prop="sequenceCode"> |
| | | <el-input |
| | | v-model="queryParams.sequenceCode" |
| | | placeholder="请输入序列码" |
| | | clearable |
| | | size="small" |
| | | @keyup.enter.native="handleQuery" |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item label="版本" prop="edition"> |
| | | <el-input |
| | | v-model="queryParams.edition" |
| | | placeholder="请输入版本" |
| | | clearable |
| | | size="small" |
| | | @keyup.enter.native="handleQuery" |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item label="高校" prop="schoolId"> |
| | | <el-select v-model="queryParams.schoolId" placeholder="请选择高校" clearable size="small"> |
| | | <el-option |
| | | v-for="item in querySchoolList" |
| | | :key="item.id" |
| | | :label="item.name" |
| | | :value="item.id" |
| | | /> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="主机ID" prop="hostId"> |
| | | <el-input |
| | | v-model="queryParams.hostId" |
| | | placeholder="请输入主机ID" |
| | | clearable |
| | | size="small" |
| | | @keyup.enter.native="handleQuery" |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item label="β网络ID" prop="networkId"> |
| | | <el-input |
| | | v-model="queryParams.networkId" |
| | | placeholder="请输入β网络ID" |
| | | clearable |
| | | size="small" |
| | | @keyup.enter.native="handleQuery" |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item label="β工作频段" prop="frequencyBand"> |
| | | <el-select v-model="queryParams.frequencyBand" placeholder="请选择β工作频段" clearable size="small"> |
| | | <el-option |
| | | v-for="dict in dict.type.DICT102" |
| | | :key="dict.value" |
| | | :label="dict.label" |
| | | :value="dict.value" |
| | | /> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="在用状态" prop="useStatus"> |
| | | <el-select v-model="queryParams.useStatus" placeholder="请选择在用状态" clearable size="small"> |
| | | <el-option |
| | | v-for="dict in dict.type.DICT104" |
| | | :key="dict.value" |
| | | :label="dict.label" |
| | | :value="dict.value" |
| | | /> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item> |
| | | <el-button 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-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" |
| | | v-hasPermi="['oa:equipment:add']" |
| | | >新增 |
| | | </el-button> |
| | | </el-col> |
| | | <el-col :span="1.5"> |
| | | <el-button |
| | | type="success" |
| | | plain |
| | | icon="el-icon-edit" |
| | | size="mini" |
| | | :disabled="single" |
| | | @click="handleUpdate" |
| | | v-hasPermi="['oa:equipment:edit']" |
| | | >修改 |
| | | </el-button> |
| | | </el-col> |
| | | <el-col :span="1.5"> |
| | | <el-button |
| | | type="danger" |
| | | plain |
| | | icon="el-icon-delete" |
| | | size="mini" |
| | | :disabled="multiple" |
| | | @click="handleDelete" |
| | | v-hasPermi="['oa:equipment:remove']" |
| | | >删除 |
| | | </el-button> |
| | | </el-col> |
| | | <!-- <el-col :span="1.5">--> |
| | | <!-- <el-button--> |
| | | <!-- type="warning"--> |
| | | <!-- plain--> |
| | | <!-- icon="el-icon-download"--> |
| | | <!-- size="mini"--> |
| | | <!-- @click="handleExport"--> |
| | | <!-- v-hasPermi="['oa:equipment:export']"--> |
| | | <!-- >导出</el-button>--> |
| | | <!-- </el-col>--> |
| | | <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> |
| | | </el-row> |
| | | |
| | | <el-table v-loading="loading" :data="equipmentList" @selection-change="handleSelectionChange"> |
| | | <el-table-column type="selection" width="55" align="center"/> |
| | | <el-table-column label="序号" align="center" width="50"> |
| | | <template slot-scope="scope"> |
| | | <span>{{ scope.$index + (queryParams.pageNum - 1) * queryParams.pageSize + 1 }} </span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="设备类型" align="center" prop="type"> |
| | | <template slot-scope="scope"> |
| | | <dict-tag :options="dict.type.DICT101" :value="scope.row.type"/> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="硬件序列码" align="center" prop="sequenceCode"/> |
| | | <el-table-column label="软件版本" align="center" prop="edition"/> |
| | | <el-table-column label="学校名称" align="center" prop="schoolId_dictText"/> |
| | | <el-table-column label="主机ID" align="center" prop="hostId"/> |
| | | <el-table-column label="β网络ID" align="center" prop="networkId"/> |
| | | <el-table-column label="β工作频段" align="center" prop="frequencyBand"> |
| | | <template slot-scope="scope"> |
| | | <dict-tag :options="dict.type.DICT102" :value="scope.row.frequencyBand"/> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="生产批次" align="center" prop="batchId_dictText"/> |
| | | <el-table-column label="在用" align="center" prop="useStatus"> |
| | | <template slot-scope="scope"> |
| | | <dict-tag :options="dict.type.DICT104" :value="scope.row.useStatus"/> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="操作" align="center" class-name="small-padding fixed-width"> |
| | | <template slot-scope="scope"> |
| | | <el-button |
| | | size="mini" |
| | | type="text" |
| | | icon="el-icon-edit" |
| | | @click="handleUpdate(scope.row)" |
| | | v-hasPermi="['oa:equipment:edit']" |
| | | >修改 |
| | | </el-button> |
| | | <el-button |
| | | size="mini" |
| | | type="text" |
| | | icon="el-icon-delete" |
| | | @click="handleDelete(scope.row)" |
| | | v-hasPermi="['oa:equipment:remove']" |
| | | >删除 |
| | | </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" |
| | | /> |
| | | |
| | | <!-- 添加或修改智控设备对话框 --> |
| | | <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body> |
| | | <el-form ref="form" :model="form" :rules="rules" label-width="90px"> |
| | | <el-form-item label="序列号" prop="serialNumber"> |
| | | <el-input v-model="form.serialNumber" :disabled="disabled" placeholder="请输入序列号"/> |
| | | </el-form-item> |
| | | <el-form-item label="设备类型" prop="type"> |
| | | <el-select v-model="form.type" placeholder="请选择设备类型" :disabled="disabled"> |
| | | <el-option |
| | | v-for="dict in dict.type.DICT101" |
| | | :key="dict.value" |
| | | :label="dict.label" |
| | | :value="parseInt(dict.value)" |
| | | ></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="序列码" prop="sequenceCode"> |
| | | <el-input v-model="form.sequenceCode" :disabled="disabled" placeholder="请输入序列码"/> |
| | | </el-form-item> |
| | | <el-form-item label="版本" prop="edition"> |
| | | <el-input v-model="form.edition" :disabled="disabled" placeholder="请输入版本"/> |
| | | </el-form-item> |
| | | <el-form-item label="高校" prop="schoolId"> |
| | | <el-select v-model="form.schoolId" :disabled="disabled" placeholder="请选择高校" clearable size="small"> |
| | | <el-option |
| | | v-for="item in formSchoolList" |
| | | :key="item.id" |
| | | :label="item.name" |
| | | :value="item.id" |
| | | /> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="主机ID" prop="hostId"> |
| | | <el-input v-model="form.hostId" :disabled="disabled" placeholder="请输入主机ID"/> |
| | | </el-form-item> |
| | | <el-form-item label="β网络ID" prop="networkId"> |
| | | <el-input v-model="form.networkId" :disabled="disabled" placeholder="请输入β网络ID"/> |
| | | </el-form-item> |
| | | <el-form-item label="β工作频段" prop="frequencyBand"> |
| | | <el-select v-model="form.frequencyBand" :disabled="disabled" placeholder="请选择β工作频段" clearable size="small"> |
| | | <el-option |
| | | v-for="dict in dict.type.DICT102" |
| | | :key="dict.value" |
| | | :label="dict.label" |
| | | :value="dict.value" |
| | | /> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="生产批次" prop="batchId"> |
| | | <el-select v-model="form.batchId" placeholder="请选生产批次" clearable size="small"> |
| | | <el-option |
| | | v-for="item in formBatchList" |
| | | :key="item.id" |
| | | :label="item.batch" |
| | | :value="item.id" |
| | | /> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="在用状态" prop="useStatus"> |
| | | <el-select v-model="form.useStatus" placeholder="请选择在用状态" clearable size="small"> |
| | | <el-option |
| | | v-for="dict in dict.type.DICT104" |
| | | :key="dict.value" |
| | | :label="dict.label" |
| | | :value="dict.value" |
| | | /> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="备注" prop="remarks"> |
| | | <el-input v-model="form.remarks" type="textarea" placeholder="请输入备注"/> |
| | | </el-form-item> |
| | | </el-form> |
| | | <div slot="footer" class="dialog-footer"> |
| | | <el-button :loading="buttonLoading" type="primary" @click="submitForm">确 定</el-button> |
| | | <el-button @click="cancel">取 消</el-button> |
| | | </div> |
| | | </el-dialog> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import {listEquipment, getEquipment, delEquipment, addEquipment, updateEquipment} from "@/api/oa/equipment"; |
| | | import {listSchool, listBatch} from "@/api/common/common"; |
| | | |
| | | export default { |
| | | name: "Equipment", |
| | | dicts: ['DICT101', 'DICT102', 'DICT104'], |
| | | data() { |
| | | return { |
| | | // 按钮loading |
| | | buttonLoading: false, |
| | | // 遮罩层 |
| | | loading: true, |
| | | // 选中数组 |
| | | ids: [], |
| | | // 非单个禁用 |
| | | single: true, |
| | | // 非多个禁用 |
| | | multiple: true, |
| | | // 显示搜索条件 |
| | | showSearch: true, |
| | | // 总条数 |
| | | total: 0, |
| | | // 智控设备表格数据 |
| | | equipmentList: [], |
| | | // 弹出层标题 |
| | | title: "", |
| | | // 是否显示弹出层 |
| | | open: false, |
| | | // 查询参数 |
| | | queryParams: { |
| | | pageNum: 1, |
| | | pageSize: 10, |
| | | serialNumber: undefined, |
| | | type: undefined, |
| | | sequenceCode: undefined, |
| | | edition: undefined, |
| | | schoolId: undefined, |
| | | hostId: undefined, |
| | | networkId: undefined, |
| | | frequencyBand: undefined, |
| | | useStatus: undefined, |
| | | }, |
| | | // 表单参数 |
| | | form: {}, |
| | | // 表单校验 |
| | | rules: { |
| | | id: [ |
| | | {required: true, message: "id不能为空", trigger: "blur"} |
| | | ], |
| | | serialNumber: [ |
| | | {required: true, message: "序列号不能为空", trigger: "blur"} |
| | | ], |
| | | type: [ |
| | | {required: true, message: "设备类型不能为空", trigger: "change"} |
| | | ], |
| | | sequenceCode: [ |
| | | {required: true, message: "序列码不能为空", trigger: "blur"} |
| | | ], |
| | | edition: [ |
| | | {required: true, message: "版本不能为空", trigger: "blur"} |
| | | ], |
| | | schoolId: [ |
| | | {required: true, message: "学校id不能为空", trigger: "blur"} |
| | | ], |
| | | hostId: [ |
| | | {required: true, message: "主机ID不能为空", trigger: "blur"} |
| | | ], |
| | | networkId: [ |
| | | {required: true, message: "β网络ID不能为空", trigger: "blur"} |
| | | ], |
| | | frequencyBand: [ |
| | | {required: true, message: "β工作频段不能为空", trigger: "blur"} |
| | | ], |
| | | batchId: [ |
| | | {required: true, message: "生产批次不能为空", trigger: "blur"} |
| | | ], |
| | | useStatus: [ |
| | | {required: true, message: "在用状态不能为空", trigger: "blur"} |
| | | ], |
| | | }, |
| | | querySchoolList: [], |
| | | queryBatchList: [], |
| | | formSchoolList: [], |
| | | formBatchList: [], |
| | | disabled: false |
| | | }; |
| | | }, |
| | | created() { |
| | | this.getList(); |
| | | this.getSchool() |
| | | this.getBatch() |
| | | }, |
| | | methods: { |
| | | /** 查询智控设备列表 */ |
| | | getList() { |
| | | this.loading = true; |
| | | listEquipment(this.queryParams).then(response => { |
| | | this.equipmentList = response.rows; |
| | | this.total = response.total; |
| | | this.loading = false; |
| | | }); |
| | | }, |
| | | // 学校 |
| | | getSchool() { |
| | | listSchool().then(res => { |
| | | this.querySchoolList = res.data |
| | | }) |
| | | }, |
| | | // 批次 |
| | | getBatch() { |
| | | listBatch().then(res => { |
| | | this.queryBatchList = res.data |
| | | }) |
| | | }, |
| | | // 取消按钮 |
| | | cancel() { |
| | | this.open = false; |
| | | this.reset(); |
| | | }, |
| | | // 表单重置 |
| | | reset() { |
| | | this.form = { |
| | | id: undefined, |
| | | serialNumber: undefined, |
| | | type: undefined, |
| | | sequenceCode: undefined, |
| | | edition: undefined, |
| | | schoolId: undefined, |
| | | hostId: undefined, |
| | | networkId: undefined, |
| | | frequencyBand: undefined, |
| | | batchId: undefined, |
| | | useStatus: undefined, |
| | | remarks: undefined, |
| | | createBy: undefined, |
| | | createTime: undefined, |
| | | updateBy: undefined, |
| | | updateTime: undefined, |
| | | delFlag: undefined, |
| | | version: undefined |
| | | }; |
| | | this.resetForm("form"); |
| | | }, |
| | | /** 搜索按钮操作 */ |
| | | handleQuery() { |
| | | this.queryParams.pageNum = 1; |
| | | this.getList(); |
| | | }, |
| | | /** 重置按钮操作 */ |
| | | resetQuery() { |
| | | this.resetForm("queryForm"); |
| | | this.handleQuery(); |
| | | }, |
| | | // 多选框选中数据 |
| | | handleSelectionChange(selection) { |
| | | this.ids = selection.map(item => item.id) |
| | | this.single = selection.length !== 1 |
| | | this.multiple = !selection.length |
| | | }, |
| | | // 学校 |
| | | getFormSchool() { |
| | | listSchool().then(res => { |
| | | this.formSchoolList = res.data |
| | | }) |
| | | }, |
| | | // 批次 |
| | | getFormBatch() { |
| | | listBatch().then(res => { |
| | | this.formBatchList = res.data |
| | | }) |
| | | }, |
| | | /** 新增按钮操作 */ |
| | | handleAdd() { |
| | | this.getFormSchool() |
| | | this.getFormBatch() |
| | | this.reset(); |
| | | this.open = true; |
| | | this.disabled = false; |
| | | this.title = "添加智控设备"; |
| | | }, |
| | | /** 修改按钮操作 */ |
| | | handleUpdate(row) { |
| | | this.loading = true; |
| | | this.getFormSchool() |
| | | this.getFormBatch() |
| | | this.reset(); |
| | | this.disabled = true; |
| | | const id = row.id || this.ids |
| | | getEquipment(id).then(response => { |
| | | this.loading = false; |
| | | this.form = response.data; |
| | | this.open = true; |
| | | this.title = "修改智控设备"; |
| | | }); |
| | | }, |
| | | /** 提交按钮 */ |
| | | submitForm() { |
| | | this.$refs["form"].validate(valid => { |
| | | if (valid) { |
| | | this.buttonLoading = true; |
| | | if (this.form.id != null) { |
| | | updateEquipment(this.form).then(response => { |
| | | this.$modal.msgSuccess("修改成功"); |
| | | this.open = false; |
| | | this.getList(); |
| | | }).finally(() => { |
| | | this.buttonLoading = false; |
| | | }); |
| | | } else { |
| | | addEquipment(this.form).then(response => { |
| | | this.$modal.msgSuccess("新增成功"); |
| | | this.open = false; |
| | | this.getList(); |
| | | }).finally(() => { |
| | | this.buttonLoading = false; |
| | | }); |
| | | } |
| | | } |
| | | }); |
| | | }, |
| | | /** 删除按钮操作 */ |
| | | handleDelete(row) { |
| | | const ids = row.id || this.ids; |
| | | this.$modal.confirm('是否确认删除智控设备编号为"' + ids + '"的数据项?').then(() => { |
| | | this.loading = true; |
| | | return delEquipment(ids); |
| | | }).then(() => { |
| | | this.loading = false; |
| | | this.getList(); |
| | | this.$modal.msgSuccess("删除成功"); |
| | | }).finally(() => { |
| | | this.loading = false; |
| | | }); |
| | | }, |
| | | /** 导出按钮操作 */ |
| | | handleExport() { |
| | | this.download('oa/equipment/export', { |
| | | ...this.queryParams |
| | | }, `equipment_${new Date().getTime()}.xlsx`) |
| | | } |
| | | } |
| | | }; |
| | | </script> |
New file |
| | |
| | | <template> |
| | | <div class="app-container"> |
| | | <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px"> |
| | | <el-form-item label="外设代码" prop="code"> |
| | | <el-input |
| | | v-model="queryParams.code" |
| | | placeholder="请输入外设代码" |
| | | clearable |
| | | size="small" |
| | | @keyup.enter.native="handleQuery" |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item label="外设名称" prop="name"> |
| | | <el-input |
| | | v-model="queryParams.name" |
| | | placeholder="请输入外设名称" |
| | | clearable |
| | | size="small" |
| | | @keyup.enter.native="handleQuery" |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item label="规格型号" prop="model"> |
| | | <el-input |
| | | v-model="queryParams.model" |
| | | placeholder="请输入规格型号" |
| | | clearable |
| | | size="small" |
| | | @keyup.enter.native="handleQuery" |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item label="生产厂商" prop="manufacturer"> |
| | | <el-input |
| | | v-model="queryParams.manufacturer" |
| | | placeholder="请输入生产厂商" |
| | | clearable |
| | | size="small" |
| | | @keyup.enter.native="handleQuery" |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item label="厂商代码" prop="vendorCode"> |
| | | <el-input |
| | | v-model="queryParams.vendorCode" |
| | | placeholder="请输入厂商代码" |
| | | clearable |
| | | size="small" |
| | | @keyup.enter.native="handleQuery" |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item label="波特率" prop="baudRate"> |
| | | <el-select v-model="queryParams.baudRate" placeholder="请选择波特率" clearable size="small"> |
| | | <el-option |
| | | v-for="dict in dict.type.DICT103" |
| | | :key="dict.value" |
| | | :label="dict.label" |
| | | :value="dict.value" |
| | | /> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item> |
| | | <el-button 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-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" |
| | | v-hasPermi="['oa:peripheralUnit:add']" |
| | | >新增 |
| | | </el-button> |
| | | </el-col> |
| | | <el-col :span="1.5"> |
| | | <el-button |
| | | type="success" |
| | | plain |
| | | icon="el-icon-edit" |
| | | size="mini" |
| | | :disabled="single" |
| | | @click="handleUpdate" |
| | | v-hasPermi="['oa:peripheralUnit:edit']" |
| | | >修改 |
| | | </el-button> |
| | | </el-col> |
| | | <el-col :span="1.5"> |
| | | <el-button |
| | | type="danger" |
| | | plain |
| | | icon="el-icon-delete" |
| | | size="mini" |
| | | :disabled="multiple" |
| | | @click="handleDelete" |
| | | v-hasPermi="['oa:peripheralUnit:remove']" |
| | | >删除 |
| | | </el-button> |
| | | </el-col> |
| | | <!-- <el-col :span="1.5">--> |
| | | <!-- <el-button--> |
| | | <!-- type="warning"--> |
| | | <!-- plain--> |
| | | <!-- icon="el-icon-download"--> |
| | | <!-- size="mini"--> |
| | | <!-- @click="handleExport"--> |
| | | <!-- v-hasPermi="['oa:peripheralUnit:export']"--> |
| | | <!-- >导出</el-button>--> |
| | | <!-- </el-col>--> |
| | | <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> |
| | | </el-row> |
| | | |
| | | <el-table v-loading="loading" :data="peripheralUnitList" @selection-change="handleSelectionChange"> |
| | | <el-table-column type="selection" width="55" align="center"/> |
| | | <el-table-column label="序号" align="center" width="50"> |
| | | <template slot-scope="scope"> |
| | | <span>{{ scope.$index + (queryParams.pageNum - 1) * queryParams.pageSize + 1 }} </span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="外设代码" align="center" prop="code"/> |
| | | <el-table-column label="外设名称" align="center" prop="name"/> |
| | | <el-table-column label="规格型号" align="center" prop="model"/> |
| | | <el-table-column label="生产厂商" align="center" prop="manufacturer"/> |
| | | <el-table-column label="厂商代码" align="center" prop="vendorCode"/> |
| | | <el-table-column label="波特率" align="center" prop="baudRate"> |
| | | <template slot-scope="scope"> |
| | | <dict-tag :options="dict.type.DICT103" :value="scope.row.baudRate"/> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="读数指令" align="center" prop="readInstruction"/> |
| | | <el-table-column label="回数长度" align="center" prop="loopLength"/> |
| | | <el-table-column label="功能描述" align="center" prop="description"/> |
| | | <el-table-column label="操作" align="center" class-name="small-padding fixed-width"> |
| | | <template slot-scope="scope"> |
| | | <el-button |
| | | size="mini" |
| | | type="text" |
| | | icon="el-icon-edit" |
| | | @click="handleInfo(scope.row)" |
| | | v-hasPermi="['oa:peripheralUnit:info']" |
| | | >查看 |
| | | </el-button> |
| | | <el-button |
| | | size="mini" |
| | | type="text" |
| | | icon="el-icon-edit" |
| | | @click="handleUpdate(scope.row)" |
| | | v-hasPermi="['oa:peripheralUnit:edit']" |
| | | >修改 |
| | | </el-button> |
| | | <el-button |
| | | size="mini" |
| | | type="text" |
| | | icon="el-icon-delete" |
| | | @click="handleDelete(scope.row)" |
| | | v-hasPermi="['oa:peripheralUnit:remove']" |
| | | >删除 |
| | | </el-button> |
| | | <el-button |
| | | size="mini" |
| | | type="text" |
| | | icon="el-icon-delete" |
| | | @click="handleUpload(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" |
| | | /> |
| | | |
| | | <!-- 添加或修改外设单元对话框 --> |
| | | <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body> |
| | | <el-form ref="form" :model="form" :rules="rules" label-width="80px"> |
| | | <el-form-item label="外设代码" prop="code"> |
| | | <el-input v-model="form.code" placeholder="请输入外设代码" :disabled="disabled"/> |
| | | </el-form-item> |
| | | <el-form-item label="外设名称" prop="name"> |
| | | <el-input v-model="form.name" placeholder="请输入外设名称" :disabled="disabled"/> |
| | | </el-form-item> |
| | | <el-form-item label="规格型号" prop="model"> |
| | | <el-input v-model="form.model" placeholder="请输入规格型号" :disabled="disabled"/> |
| | | </el-form-item> |
| | | <el-form-item label="生产厂商" prop="manufacturer"> |
| | | <el-input v-model="form.manufacturer" placeholder="请输入生产厂商" :disabled="disabled"/> |
| | | </el-form-item> |
| | | <el-form-item label="厂商代码" prop="vendorCode"> |
| | | <el-input v-model="form.vendorCode" placeholder="请输入厂商代码" :disabled="disabled"/> |
| | | </el-form-item> |
| | | <el-form-item label="波特率" prop="baudRate"> |
| | | <el-select v-model="form.baudRate" placeholder="请选择波特率" :disabled="disabled"> |
| | | <el-option |
| | | v-for="dict in dict.type.DICT103" |
| | | :key="dict.value" |
| | | :label="dict.label" |
| | | :value="dict.value" |
| | | ></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="读数指令" prop="readInstruction"> |
| | | <el-input v-model="form.readInstruction" placeholder="请输入读数指令" :disabled="disabled"/> |
| | | </el-form-item> |
| | | <el-form-item label="回数长度" prop="loopLength"> |
| | | <el-input v-model="form.loopLength" placeholder="请输入回数长度" :disabled="disabled"/> |
| | | </el-form-item> |
| | | <el-form-item label="功能描述" prop="description"> |
| | | <el-input v-model="form.description" type="textarea" placeholder="请输入内容" :disabled="disabled"/> |
| | | </el-form-item> |
| | | <el-form-item label="附件"> |
| | | <fileUpload v-model="form.filePath" :disabled="disabled"/> |
| | | </el-form-item> |
| | | </el-form> |
| | | <div slot="footer" class="dialog-footer"> |
| | | <el-button :loading="buttonLoading" type="primary" @click="submitForm">确 定</el-button> |
| | | <el-button @click="cancel">取 消</el-button> |
| | | </div> |
| | | </el-dialog> |
| | | |
| | | <!-- 附件窗体 --> |
| | | <el-dialog :title="title" :visible.sync="uploadFlag" width="500px" append-to-body> |
| | | <el-form ref="form" :model="form" :rules="rules" label-width="80px"> |
| | | <el-form-item label="附件"> |
| | | <fileUpload v-model="form.filePath" limit="1"/> |
| | | </el-form-item> |
| | | </el-form> |
| | | <div slot="footer" class="dialog-footer"> |
| | | <el-button :loading="buttonLoading" type="primary" @click="submitForm">确 定</el-button> |
| | | <el-button @click="cancel">取 消</el-button> |
| | | </div> |
| | | </el-dialog> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import { |
| | | listPeripheralUnit, |
| | | getPeripheralUnit, |
| | | delPeripheralUnit, |
| | | addPeripheralUnit, |
| | | updatePeripheralUnit |
| | | } from "@/api/oa/peripheralUnit"; |
| | | |
| | | export default { |
| | | name: "PeripheralUnit", |
| | | dicts: ['DICT103'], |
| | | data() { |
| | | return { |
| | | // 按钮loading |
| | | buttonLoading: false, |
| | | // 遮罩层 |
| | | loading: true, |
| | | // 选中数组 |
| | | ids: [], |
| | | // 非单个禁用 |
| | | single: true, |
| | | // 非多个禁用 |
| | | multiple: true, |
| | | // 显示搜索条件 |
| | | showSearch: true, |
| | | // 总条数 |
| | | total: 0, |
| | | // 外设单元表格数据 |
| | | peripheralUnitList: [], |
| | | // 弹出层标题 |
| | | title: "", |
| | | // 是否显示弹出层 |
| | | open: false, |
| | | uploadFlag: false, |
| | | // 查询参数 |
| | | queryParams: { |
| | | pageNum: 1, |
| | | pageSize: 10, |
| | | code: undefined, |
| | | name: undefined, |
| | | model: undefined, |
| | | manufacturer: undefined, |
| | | vendorCode: undefined, |
| | | baudRate: undefined, |
| | | }, |
| | | // 表单参数 |
| | | form: {}, |
| | | // 表单校验 |
| | | rules: { |
| | | id: [ |
| | | {required: true, message: "id不能为空", trigger: "blur"} |
| | | ], |
| | | code: [ |
| | | {required: true, message: "外设代码不能为空", trigger: "blur"} |
| | | ], |
| | | name: [ |
| | | {required: true, message: "外设名称不能为空", trigger: "blur"} |
| | | ], |
| | | model: [ |
| | | {required: true, message: "规格型号不能为空", trigger: "blur"} |
| | | ], |
| | | manufacturer: [ |
| | | {required: true, message: "生产厂商不能为空", trigger: "blur"} |
| | | ], |
| | | vendorCode: [ |
| | | {required: true, message: "厂商代码不能为空", trigger: "blur"} |
| | | ], |
| | | baudRate: [ |
| | | {required: true, message: "波特率不能为空", trigger: "change"} |
| | | ], |
| | | readInstruction: [ |
| | | {required: true, message: "读数指令不能为空", trigger: "blur"} |
| | | ], |
| | | loopLength: [ |
| | | {required: true, message: "回数长度不能为空", trigger: "blur"} |
| | | ], |
| | | filePath: [ |
| | | {required: true, message: "附件不能为空", trigger: "blur"} |
| | | ], |
| | | }, |
| | | disabled: false |
| | | }; |
| | | }, |
| | | created() { |
| | | this.getList(); |
| | | }, |
| | | methods: { |
| | | /** 查询外设单元列表 */ |
| | | getList() { |
| | | this.loading = true; |
| | | listPeripheralUnit(this.queryParams).then(response => { |
| | | this.peripheralUnitList = response.rows; |
| | | this.total = response.total; |
| | | this.loading = false; |
| | | }); |
| | | }, |
| | | // 取消按钮 |
| | | cancel() { |
| | | this.open = false; |
| | | this.uploadFlag = false; |
| | | this.reset(); |
| | | }, |
| | | // 表单重置 |
| | | reset() { |
| | | this.form = { |
| | | id: undefined, |
| | | code: undefined, |
| | | name: undefined, |
| | | model: undefined, |
| | | manufacturer: undefined, |
| | | vendorCode: undefined, |
| | | baudRate: undefined, |
| | | readInstruction: undefined, |
| | | loopLength: undefined, |
| | | description: undefined, |
| | | filePath: undefined, |
| | | createBy: undefined, |
| | | createTime: undefined, |
| | | updateBy: undefined, |
| | | updateTime: undefined, |
| | | delFlag: undefined, |
| | | version: undefined |
| | | }; |
| | | this.resetForm("form"); |
| | | }, |
| | | /** 搜索按钮操作 */ |
| | | handleQuery() { |
| | | this.queryParams.pageNum = 1; |
| | | this.getList(); |
| | | }, |
| | | /** 重置按钮操作 */ |
| | | resetQuery() { |
| | | this.resetForm("queryForm"); |
| | | this.handleQuery(); |
| | | }, |
| | | // 多选框选中数据 |
| | | handleSelectionChange(selection) { |
| | | this.ids = selection.map(item => item.id) |
| | | this.single = selection.length !== 1 |
| | | this.multiple = !selection.length |
| | | }, |
| | | /** 新增按钮操作 */ |
| | | handleAdd() { |
| | | this.reset(); |
| | | this.form.baudRate = '3' |
| | | this.open = true; |
| | | this.title = "添加外设单元"; |
| | | }, |
| | | handleInfo(row) { |
| | | this.loading = true; |
| | | this.reset(); |
| | | this.disabled = true |
| | | const id = row.id || this.ids |
| | | getPeripheralUnit(id).then(response => { |
| | | this.loading = false; |
| | | this.form = response.data; |
| | | this.open = true; |
| | | this.title = "修改外设单元"; |
| | | }); |
| | | }, |
| | | /** 修改按钮操作 */ |
| | | handleUpdate(row) { |
| | | this.loading = true; |
| | | this.reset(); |
| | | const id = row.id || this.ids |
| | | getPeripheralUnit(id).then(response => { |
| | | this.loading = false; |
| | | this.form = response.data; |
| | | this.open = true; |
| | | this.title = "修改外设单元"; |
| | | }); |
| | | }, |
| | | /** 提交按钮 */ |
| | | submitForm() { |
| | | this.$refs["form"].validate(valid => { |
| | | if (valid) { |
| | | this.buttonLoading = true; |
| | | if (this.form.id != null) { |
| | | updatePeripheralUnit(this.form).then(response => { |
| | | this.$modal.msgSuccess("修改成功"); |
| | | this.open = false; |
| | | this.uploadFlag = false; |
| | | this.getList(); |
| | | }).finally(() => { |
| | | this.buttonLoading = false; |
| | | }); |
| | | } else { |
| | | addPeripheralUnit(this.form).then(response => { |
| | | this.$modal.msgSuccess("新增成功"); |
| | | this.open = false; |
| | | this.getList(); |
| | | }).finally(() => { |
| | | this.buttonLoading = false; |
| | | }); |
| | | } |
| | | } |
| | | }); |
| | | }, |
| | | /** 删除按钮操作 */ |
| | | handleDelete(row) { |
| | | const ids = row.id || this.ids; |
| | | this.$modal.confirm('是否确认删除外设单元编号为"' + ids + '"的数据项?').then(() => { |
| | | this.loading = true; |
| | | return delPeripheralUnit(ids); |
| | | }).then(() => { |
| | | this.loading = false; |
| | | this.getList(); |
| | | this.$modal.msgSuccess("删除成功"); |
| | | }).finally(() => { |
| | | this.loading = false; |
| | | }); |
| | | }, |
| | | handleUpload(row) { |
| | | this.loading = true; |
| | | this.reset(); |
| | | const id = row.id || this.ids |
| | | getPeripheralUnit(id).then(response => { |
| | | this.loading = false; |
| | | this.form = response.data; |
| | | this.uploadFlag = true; |
| | | this.title = "上传附件"; |
| | | }); |
| | | }, |
| | | /** 导出按钮操作 */ |
| | | handleExport() { |
| | | this.download('oa/peripheralUnit/export', { |
| | | ...this.queryParams |
| | | }, `peripheralUnit_${new Date().getTime()}.xlsx`) |
| | | } |
| | | } |
| | | }; |
| | | </script> |
| | |
| | | <template> |
| | | <div class="app-container"> |
| | | <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch"> |
| | | <el-form-item label="部门名称" prop="deptName"> |
| | | <el-form-item label="机构名称" prop="deptName"> |
| | | <el-input |
| | | v-model="queryParams.deptName" |
| | | placeholder="请输入部门名称" |
| | | placeholder="请输入机构名称" |
| | | clearable |
| | | size="small" |
| | | @keyup.enter.native="handleQuery" |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item label="状态" prop="status"> |
| | | <el-select v-model="queryParams.status" placeholder="部门状态" clearable size="small"> |
| | | <el-form-item label="机构状态" prop="status"> |
| | | <el-select v-model="queryParams.status" placeholder="机构状态" clearable size="small"> |
| | | <el-option |
| | | v-for="dict in dict.type.sys_normal_disable" |
| | | :key="dict.value" |
| | |
| | | size="mini" |
| | | @click="handleAdd" |
| | | v-hasPermi="['system:dept:add']" |
| | | >新增</el-button> |
| | | >新增 |
| | | </el-button> |
| | | </el-col> |
| | | <el-col :span="1.5"> |
| | | <el-button |
| | |
| | | icon="el-icon-sort" |
| | | size="mini" |
| | | @click="toggleExpandAll" |
| | | >展开/折叠</el-button> |
| | | >展开/折叠 |
| | | </el-button> |
| | | </el-col> |
| | | <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> |
| | | </el-row> |
| | |
| | | :default-expand-all="isExpandAll" |
| | | :tree-props="{children: 'children', hasChildren: 'hasChildren'}" |
| | | > |
| | | <el-table-column prop="deptName" label="部门名称" width="260"></el-table-column> |
| | | <el-table-column prop="orderNum" label="排序" width="200"></el-table-column> |
| | | <el-table-column prop="deptName" label="机构名称" width="260"></el-table-column> |
| | | <el-table-column prop="code" label="机构编号" width="200"></el-table-column> |
| | | <!-- <el-table-column prop="orderNum" label="排序" width="200"></el-table-column>--> |
| | | <el-table-column prop="status" label="状态" width="100"> |
| | | <template slot-scope="scope"> |
| | | <dict-tag :options="dict.type.sys_normal_disable" :value="scope.row.status"/> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="leaderName" label="主负责人" width="200"></el-table-column> |
| | | <el-table-column prop="leaderAssistantName" label="副负责人" width="200"></el-table-column> |
| | | <el-table-column prop="remarks" label="机构职能" width="200"></el-table-column> |
| | | <el-table-column label="创建时间" align="center" prop="createTime" width="200"> |
| | | <template slot-scope="scope"> |
| | | <span>{{ parseTime(scope.row.createTime) }}</span> |
| | |
| | | size="mini" |
| | | type="text" |
| | | icon="el-icon-edit" |
| | | @click="handleUser(scope.row)" |
| | | >成员 |
| | | </el-button> |
| | | <el-button |
| | | size="mini" |
| | | type="text" |
| | | icon="el-icon-edit" |
| | | @click="handleUpdate(scope.row)" |
| | | v-hasPermi="['system:dept:edit']" |
| | | >修改</el-button> |
| | | >修改 |
| | | </el-button> |
| | | <el-button |
| | | size="mini" |
| | | type="text" |
| | | icon="el-icon-plus" |
| | | @click="handleAdd(scope.row)" |
| | | v-hasPermi="['system:dept:add']" |
| | | >新增</el-button> |
| | | >新增 |
| | | </el-button> |
| | | <el-button |
| | | v-if="scope.row.parentId != 0" |
| | | size="mini" |
| | |
| | | icon="el-icon-delete" |
| | | @click="handleDelete(scope.row)" |
| | | v-hasPermi="['system:dept:remove']" |
| | | >删除</el-button> |
| | | >删除 |
| | | </el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | |
| | | <el-form ref="form" :model="form" :rules="rules" label-width="80px"> |
| | | <el-row> |
| | | <el-col :span="24" v-if="form.parentId !== 0"> |
| | | <el-form-item label="上级部门" prop="parentId"> |
| | | <el-form-item label="上级机构" prop="parentId"> |
| | | <treeselect v-model="form.parentId" :options="deptOptions" :normalizer="normalizer" placeholder="选择上级部门" /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="部门名称" prop="deptName"> |
| | | <el-input v-model="form.deptName" placeholder="请输入部门名称" /> |
| | | <el-form-item label="机构名称" prop="deptName"> |
| | | <el-input v-model="form.deptName" placeholder="请输入机构名称"/> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="机构编号" prop="code"> |
| | | <el-input v-model="form.code" placeholder="请输入机构名称"/> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="负责人" prop="leader"> |
| | | <el-input v-model="form.leader" placeholder="请输入负责人" maxlength="20" /> |
| | | <el-form-item label="主负责人" prop="leader"> |
| | | <el-select v-model="form.leader" placeholder="请选择主负责人" clearable size="small"> |
| | | <el-option |
| | | v-for="dict in userList" |
| | | :key="dict.userId" |
| | | :label="dict.nickName" |
| | | :value="dict.userId" |
| | | /> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="联系电话" prop="phone"> |
| | | <el-input v-model="form.phone" placeholder="请输入联系电话" maxlength="11" /> |
| | | <el-form-item label="副负责人" prop="leaderAssistant"> |
| | | <el-select v-model="form.leaderAssistant" placeholder="请选择副负责人" clearable size="small"> |
| | | <el-option |
| | | v-for="dict in userList" |
| | | :key="dict.userId" |
| | | :label="dict.nickName" |
| | | :value="dict.userId" |
| | | /> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-col> |
| | | <!-- <el-col :span="12">--> |
| | | <!-- <el-form-item label="联系电话" prop="phone">--> |
| | | <!-- <el-input v-model="form.phone" placeholder="请输入联系电话" maxlength="11" />--> |
| | | <!-- </el-form-item>--> |
| | | <!-- </el-col>--> |
| | | <!-- <el-col :span="12">--> |
| | | <!-- <el-form-item label="邮箱" prop="email">--> |
| | | <!-- <el-input v-model="form.email" placeholder="请输入邮箱" maxlength="50" />--> |
| | | <!-- </el-form-item>--> |
| | | <!-- </el-col>--> |
| | | <el-col :span="12"> |
| | | <el-form-item label="邮箱" prop="email"> |
| | | <el-input v-model="form.email" placeholder="请输入邮箱" maxlength="50" /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="部门状态"> |
| | | <el-form-item label="机构状态"> |
| | | <el-radio-group v-model="form.status"> |
| | | <el-radio |
| | | v-for="dict in dict.type.sys_normal_disable" |
| | | :key="dict.value" |
| | | :label="dict.value" |
| | | >{{dict.label}}</el-radio> |
| | | >{{dict.label}} |
| | | </el-radio> |
| | | </el-radio-group> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="24"> |
| | | <el-form-item label="机构职能" prop="remarks"> |
| | | <el-input v-model="form.remarks" type="textarea" placeholder="请输入机构职能" controls-position="right" :min="0"/> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | |
| | | <el-button @click="cancel">取 消</el-button> |
| | | </div> |
| | | </el-dialog> |
| | | |
| | | <!--机构成员--> |
| | | <el-drawer |
| | | title="机构成员" |
| | | :visible.sync="drawer" |
| | | direction="rtl" |
| | | size="50%"> |
| | | <el-table :data="userTable"> |
| | | <el-table-column property="nickName" label="姓名" width="150"></el-table-column> |
| | | <el-table-column property="phonenumber" label="电话" width="200"></el-table-column> |
| | | <el-table-column property="userName" label="账号"></el-table-column> |
| | | </el-table> |
| | | <pagination |
| | | v-show="tableTotal>0" |
| | | :total="tableTotal" |
| | | :page.sync="queryTable.pageNum" |
| | | :limit.sync="queryTable.pageSize" |
| | | @pagination="getList" |
| | | /> |
| | | </el-drawer> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import { listDept, getDept, delDept, addDept, updateDept, listDeptExcludeChild } from "@/api/system/dept"; |
| | | import {listUser, listUserDept} from "@/api/common/common"; |
| | | import Treeselect from "@riophae/vue-treeselect"; |
| | | import "@riophae/vue-treeselect/dist/vue-treeselect.css"; |
| | | |
| | |
| | | // 表单校验 |
| | | rules: { |
| | | parentId: [ |
| | | { required: true, message: "上级部门不能为空", trigger: "blur" } |
| | | {required: true, message: "上级机构不能为空", trigger: "blur"} |
| | | ], |
| | | deptName: [ |
| | | { required: true, message: "部门名称不能为空", trigger: "blur" } |
| | | {required: true, message: "机构名称不能为空", trigger: "blur"} |
| | | ], |
| | | code: [ |
| | | {required: true, message: "机构编号不能为空", trigger: "blur"} |
| | | ], |
| | | orderNum: [ |
| | | { required: true, message: "显示排序不能为空", trigger: "blur" } |
| | |
| | | trigger: "blur" |
| | | } |
| | | ] |
| | | }, |
| | | // 下拉用户 |
| | | userList: [], |
| | | // 成员抽屉 |
| | | drawer: false, |
| | | // 成员表格 |
| | | userTable: [], |
| | | tableTotal: 0, |
| | | queryTable: { |
| | | pageNum: 1, |
| | | pageSize: 10 |
| | | } |
| | | }; |
| | | }, |
| | |
| | | /** 新增按钮操作 */ |
| | | handleAdd(row) { |
| | | this.reset(); |
| | | this.getUserList() |
| | | if (row != undefined) { |
| | | this.form.parentId = row.deptId; |
| | | } |
| | |
| | | this.deptOptions = this.handleTree(response.data, "deptId"); |
| | | }); |
| | | }, |
| | | // 用户下拉列表 |
| | | getUserList() { |
| | | listUser().then(res => { |
| | | this.userList = res.data |
| | | }) |
| | | }, |
| | | /** 展开/折叠操作 */ |
| | | toggleExpandAll() { |
| | | this.refreshTable = false; |
| | |
| | | this.refreshTable = true; |
| | | }); |
| | | }, |
| | | // 机构成员 |
| | | handleUser(row) { |
| | | this.drawer = true |
| | | listUserDept(Object.assign({}, {deptId: row.deptId}, this.queryTable)).then(res => { |
| | | console.log(res) |
| | | this.userTable = res.data.records |
| | | this.tableTotal = res.data.total |
| | | }) |
| | | }, |
| | | /** 修改按钮操作 */ |
| | | handleUpdate(row) { |
| | | this.reset(); |
| | | this.getUserList() |
| | | getDept(row.deptId).then(response => { |
| | | this.form = response.data; |
| | | this.open = true; |
| | |
| | | }).then(() => { |
| | | this.getList(); |
| | | this.$modal.msgSuccess("删除成功"); |
| | | }).catch(() => {}); |
| | | }).catch(() => { |
| | | }); |
| | | } |
| | | } |
| | | }; |
| | |
| | | <el-form ref="form" :model="form" :rules="rules" label-width="80px"> |
| | | <el-row> |
| | | <el-col :span="12"> |
| | | <el-form-item label="用户昵称" prop="nickName"> |
| | | <el-input v-model="form.nickName" placeholder="请输入用户昵称" maxlength="30" /> |
| | | <el-form-item v-if="form.userId == undefined" label="账号" prop="userName"> |
| | | <el-input v-model="form.userName" placeholder="请输入用户名称" maxlength="30" /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="归属部门" prop="deptId"> |
| | | <el-form-item v-if="form.userId == undefined" label="密码" prop="password"> |
| | | <el-input v-model="form.password" placeholder="请输入用户密码" type="password" maxlength="20" show-password/> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row> |
| | | <el-col :span="12"> |
| | | <el-form-item label="用户名称" prop="nickName"> |
| | | <el-input v-model="form.nickName" placeholder="请输入用户名称" maxlength="30" /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="所在部门" prop="deptId"> |
| | | <treeselect v-model="form.deptId" :options="deptOptions" :show-count="true" placeholder="请选择归属部门" /> |
| | | </el-form-item> |
| | | </el-col> |
| | |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="邮箱" prop="email"> |
| | | <el-input v-model="form.email" placeholder="请输入邮箱" maxlength="50" /> |
| | | <el-form-item label="证件号码" prop="certificateNo"> |
| | | <el-input v-model="form.certificateNo" placeholder="请输入证件号码" maxlength="18" /> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row> |
| | | <el-col :span="12"> |
| | | <el-form-item v-if="form.userId == undefined" label="用户名称" prop="userName"> |
| | | <el-input v-model="form.userName" placeholder="请输入用户名称" maxlength="30" /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item v-if="form.userId == undefined" label="用户密码" prop="password"> |
| | | <el-input v-model="form.password" placeholder="请输入用户密码" type="password" maxlength="20" show-password/> |
| | | </el-form-item> |
| | | </el-col> |
| | | <!-- <el-col :span="12">--> |
| | | <!-- <el-form-item label="邮箱" prop="email">--> |
| | | <!-- <el-input v-model="form.email" placeholder="请输入邮箱" maxlength="50" />--> |
| | | <!-- </el-form-item>--> |
| | | <!-- </el-col>--> |
| | | </el-row> |
| | | <el-row> |
| | | <el-col :span="12"> |
| | | <el-form-item label="用户性别"> |
| | | <el-select v-model="form.sex" placeholder="请选择"> |
| | | <el-select v-model="form.sex" placeholder="请选择" prop="sex"> |
| | | <el-option |
| | | v-for="dict in dict.type.sys_user_sex" |
| | | :key="dict.value" |
| | |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row> |
| | | <el-col :span="12"> |
| | | <el-form-item label="入职时间"> |
| | | <el-date-picker |
| | | v-model="form.entryTime" |
| | | type="datetime" |
| | | value-format="yyyy-MM-dd HH:mm:ss" |
| | | placeholder="选择入职时间"> |
| | | </el-date-picker> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="照片"> |
| | | <imageUpload v-model="form.photo" :limit="1"/> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | </el-form> |
| | | <div slot="footer" class="dialog-footer"> |
| | | <el-button type="primary" @click="submitForm">确 定</el-button> |
| | |
| | | dicts: ['sys_normal_disable', 'sys_user_sex'], |
| | | components: { Treeselect }, |
| | | data() { |
| | | // 身份证号校验 |
| | | let checkIdNum = (rule, value, callback) => { |
| | | const reg = |
| | | /(^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$)|(^[1-9]\d{5}(18|19|20)\d{2}((0[1-9])|(1[0-2]))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$)/ |
| | | if (!value) { |
| | | return callback(new Error('证件号码不能为空')) |
| | | } else if (!reg.test(value)) { |
| | | return callback(new Error('证件号码不正确')) |
| | | } else { |
| | | callback() |
| | | } |
| | | } |
| | | return { |
| | | // 遮罩层 |
| | | loading: true, |
| | |
| | | // 表单校验 |
| | | rules: { |
| | | userName: [ |
| | | { required: true, message: "用户名称不能为空", trigger: "blur" }, |
| | | { min: 2, max: 20, message: '用户名称长度必须介于 2 和 20 之间', trigger: 'blur' } |
| | | { required: true, message: "账号不能为空", trigger: "blur" }, |
| | | { min: 2, max: 20, message: '账号长度必须介于 2 和 20 之间', trigger: 'blur' } |
| | | ], |
| | | nickName: [ |
| | | { required: true, message: "用户昵称不能为空", trigger: "blur" } |
| | |
| | | { required: true, message: "用户密码不能为空", trigger: "blur" }, |
| | | { min: 5, max: 20, message: '用户密码长度必须介于 5 和 20 之间', trigger: 'blur' } |
| | | ], |
| | | email: [ |
| | | { |
| | | type: "email", |
| | | message: "'请输入正确的邮箱地址", |
| | | trigger: ["blur", "change"] |
| | | } |
| | | ], |
| | | // email: [ |
| | | // { |
| | | // type: "email", |
| | | // message: "'请输入正确的邮箱地址", |
| | | // trigger: ["blur", "change"] |
| | | // } |
| | | // ], |
| | | phonenumber: [ |
| | | { required: true, message: "手机号码不能为空", trigger: "blur" }, |
| | | { |
| | | pattern: /^1[3|4|5|6|7|8|9][0-9]\d{8}$/, |
| | | message: "请输入正确的手机号码", |
| | | trigger: "blur" |
| | | } |
| | | ], |
| | | certificateNo: [ |
| | | { required: true, message: "证件号码不能为空", trigger: "blur" }, |
| | | { validator: checkIdNum, trigger: 'blur' } |
| | | ], |
| | | sex: [ |
| | | { required: true, message: "性别不能为空", trigger: "blur" } |
| | | ], |
| | | deptId: [ |
| | | { required: true, message: "所在部门不能为空", trigger: "blur" } |
| | | ] |
| | | } |
| | | }; |