From 3da12323ba999d0af15646e2384a4c18fb414683 Mon Sep 17 00:00:00 2001
From: 唐耀东 <18861537@qq.com>
Date: 星期四, 09 十二月 2021 15:00:19 +0800
Subject: [PATCH] 提交代码
---
src/views/device/equipment/index.vue | 516 +++++++++++++++++
src/views/system/user/index.vue | 99 ++
src/api/oa/equipment.js | 44 +
src/views/device/peripheralUnit/index.vue | 473 +++++++++++++++
src/views/system/dept/index.vue | 169 ++++-
src/api/oa/peripheralUnit.js | 44 +
src/api/oa/batch.js | 44 +
src/api/common/common.js | 32 +
src/views/device/batch/index.vue | 323 ++++++++++
src/components/FileUpload/index.vue | 7
10 files changed, 1,688 insertions(+), 63 deletions(-)
diff --git a/src/api/common/common.js b/src/api/common/common.js
index e1e227d..6a32e09 100644
--- a/src/api/common/common.js
+++ b/src/api/common/common.js
@@ -15,3 +15,35 @@
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'
+ })
+}
diff --git a/src/api/oa/batch.js b/src/api/oa/batch.js
new file mode 100644
index 0000000..12da058
--- /dev/null
+++ b/src/api/oa/batch.js
@@ -0,0 +1,44 @@
+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'
+ })
+}
diff --git a/src/api/oa/equipment.js b/src/api/oa/equipment.js
new file mode 100644
index 0000000..064550d
--- /dev/null
+++ b/src/api/oa/equipment.js
@@ -0,0 +1,44 @@
+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'
+ })
+}
diff --git a/src/api/oa/peripheralUnit.js b/src/api/oa/peripheralUnit.js
new file mode 100644
index 0000000..bf77707
--- /dev/null
+++ b/src/api/oa/peripheralUnit.js
@@ -0,0 +1,44 @@
+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'
+ })
+}
diff --git a/src/components/FileUpload/index.vue b/src/components/FileUpload/index.vue
index a5971f2..606e65f 100644
--- a/src/components/FileUpload/index.vue
+++ b/src/components/FileUpload/index.vue
@@ -1,6 +1,7 @@
<template>
<div class="upload-file">
<el-upload
+ :disabled="disabled"
:action="uploadFileUrl"
:before-upload="handleBeforeUpload"
:file-list="fileList"
@@ -31,7 +32,7 @@
<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>
@@ -65,6 +66,10 @@
isShowTip: {
type: Boolean,
default: true
+ },
+ disabled: {
+ type: Boolean,
+ default: false
}
},
data() {
diff --git a/src/views/device/batch/index.vue b/src/views/device/batch/index.vue
new file mode 100644
index 0000000..0bde533
--- /dev/null
+++ b/src/views/device/batch/index.vue
@@ -0,0 +1,323 @@
+<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>
diff --git a/src/views/device/equipment/index.vue b/src/views/device/equipment/index.vue
new file mode 100644
index 0000000..051ade7
--- /dev/null
+++ b/src/views/device/equipment/index.vue
@@ -0,0 +1,516 @@
+<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="璇疯緭鍏ヤ富鏈篒D"
+ clearable
+ size="small"
+ @keyup.enter.native="handleQuery"
+ />
+ </el-form-item>
+ <el-form-item label="尾缃戠粶ID" prop="networkId">
+ <el-input
+ v-model="queryParams.networkId"
+ placeholder="璇疯緭鍏ノ茬綉缁淚D"
+ 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="璇疯緭鍏ヤ富鏈篒D"/>
+ </el-form-item>
+ <el-form-item label="尾缃戠粶ID" prop="networkId">
+ <el-input v-model="form.networkId" :disabled="disabled" placeholder="璇疯緭鍏ノ茬綉缁淚D"/>
+ </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>
diff --git a/src/views/device/peripheralUnit/index.vue b/src/views/device/peripheralUnit/index.vue
new file mode 100644
index 0000000..9e4c41b
--- /dev/null
+++ b/src/views/device/peripheralUnit/index.vue
@@ -0,0 +1,473 @@
+<template>
+ <div class="app-container">
+ <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px">
+ <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="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="鍘傚晢浠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
+ 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="澶栬浠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="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="澶栬浠g爜" 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="鍘傚晢浠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
+ 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: "澶栬浠g爜涓嶈兘涓虹┖", trigger: "blur"}
+ ],
+ name: [
+ {required: true, message: "澶栬鍚嶇О涓嶈兘涓虹┖", trigger: "blur"}
+ ],
+ model: [
+ {required: true, message: "瑙勬牸鍨嬪彿涓嶈兘涓虹┖", trigger: "blur"}
+ ],
+ manufacturer: [
+ {required: true, message: "鐢熶骇鍘傚晢涓嶈兘涓虹┖", trigger: "blur"}
+ ],
+ vendorCode: [
+ {required: true, message: "鍘傚晢浠g爜涓嶈兘涓虹┖", 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>
diff --git a/src/views/system/dept/index.vue b/src/views/system/dept/index.vue
index e215b1c..1cd40ea 100644
--- a/src/views/system/dept/index.vue
+++ b/src/views/system/dept/index.vue
@@ -1,17 +1,17 @@
<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"
@@ -35,7 +35,8 @@
size="mini"
@click="handleAdd"
v-hasPermi="['system:dept:add']"
- >鏂板</el-button>
+ >鏂板
+ </el-button>
</el-col>
<el-col :span="1.5">
<el-button
@@ -44,7 +45,8 @@
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>
@@ -57,13 +59,17 @@
: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="涓昏礋璐d汉" width="200"></el-table-column>
+ <el-table-column prop="leaderAssistantName" label="鍓礋璐d汉" 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>
@@ -75,16 +81,25 @@
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"
@@ -92,7 +107,8 @@
icon="el-icon-delete"
@click="handleDelete(scope.row)"
v-hasPermi="['system:dept:remove']"
- >鍒犻櫎</el-button>
+ >鍒犻櫎
+ </el-button>
</template>
</el-table-column>
</el-table>
@@ -102,44 +118,74 @@
<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">
- <treeselect v-model="form.parentId" :options="deptOptions" :normalizer="normalizer" placeholder="閫夋嫨涓婄骇閮ㄩ棬" />
+ <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 label="鏄剧ず鎺掑簭" prop="orderNum">
- <el-input-number v-model="form.orderNum" controls-position="right" :min="0" />
+ <el-input-number v-model="form.orderNum" controls-position="right" :min="0"/>
</el-form-item>
</el-col>
<el-col :span="12">
- <el-form-item label="璐熻矗浜�" prop="leader">
- <el-input v-model="form.leader" placeholder="璇疯緭鍏ヨ礋璐d汉" maxlength="20" />
+ <el-form-item label="涓昏礋璐d汉" prop="leader">
+ <el-select v-model="form.leader" placeholder="璇烽�夋嫨涓昏礋璐d汉" 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="鍓礋璐d汉" prop="leaderAssistant">
+ <el-select v-model="form.leaderAssistant" placeholder="璇烽�夋嫨鍓礋璐d汉" 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>
@@ -149,18 +195,39 @@
<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 {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";
export default {
name: "Dept",
dicts: ['sys_normal_disable'],
- components: { Treeselect },
+ components: {Treeselect},
data() {
return {
// 閬僵灞�
@@ -189,13 +256,16 @@
// 琛ㄥ崟鏍¢獙
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" }
+ {required: true, message: "鏄剧ず鎺掑簭涓嶈兘涓虹┖", trigger: "blur"}
],
email: [
{
@@ -211,6 +281,17 @@
trigger: "blur"
}
]
+ },
+ // 涓嬫媺鐢ㄦ埛
+ userList: [],
+ // 鎴愬憳鎶藉眽
+ drawer: false,
+ // 鎴愬憳琛ㄦ牸
+ userTable: [],
+ tableTotal: 0,
+ queryTable: {
+ pageNum: 1,
+ pageSize: 10
}
};
},
@@ -268,6 +349,7 @@
/** 鏂板鎸夐挳鎿嶄綔 */
handleAdd(row) {
this.reset();
+ this.getUserList()
if (row != undefined) {
this.form.parentId = row.deptId;
}
@@ -277,6 +359,12 @@
this.deptOptions = this.handleTree(response.data, "deptId");
});
},
+ // 鐢ㄦ埛涓嬫媺鍒楄〃
+ getUserList() {
+ listUser().then(res => {
+ this.userList = res.data
+ })
+ },
/** 灞曞紑/鎶樺彔鎿嶄綔 */
toggleExpandAll() {
this.refreshTable = false;
@@ -285,9 +373,19 @@
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;
@@ -298,7 +396,7 @@
});
},
/** 鎻愪氦鎸夐挳 */
- submitForm: function() {
+ submitForm: function () {
this.$refs["form"].validate(valid => {
if (valid) {
if (this.form.deptId != undefined) {
@@ -319,12 +417,13 @@
},
/** 鍒犻櫎鎸夐挳鎿嶄綔 */
handleDelete(row) {
- this.$modal.confirm('鏄惁纭鍒犻櫎鍚嶇О涓�"' + row.deptName + '"鐨勬暟鎹」锛�').then(function() {
+ this.$modal.confirm('鏄惁纭鍒犻櫎鍚嶇О涓�"' + row.deptName + '"鐨勬暟鎹」锛�').then(function () {
return delDept(row.deptId);
}).then(() => {
this.getList();
this.$modal.msgSuccess("鍒犻櫎鎴愬姛");
- }).catch(() => {});
+ }).catch(() => {
+ });
}
}
};
diff --git a/src/views/system/user/index.vue b/src/views/system/user/index.vue
index 1ff9b90..ae03d32 100644
--- a/src/views/system/user/index.vue
+++ b/src/views/system/user/index.vue
@@ -211,12 +211,24 @@
<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>
@@ -228,27 +240,20 @@
</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"
@@ -305,6 +310,23 @@
</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>
@@ -356,6 +378,18 @@
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,
@@ -430,8 +464,8 @@
// 琛ㄥ崟鏍¢獙
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" }
@@ -440,19 +474,30 @@
{ 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" }
]
}
};
--
Gitblit v1.9.1