From 285eb9dda9b594ad185c9f612c9881af6956f35b Mon Sep 17 00:00:00 2001 From: 唐耀东 <18861537@qq.com> Date: 星期五, 31 十二月 2021 11:32:04 +0800 Subject: [PATCH] 提交代码 --- src/api/oa/manufacturer.js | 44 +++ src/views/basics/manufacturer/index.vue | 343 ++++++++++++++++++++++++ src/views/device/equipment/index.vue | 46 +- src/views/system/role/index.vue | 22 src/api/oa/equipmentLog.js | 44 +++ src/views/device/peripheralUnit/index.vue | 68 +++- package-lock.json | 15 package.json | 1 src/api/common/common.js | 8 src/components/FileUpload/index.vue | 2 src/views/device/equipmentLog/index.vue | 222 +++++++++++++++ 11 files changed, 756 insertions(+), 59 deletions(-) diff --git a/package-lock.json b/package-lock.json index 0c12513..cf97078 100644 --- a/package-lock.json +++ b/package-lock.json @@ -7166,10 +7166,9 @@ } }, "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", @@ -11603,6 +11602,14 @@ "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": { diff --git a/package.json b/package.json index f0dacd6..bc76301 100644 --- a/package.json +++ b/package.json @@ -45,6 +45,7 @@ "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", diff --git a/src/api/common/common.js b/src/api/common/common.js index 6a32e09..053b140 100644 --- a/src/api/common/common.js +++ b/src/api/common/common.js @@ -47,3 +47,11 @@ method: 'get' }) } + +// 鍘傚晢涓嬫媺鍒楄〃 +export function listManufacturer() { + return request({ + url: '/oa/manufacturer/findList', + method: 'get' + }) +} diff --git a/src/api/oa/equipmentLog.js b/src/api/oa/equipmentLog.js new file mode 100644 index 0000000..b7a7e16 --- /dev/null +++ b/src/api/oa/equipmentLog.js @@ -0,0 +1,44 @@ +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' + }) +} diff --git a/src/api/oa/manufacturer.js b/src/api/oa/manufacturer.js new file mode 100644 index 0000000..f7c4ec9 --- /dev/null +++ b/src/api/oa/manufacturer.js @@ -0,0 +1,44 @@ +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' + }) +} diff --git a/src/components/FileUpload/index.vue b/src/components/FileUpload/index.vue index 606e65f..49a77bb 100644 --- a/src/components/FileUpload/index.vue +++ b/src/components/FileUpload/index.vue @@ -55,7 +55,7 @@ // 澶у皬闄愬埗(MB) fileSize: { type: Number, - default: 5, + default: 50, }, // 鏂囦欢绫诲瀷, 渚嬪['png', 'jpg', 'jpeg'] fileType: { diff --git a/src/views/basics/manufacturer/index.vue b/src/views/basics/manufacturer/index.vue new file mode 100644 index 0000000..a12101b --- /dev/null +++ b/src/views/basics/manufacturer/index.vue @@ -0,0 +1,343 @@ +<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="鍘傚晢浠g爜" 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="鍘傚晢浠g爜" 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="鍘傚晢浠g爜" 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: "鍘傚晢浠g爜涓嶈兘涓虹┖", 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> diff --git a/src/views/device/equipment/index.vue b/src/views/device/equipment/index.vue index b57e13d..ccd52b4 100644 --- a/src/views/device/equipment/index.vue +++ b/src/views/device/equipment/index.vue @@ -20,17 +20,17 @@ @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" @@ -84,17 +84,17 @@ </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" @@ -134,9 +134,9 @@ <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"> @@ -192,7 +192,7 @@ <!-- 娣诲姞鎴栦慨鏀规櫤鎺ц澶囧璇濇 --> <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> @@ -202,11 +202,11 @@ 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"> @@ -462,6 +462,7 @@ 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 = "淇敼鏅烘帶璁惧"; }); @@ -510,6 +511,11 @@ 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); } } }; diff --git a/src/views/device/equipmentLog/index.vue b/src/views/device/equipmentLog/index.vue new file mode 100644 index 0000000..e9bb106 --- /dev/null +++ b/src/views/device/equipmentLog/index.vue @@ -0,0 +1,222 @@ +<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> diff --git a/src/views/device/peripheralUnit/index.vue b/src/views/device/peripheralUnit/index.vue index 006987b..712b727 100644 --- a/src/views/device/peripheralUnit/index.vue +++ b/src/views/device/peripheralUnit/index.vue @@ -29,23 +29,24 @@ /> </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="鍘傚晢浠g爜" prop="vendorCode"> - <el-input - v-model="queryParams.vendorCode" - placeholder="璇疯緭鍏ュ巶鍟嗕唬鐮�" - clearable - size="small" - @keyup.enter.native="handleQuery" - /> - </el-form-item> +<!-- <el-form-item label="鍘傚晢浠g爜" 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 @@ -121,8 +122,8 @@ <el-table-column label="澶栬浠g爜" 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="鍘傚晢浠g爜" align="center" prop="vendorCode"/> + <el-table-column label="鐢熶骇鍘傚晢" align="center" prop="manufacturer_dictText"/> + <el-table-column label="鍘傚晢浠g爜" 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"/> @@ -189,11 +190,18 @@ <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="鍘傚晢浠g爜" prop="vendorCode"> - <el-input v-model="form.vendorCode" placeholder="璇疯緭鍏ュ巶鍟嗕唬鐮�" :disabled="disabled"/> - </el-form-item> +<!-- <el-form-item label="鍘傚晢浠g爜" 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 @@ -246,6 +254,8 @@ addPeripheralUnit, updatePeripheralUnit } from "@/api/oa/peripheralUnit"; +import {Base64} from 'js-base64'; +import { listManufacturer } from "@/api/common/common" export default { name: "PeripheralUnit", @@ -319,13 +329,21 @@ {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; @@ -367,11 +385,13 @@ /** 鎼滅储鎸夐挳鎿嶄綔 */ handleQuery() { this.queryParams.pageNum = 1; + this.getManufacturerList(); this.getList(); }, /** 閲嶇疆鎸夐挳鎿嶄綔 */ resetQuery() { this.resetForm("queryForm"); + this.getManufacturerList(); this.handleQuery(); }, // 澶氶�夋閫変腑鏁版嵁 @@ -383,6 +403,7 @@ /** 鏂板鎸夐挳鎿嶄綔 */ handleAdd() { this.reset(); + this.getManufacturerList(); this.form.baudRate = '3' this.open = true; this.title = "娣诲姞澶栬鍗曞厓"; @@ -403,6 +424,7 @@ handleUpdate(row) { this.loading = true; this.reset(); + this.getManufacturerList(); const id = row.id || this.ids getPeripheralUnit(id).then(response => { this.loading = false; diff --git a/src/views/system/role/index.vue b/src/views/system/role/index.vue index 8d4f5d7..9c02f99 100644 --- a/src/views/system/role/index.vue +++ b/src/views/system/role/index.vue @@ -11,10 +11,10 @@ @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" @@ -103,11 +103,11 @@ <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" @@ -169,12 +169,12 @@ </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" /> @@ -219,7 +219,7 @@ <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="鏉冮檺鑼冨洿"> @@ -340,7 +340,7 @@ { required: true, message: "瑙掕壊鍚嶇О涓嶈兘涓虹┖", trigger: "blur" } ], roleKey: [ - { required: true, message: "鏉冮檺瀛楃涓嶈兘涓虹┖", trigger: "blur" } + { required: true, message: "瑙掕壊缂栧彿涓嶈兘涓虹┖", trigger: "blur" } ], roleSort: [ { required: true, message: "瑙掕壊椤哄簭涓嶈兘涓虹┖", trigger: "blur" } -- Gitblit v1.9.1