| | |
| | | } |
| | | }, |
| | | "js-base64": { |
| | | "version": "2.6.4", |
| | | "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.6.4.tgz", |
| | | "integrity": "sha512-pZe//GGmwJndub7ZghVHz7vjb2LgC1m8B07Au3eYqeqv9emhESByMXxaEgkUkEqJe87oBbSniGYoQNIBklc7IQ==", |
| | | "dev": true |
| | | "version": "3.7.2", |
| | | "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-3.7.2.tgz", |
| | | "integrity": "sha512-NnRs6dsyqUXejqk/yv2aiXlAvOs56sLkX6nUdeaNezI5LFFLlsZjOThmwnrcwh5ZZRwZlCMnVAY3CvhIhoVEKQ==" |
| | | }, |
| | | "js-beautify": { |
| | | "version": "1.13.0", |
| | |
| | | "js-base64": "^2.1.9", |
| | | "source-map": "^0.5.6", |
| | | "supports-color": "^3.2.3" |
| | | }, |
| | | "dependencies": { |
| | | "js-base64": { |
| | | "version": "2.6.4", |
| | | "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.6.4.tgz", |
| | | "integrity": "sha512-pZe//GGmwJndub7ZghVHz7vjb2LgC1m8B07Au3eYqeqv9emhESByMXxaEgkUkEqJe87oBbSniGYoQNIBklc7IQ==", |
| | | "dev": true |
| | | } |
| | | } |
| | | }, |
| | | "strip-ansi": { |
| | |
| | | "file-saver": "2.0.5", |
| | | "fuse.js": "6.4.3", |
| | | "highlight.js": "9.18.5", |
| | | "js-base64": "^3.7.2", |
| | | "js-beautify": "1.13.0", |
| | | "js-cookie": "3.0.1", |
| | | "jsencrypt": "3.2.1", |
| | |
| | | method: 'get' |
| | | }) |
| | | } |
| | | |
| | | // 厂商下拉列表 |
| | | export function listManufacturer() { |
| | | return request({ |
| | | url: '/oa/manufacturer/findList', |
| | | method: 'get' |
| | | }) |
| | | } |
New file |
| | |
| | | import request from '@/utils/request' |
| | | |
| | | // 查询设备联机日志列表 |
| | | export function listEquipmentLog(query) { |
| | | return request({ |
| | | url: '/oa/equipmentLog/list', |
| | | method: 'get', |
| | | params: query |
| | | }) |
| | | } |
| | | |
| | | // 查询设备联机日志详细 |
| | | export function getEquipmentLog(id) { |
| | | return request({ |
| | | url: '/oa/equipmentLog/' + id, |
| | | method: 'get' |
| | | }) |
| | | } |
| | | |
| | | // 新增设备联机日志 |
| | | export function addEquipmentLog(data) { |
| | | return request({ |
| | | url: '/oa/equipmentLog', |
| | | method: 'post', |
| | | data: data |
| | | }) |
| | | } |
| | | |
| | | // 修改设备联机日志 |
| | | export function updateEquipmentLog(data) { |
| | | return request({ |
| | | url: '/oa/equipmentLog', |
| | | method: 'put', |
| | | data: data |
| | | }) |
| | | } |
| | | |
| | | // 删除设备联机日志 |
| | | export function delEquipmentLog(id) { |
| | | return request({ |
| | | url: '/oa/equipmentLog/' + id, |
| | | method: 'delete' |
| | | }) |
| | | } |
New file |
| | |
| | | import request from '@/utils/request' |
| | | |
| | | // 查询厂商列表 |
| | | export function listManufacturer(query) { |
| | | return request({ |
| | | url: '/oa/manufacturer/list', |
| | | method: 'get', |
| | | params: query |
| | | }) |
| | | } |
| | | |
| | | // 查询厂商详细 |
| | | export function getManufacturer(id) { |
| | | return request({ |
| | | url: '/oa/manufacturer/' + id, |
| | | method: 'get' |
| | | }) |
| | | } |
| | | |
| | | // 新增厂商 |
| | | export function addManufacturer(data) { |
| | | return request({ |
| | | url: '/oa/manufacturer', |
| | | method: 'post', |
| | | data: data |
| | | }) |
| | | } |
| | | |
| | | // 修改厂商 |
| | | export function updateManufacturer(data) { |
| | | return request({ |
| | | url: '/oa/manufacturer', |
| | | method: 'put', |
| | | data: data |
| | | }) |
| | | } |
| | | |
| | | // 删除厂商 |
| | | export function delManufacturer(id) { |
| | | return request({ |
| | | url: '/oa/manufacturer/' + id, |
| | | method: 'delete' |
| | | }) |
| | | } |
| | |
| | | // 大小限制(MB) |
| | | fileSize: { |
| | | type: Number, |
| | | default: 5, |
| | | default: 50, |
| | | }, |
| | | // 文件类型, 例如['png', 'jpg', 'jpeg'] |
| | | fileType: { |
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="name"> |
| | | <el-input |
| | | v-model="queryParams.name" |
| | | placeholder="请输入厂商名称" |
| | | clearable |
| | | size="small" |
| | | @keyup.enter.native="handleQuery" |
| | | /> |
| | | </el-form-item> |
| | | <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="phone"> |
| | | <el-input |
| | | v-model="queryParams.phone" |
| | | placeholder="请输入联系方式" |
| | | clearable |
| | | size="small" |
| | | @keyup.enter.native="handleQuery" |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item label="邮箱" prop="mailbox"> |
| | | <el-input |
| | | v-model="queryParams.mailbox" |
| | | placeholder="请输入邮箱" |
| | | clearable |
| | | size="small" |
| | | @keyup.enter.native="handleQuery" |
| | | /> |
| | | </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:manufacturer: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:manufacturer: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:manufacturer: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:manufacturer:export']"--> |
| | | <!-- >导出</el-button>--> |
| | | <!-- </el-col>--> |
| | | <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> |
| | | </el-row> |
| | | |
| | | <el-table v-loading="loading" :data="manufacturerList" @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="name" /> |
| | | <el-table-column label="厂商代码" align="center" prop="code" /> |
| | | <el-table-column label="联系方式" align="center" prop="phone" /> |
| | | <el-table-column label="邮箱" align="center" prop="mailbox" /> |
| | | <el-table-column label="联系地址" align="center" prop="contactAddress" /> |
| | | <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:manufacturer:edit']" |
| | | >修改</el-button> |
| | | <el-button |
| | | size="mini" |
| | | type="text" |
| | | icon="el-icon-delete" |
| | | @click="handleDelete(scope.row)" |
| | | v-hasPermi="['oa:manufacturer: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="name"> |
| | | <el-input v-model="form.name" placeholder="请输入厂商名称" /> |
| | | </el-form-item> |
| | | <el-form-item label="厂商代码" prop="code"> |
| | | <el-input v-model="form.code" placeholder="请输入厂商代码" /> |
| | | </el-form-item> |
| | | <el-form-item label="联系方式" prop="phone"> |
| | | <el-input v-model="form.phone" placeholder="请输入联系方式" /> |
| | | </el-form-item> |
| | | <el-form-item label="邮箱" prop="mailbox"> |
| | | <el-input v-model="form.mailbox" placeholder="请输入邮箱" /> |
| | | </el-form-item> |
| | | <el-form-item label="联系地址" prop="contactAddress"> |
| | | <el-input v-model="form.contactAddress" 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 { listManufacturer, getManufacturer, delManufacturer, addManufacturer, updateManufacturer } from "@/api/oa/manufacturer"; |
| | | |
| | | export default { |
| | | name: "Manufacturer", |
| | | data() { |
| | | return { |
| | | // 按钮loading |
| | | buttonLoading: false, |
| | | // 遮罩层 |
| | | loading: true, |
| | | // 选中数组 |
| | | ids: [], |
| | | // 非单个禁用 |
| | | single: true, |
| | | // 非多个禁用 |
| | | multiple: true, |
| | | // 显示搜索条件 |
| | | showSearch: true, |
| | | // 总条数 |
| | | total: 0, |
| | | // 厂商表格数据 |
| | | manufacturerList: [], |
| | | // 弹出层标题 |
| | | title: "", |
| | | // 是否显示弹出层 |
| | | open: false, |
| | | // 查询参数 |
| | | queryParams: { |
| | | pageNum: 1, |
| | | pageSize: 10, |
| | | name: undefined, |
| | | code: undefined, |
| | | phone: undefined, |
| | | mailbox: undefined, |
| | | contactAddress: undefined, |
| | | }, |
| | | // 表单参数 |
| | | form: {}, |
| | | // 表单校验 |
| | | rules: { |
| | | id: [ |
| | | { required: true, message: "厂商主键不能为空", trigger: "blur" } |
| | | ], |
| | | name: [ |
| | | { required: true, message: "厂商名称不能为空", trigger: "blur" } |
| | | ], |
| | | code: [ |
| | | { required: true, message: "厂商代码不能为空", trigger: "blur" } |
| | | ], |
| | | phone: [ |
| | | { required: true, message: "联系方式不能为空", trigger: "blur" }, |
| | | { |
| | | pattern: /^1[3|4|5|6|7|8|9][0-9]\d{8}$/, |
| | | message: "请输入正确的手机号码", |
| | | trigger: "blur" |
| | | } |
| | | ], |
| | | mailbox: [ |
| | | { |
| | | type: "email", |
| | | message: "'请输入正确的邮箱地址", |
| | | trigger: ["blur", "change"] |
| | | } |
| | | ] |
| | | } |
| | | }; |
| | | }, |
| | | created() { |
| | | this.getList(); |
| | | }, |
| | | methods: { |
| | | /** 查询厂商列表 */ |
| | | getList() { |
| | | this.loading = true; |
| | | listManufacturer(this.queryParams).then(response => { |
| | | this.manufacturerList = response.rows; |
| | | this.total = response.total; |
| | | this.loading = false; |
| | | }); |
| | | }, |
| | | // 取消按钮 |
| | | cancel() { |
| | | this.open = false; |
| | | this.reset(); |
| | | }, |
| | | // 表单重置 |
| | | reset() { |
| | | this.form = { |
| | | id: undefined, |
| | | name: undefined, |
| | | code: undefined, |
| | | phone: undefined, |
| | | mailbox: undefined, |
| | | contactAddress: undefined, |
| | | createBy: undefined, |
| | | updateBy: undefined, |
| | | createTime: undefined, |
| | | updateTime: 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 |
| | | getManufacturer(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) { |
| | | updateManufacturer(this.form).then(response => { |
| | | this.$modal.msgSuccess("修改成功"); |
| | | this.open = false; |
| | | this.getList(); |
| | | }).finally(() => { |
| | | this.buttonLoading = false; |
| | | }); |
| | | } else { |
| | | addManufacturer(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 delManufacturer(ids); |
| | | }).then(() => { |
| | | this.loading = false; |
| | | this.getList(); |
| | | this.$modal.msgSuccess("删除成功"); |
| | | }).finally(() => { |
| | | this.loading = false; |
| | | }); |
| | | }, |
| | | /** 导出按钮操作 */ |
| | | handleExport() { |
| | | this.download('oa/manufacturer/export', { |
| | | ...this.queryParams |
| | | }, `manufacturer_${new Date().getTime()}.xlsx`) |
| | | } |
| | | } |
| | | }; |
| | | </script> |
| | |
| | | @keyup.enter.native="handleQuery" |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item label="版本" prop="edition"> |
| | | <el-form-item label="软件版本" prop="edition"> |
| | | <el-input |
| | | v-model="queryParams.edition" |
| | | placeholder="请输入版本" |
| | | 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-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" |
| | |
| | | </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="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" |
| | |
| | | |
| | | <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"> |
| | | <el-table-column label="序列号" align="center" width="100"> |
| | | <template slot-scope="scope"> |
| | | <span>{{ scope.$index + (queryParams.pageNum - 1) * queryParams.pageSize + 1 }} </span> |
| | | {{formatZero(scope.row.serialNumber, 4)}} |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="设备类型" align="center" prop="type"> |
| | |
| | | |
| | | <!-- 添加或修改智控设备对话框 --> |
| | | <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 ref="form" :model="form" :rules="rules" label-width="100px"> |
| | | <el-form-item label="序列号" prop="serialNumber"> |
| | | <el-input v-model="form.serialNumber" :disabled="disabled" placeholder="请输入序列号"/> |
| | | </el-form-item> |
| | |
| | | v-for="dict in dict.type.DICT101" |
| | | :key="dict.value" |
| | | :label="dict.label" |
| | | :value="parseInt(dict.value)" |
| | | :value="dict.value" |
| | | ></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="序列码" prop="sequenceCode"> |
| | | <el-form-item label="硬件序列码" prop="sequenceCode"> |
| | | <el-input v-model="form.sequenceCode" :disabled="disabled" placeholder="请输入序列码"/> |
| | | </el-form-item> |
| | | <el-form-item label="版本" prop="edition"> |
| | |
| | | getEquipment(id).then(response => { |
| | | this.loading = false; |
| | | this.form = response.data; |
| | | this.form.serialNumber = this.formatZero(this.form.serialNumber, 4); |
| | | this.open = true; |
| | | this.title = "修改智控设备"; |
| | | }); |
| | |
| | | this.download('oa/equipment/export', { |
| | | ...this.queryParams |
| | | }, `equipment_${new Date().getTime()}.xlsx`) |
| | | }, |
| | | // 数字位数不够,前面位数补零 |
| | | formatZero(num, len) { |
| | | if (String(num).length > len) return num; |
| | | return (Array(len).join(0) + num).slice(-len); |
| | | } |
| | | } |
| | | }; |
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="userName"> |
| | | <el-input |
| | | v-model="queryParams.userName" |
| | | placeholder="请输入联机用户" |
| | | clearable |
| | | size="small" |
| | | @keyup.enter.native="handleQuery" |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item label="联机地址" prop="ip"> |
| | | <el-input |
| | | v-model="queryParams.ip" |
| | | placeholder="请输入联机地址" |
| | | clearable |
| | | size="small" |
| | | @keyup.enter.native="handleQuery" |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item label="联机地点" prop="loginLocation"> |
| | | <el-input |
| | | v-model="queryParams.loginLocation" |
| | | placeholder="请输入联机地点" |
| | | clearable |
| | | size="small" |
| | | @keyup.enter.native="handleQuery" |
| | | /> |
| | | </el-form-item> |
| | | <!-- <el-form-item label="联机时间" prop="loginTime">--> |
| | | <!-- <el-date-picker clearable size="small"--> |
| | | <!-- v-model="queryParams.loginTime"--> |
| | | <!-- type="date"--> |
| | | <!-- value-format="yyyy-MM-dd"--> |
| | | <!-- placeholder="选择联机时间">--> |
| | | <!-- </el-date-picker>--> |
| | | <!-- </el-form-item>--> |
| | | <el-form-item label="操作行为" prop="operation"> |
| | | <el-select v-model="queryParams.operation" placeholder="请选择操作行为" clearable size="small"> |
| | | <el-option |
| | | v-for="dict in dict.type.DICT108" |
| | | :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="danger" |
| | | plain |
| | | icon="el-icon-delete" |
| | | size="mini" |
| | | :disabled="multiple" |
| | | @click="handleDelete" |
| | | v-hasPermi="['oa:equipmentLog: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:equipmentLog:export']"--> |
| | | <!-- >导出</el-button>--> |
| | | <!-- </el-col>--> |
| | | <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> |
| | | </el-row> |
| | | |
| | | <el-table v-loading="loading" :data="equipmentLogList" @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="userName" /> |
| | | <el-table-column label="联机地址" align="center" prop="ip" /> |
| | | <el-table-column label="联机地点" align="center" prop="loginLocation" /> |
| | | <el-table-column label="联机状态" align="center"> |
| | | <template slot-scope="scope"> |
| | | <span v-if="scope.row.status === '0'">成功</span> |
| | | <span v-if="scope.row.status === '1'">失败</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="操作行为" align="center" prop="operation_dictText" /> |
| | | <el-table-column label="联机时间" align="center" prop="loginTime" /> |
| | | </el-table> |
| | | |
| | | <pagination |
| | | v-show="total>0" |
| | | :total="total" |
| | | :page.sync="queryParams.pageNum" |
| | | :limit.sync="queryParams.pageSize" |
| | | @pagination="getList" |
| | | /> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import { listEquipmentLog, getEquipmentLog, delEquipmentLog, addEquipmentLog, updateEquipmentLog } from "@/api/oa/equipmentLog"; |
| | | |
| | | export default { |
| | | name: "EquipmentLog", |
| | | dicts: ['DICT108'], |
| | | data() { |
| | | return { |
| | | // 按钮loading |
| | | buttonLoading: false, |
| | | // 遮罩层 |
| | | loading: true, |
| | | // 选中数组 |
| | | ids: [], |
| | | // 非单个禁用 |
| | | single: true, |
| | | // 非多个禁用 |
| | | multiple: true, |
| | | // 显示搜索条件 |
| | | showSearch: true, |
| | | // 总条数 |
| | | total: 0, |
| | | // 设备联机日志表格数据 |
| | | equipmentLogList: [], |
| | | // 弹出层标题 |
| | | title: "", |
| | | // 是否显示弹出层 |
| | | open: false, |
| | | // 查询参数 |
| | | queryParams: { |
| | | pageNum: 1, |
| | | pageSize: 10, |
| | | operation: undefined, |
| | | userName: undefined, |
| | | nickName: undefined, |
| | | ip: undefined, |
| | | loginLocation: undefined, |
| | | status: undefined, |
| | | loginTime: undefined |
| | | } |
| | | }; |
| | | }, |
| | | created() { |
| | | this.getList(); |
| | | }, |
| | | methods: { |
| | | /** 查询设备联机日志列表 */ |
| | | getList() { |
| | | this.loading = true; |
| | | listEquipmentLog(this.queryParams).then(response => { |
| | | this.equipmentLogList = response.rows; |
| | | this.total = response.total; |
| | | this.loading = false; |
| | | }); |
| | | }, |
| | | // 取消按钮 |
| | | cancel() { |
| | | this.open = false; |
| | | this.reset(); |
| | | }, |
| | | // 表单重置 |
| | | reset() { |
| | | this.form = { |
| | | id: undefined, |
| | | operation: undefined, |
| | | userName: undefined, |
| | | nickName: undefined, |
| | | ip: undefined, |
| | | loginLocation: undefined, |
| | | status: "0", |
| | | loginTime: 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 |
| | | }, |
| | | /** 删除按钮操作 */ |
| | | handleDelete(row) { |
| | | const ids = row.id || this.ids; |
| | | this.$modal.confirm('是否确认删除设备联机日志编号为"' + ids + '"的数据项?').then(() => { |
| | | this.loading = true; |
| | | return delEquipmentLog(ids); |
| | | }).then(() => { |
| | | this.loading = false; |
| | | this.getList(); |
| | | this.$modal.msgSuccess("删除成功"); |
| | | }).finally(() => { |
| | | this.loading = false; |
| | | }); |
| | | }, |
| | | /** 导出按钮操作 */ |
| | | handleExport() { |
| | | this.download('oa/equipmentLog/export', { |
| | | ...this.queryParams |
| | | }, `equipmentLog_${new Date().getTime()}.xlsx`) |
| | | } |
| | | } |
| | | }; |
| | | </script> |
| | |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item label="生产厂商" prop="manufacturer"> |
| | | <el-input |
| | | v-model="queryParams.manufacturer" |
| | | placeholder="请输入生产厂商" |
| | | clearable |
| | | size="small" |
| | | @keyup.enter.native="handleQuery" |
| | | <el-select v-model="queryParams.manufacturer" placeholder="请选择生产厂商" clearable size="small"> |
| | | <el-option |
| | | v-for="item in manufacturerList" |
| | | :key="item.id" |
| | | :label="item.name" |
| | | :value="item.id" |
| | | /> |
| | | </el-select> |
| | | </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="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 |
| | |
| | | <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="manufacturer_dictText"/> |
| | | <el-table-column label="厂商代码" align="center" prop="vendorCode_dictText"/> |
| | | <el-table-column label="波特率" align="center" prop="baudRate"> |
| | | <template slot-scope="scope"> |
| | | <dict-tag :options="dict.type.DICT103" :value="scope.row.baudRate"/> |
| | |
| | | <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-select v-model="form.manufacturer" placeholder="请选择生产厂商" clearable size="small" :disabled="disabled"> |
| | | <el-option |
| | | v-for="item in manufacturerList" |
| | | :key="item.id" |
| | | :label="item.name" |
| | | :value="item.id" |
| | | /> |
| | | </el-select> |
| | | </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="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 |
| | |
| | | addPeripheralUnit, |
| | | updatePeripheralUnit |
| | | } from "@/api/oa/peripheralUnit"; |
| | | import {Base64} from 'js-base64'; |
| | | import { listManufacturer } from "@/api/common/common" |
| | | |
| | | export default { |
| | | name: "PeripheralUnit", |
| | |
| | | {required: true, message: "附件不能为空", trigger: "blur"} |
| | | ], |
| | | }, |
| | | disabled: false |
| | | disabled: false, |
| | | // 生产厂商 |
| | | manufacturerList: [] |
| | | }; |
| | | }, |
| | | created() { |
| | | this.getList(); |
| | | this.getManufacturerList(); |
| | | }, |
| | | methods: { |
| | | getManufacturerList() { |
| | | listManufacturer().then(res => { |
| | | this.manufacturerList = res.data |
| | | }) |
| | | }, |
| | | /** 查询外设单元列表 */ |
| | | getList() { |
| | | this.loading = true; |
| | |
| | | /** 搜索按钮操作 */ |
| | | handleQuery() { |
| | | this.queryParams.pageNum = 1; |
| | | this.getManufacturerList(); |
| | | this.getList(); |
| | | }, |
| | | /** 重置按钮操作 */ |
| | | resetQuery() { |
| | | this.resetForm("queryForm"); |
| | | this.getManufacturerList(); |
| | | this.handleQuery(); |
| | | }, |
| | | // 多选框选中数据 |
| | |
| | | /** 新增按钮操作 */ |
| | | handleAdd() { |
| | | this.reset(); |
| | | this.getManufacturerList(); |
| | | this.form.baudRate = '3' |
| | | this.open = true; |
| | | this.title = "添加外设单元"; |
| | |
| | | handleUpdate(row) { |
| | | this.loading = true; |
| | | this.reset(); |
| | | this.getManufacturerList(); |
| | | const id = row.id || this.ids |
| | | getPeripheralUnit(id).then(response => { |
| | | this.loading = false; |
| | |
| | | @keyup.enter.native="handleQuery" |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item label="权限字符" prop="roleKey"> |
| | | <el-form-item label="角色编号" prop="roleKey"> |
| | | <el-input |
| | | v-model="queryParams.roleKey" |
| | | placeholder="请输入权限字符" |
| | | placeholder="请输入角色编号" |
| | | clearable |
| | | size="small" |
| | | style="width: 240px" |
| | |
| | | |
| | | <el-table v-loading="loading" :data="roleList" @selection-change="handleSelectionChange"> |
| | | <el-table-column type="selection" width="55" align="center" /> |
| | | <el-table-column label="角色编号" prop="roleId" width="120" /> |
| | | <el-table-column label="角色编号" prop="roleId" width="150" /> |
| | | <el-table-column label="角色名称" prop="roleName" :show-overflow-tooltip="true" width="150" /> |
| | | <el-table-column label="权限字符" prop="roleKey" :show-overflow-tooltip="true" width="150" /> |
| | | <el-table-column label="显示顺序" prop="roleSort" width="100" /> |
| | | <el-table-column label="状态" align="center" width="100"> |
| | | <el-table-column label="角色编号" prop="roleKey" :show-overflow-tooltip="true" width="150" /> |
| | | <el-table-column label="显示顺序" prop="roleSort" width="150" /> |
| | | <el-table-column label="状态" align="center" width="150"> |
| | | <template slot-scope="scope"> |
| | | <el-switch |
| | | v-model="scope.row.status" |
| | |
| | | </el-form-item> |
| | | <el-form-item prop="roleKey"> |
| | | <span slot="label"> |
| | | <el-tooltip content="控制器中定义的权限字符,如:@PreAuthorize(`@ss.hasRole('admin')`)" placement="top"> |
| | | <el-tooltip content="控制器中定义的角色编号,如:@PreAuthorize(`@ss.hasRole('admin')`)" placement="top"> |
| | | <i class="el-icon-question"></i> |
| | | </el-tooltip> |
| | | 权限字符 |
| | | 角色编号 |
| | | </span> |
| | | <el-input v-model="form.roleKey" placeholder="请输入权限字符" /> |
| | | <el-input v-model="form.roleKey" placeholder="请输入角色编号" /> |
| | | </el-form-item> |
| | | <el-form-item label="角色顺序" prop="roleSort"> |
| | | <el-input-number v-model="form.roleSort" controls-position="right" :min="0" /> |
| | |
| | | <el-form-item label="角色名称"> |
| | | <el-input v-model="form.roleName" :disabled="true" /> |
| | | </el-form-item> |
| | | <el-form-item label="权限字符"> |
| | | <el-form-item label="角色编号"> |
| | | <el-input v-model="form.roleKey" :disabled="true" /> |
| | | </el-form-item> |
| | | <el-form-item label="权限范围"> |
| | |
| | | { required: true, message: "角色名称不能为空", trigger: "blur" } |
| | | ], |
| | | roleKey: [ |
| | | { required: true, message: "权限字符不能为空", trigger: "blur" } |
| | | { required: true, message: "角色编号不能为空", trigger: "blur" } |
| | | ], |
| | | roleSort: [ |
| | | { required: true, message: "角色顺序不能为空", trigger: "blur" } |