【web】 设备接口对接

dev
Wangxin 9 months ago
parent 4c2b9bdb58
commit ff33642d41
  1. 3
      ALOps_sys_fe/alops-ui/src/api/device/deviceInformation.js
  2. 2
      ALOps_sys_fe/alops-ui/src/api/device/files.js
  3. 49
      ALOps_sys_fe/alops-ui/src/api/device/supplier.js
  4. 1
      ALOps_sys_fe/alops-ui/src/utils/request.js
  5. 8
      ALOps_sys_fe/alops-ui/src/utils/ruoyi.js
  6. 4
      ALOps_sys_fe/alops-ui/src/views/QandA/knowledge/index.vue
  7. 203
      ALOps_sys_fe/alops-ui/src/views/device/deviceInformation/index.vue
  8. 8
      ALOps_sys_fe/alops-ui/src/views/device/deviceManufacturer/index.vue
  9. 4
      ALOps_sys_fe/alops-ui/src/views/device/deviceSupplier/index.vue
  10. 10
      ALOps_sys_fe/alops-ui/src/views/device/deviceType/index.vue
  11. 186
      ALOps_sys_fe/alops-ui/src/views/device/files/index.vue
  12. 282
      ALOps_sys_fe/alops-ui/src/views/device/supplier/index.vue
  13. 4
      ALOps_sys_fe/alops-ui/src/views/inMonitoring/assessment/index.vue
  14. 4
      ALOps_sys_fe/alops-ui/src/views/inMonitoring/devicesState/index.vue
  15. 4
      ALOps_sys_fe/alops-ui/src/views/inMonitoring/earlyWarning/index.vue

@ -6,8 +6,7 @@ export function addRule(data) {
return request({ return request({
url: api + 'addRule', url: api + 'addRule',
method: 'post', method: 'post',
data: data, data: data
headers: { 'Content-Type': 'application/json' }
}) })
} }
// 查询规则 // 查询规则

@ -48,7 +48,7 @@ export function update(data) {
// 删除 // 删除
export function del(id) { export function del(id) {
return request({ return request({
url: api + 'delete' + id, url: api + id,
method: 'delete' method: 'delete'
}) })
} }

@ -0,0 +1,49 @@
import request from '@/utils/request'
const api = '/device/supplier/'
// 查询详细
export function getDict() {
return request({
url: '/sys_dict',
method: 'get'
})
}
// 查询列表
export function list(query) {
return request({
url: api + 'query',
method: 'get',
params: query
})
}
// 新增
export function add(data) {
return request({
url: api + 'add',
method: 'post',
data: data
})
}
// 修改
export function update(data) {
return request({
url: api + 'edit',
method: 'put',
data: data
})
}
// 删除
export function del(id) {
return request({
url: api + id,
method: 'delete'
})
}

@ -42,6 +42,7 @@ service.interceptors.request.use(config => {
data: typeof config.data === 'object' ? JSON.stringify(config.data) : config.data, data: typeof config.data === 'object' ? JSON.stringify(config.data) : config.data,
time: new Date().getTime() time: new Date().getTime()
} }
console.log("%c 🛑: requestObj ", "font-size:16px;background-color:#4408a2;color:white;", requestObj)
const requestSize = Object.keys(JSON.stringify(requestObj)).length // 请求数据大小 const requestSize = Object.keys(JSON.stringify(requestObj)).length // 请求数据大小
const limitSize = 5 * 1024 * 1024 // 限制存放数据5M const limitSize = 5 * 1024 * 1024 // 限制存放数据5M
if (requestSize >= limitSize) { if (requestSize >= limitSize) {

@ -52,16 +52,16 @@ export function resetForm(refName) {
} }
// 添加日期范围 // 添加日期范围
export function addDateRange(params, dateRange, propName) { export function addDateRange(params, dateRange, propNameStart, propNameEnd) {
let search = params let search = params
search.params = typeof (search.params) === 'object' && search.params !== null && !Array.isArray(search.params) ? search.params : {} search.params = typeof (search.params) === 'object' && search.params !== null && !Array.isArray(search.params) ? search.params : {}
dateRange = Array.isArray(dateRange) ? dateRange : [] dateRange = Array.isArray(dateRange) ? dateRange : []
if (typeof (propName) === 'undefined') { if (typeof (propNameStart) === 'undefined') {
search.params['beginTime'] = dateRange[0] search.params['beginTime'] = dateRange[0]
search.params['endTime'] = dateRange[1] search.params['endTime'] = dateRange[1]
} else { } else {
search.params['begin' + propName] = dateRange[0] search.params[propNameStart] = dateRange[0]
search.params['end' + propName] = dateRange[1] search.params[propNameEnd] = dateRange[1]
} }
return search return search
} }

@ -164,10 +164,6 @@ export default {
}, },
created() { created() {
this.getList() this.getList()
// this.getDeptTree()
this.getConfigKey("sys.user.initPassword").then(response => {
this.initPassword = response.msg
})
}, },
methods: { methods: {
/** 查询类型列表 */ /** 查询类型列表 */

@ -5,44 +5,51 @@
<!--用户数据--> <!--用户数据-->
<pane size="84"> <pane size="84">
<el-col> <el-col>
<el-form :model="queryParams" ref="form" size="small" :inline="true" v-show="showSearch" label-width="auto"> <el-form :model="queryParams" :rules="rules" ref="form" size="small" :inline="true" v-show="showSearch" label-width="auto">
<el-row> <el-row>
<el-form-item label="开启定时" prop="queryParams"> <el-form-item label="开启定时" prop="queryParams">
<el-radio-group v-model="queryParams.ruleType"> <el-radio-group v-model="queryParams.ruleType">
<el-radio :label="1">间隔采集</el-radio> <el-radio :label="0">间隔采集</el-radio>
<el-radio :label="2">固定时间采集</el-radio> <el-radio :label="1">固定时间采集</el-radio>
<el-radio :label="3">立即采集</el-radio> <el-radio :label="2">立即采集</el-radio>
</el-radio-group> </el-radio-group>
</el-form-item> </el-form-item>
</el-row> </el-row>
<el-row v-show="queryParams.ruleType == 1"> <el-row v-show="queryParams.ruleType == 0">
<el-col :span="24"> <el-col :span="24">
<el-form-item label="采集频率" prop="frequency"> <el-form-item label="采集频率" prop="frequency">
<el-input-number v-model="queryParams.frequency" controls-position="right" :min="1"></el-input-number> <el-input-number v-model="queryParams.frequency" controls-position="right" :min="1"></el-input-number>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="24"> <el-col :span="24">
<el-form-item label="采集时间限制"> <el-form-item label="采集时间限制" prop="dateRange">
<el-time-picker <el-date-picker
is-range v-model="queryParams.dateRange"
v-model="dateRange" @change="handleDateRangeChange"
value-format="yyyy-MM-dd hh:mm:ss"
type="daterange"
range-separator="至" range-separator="至"
start-placeholder="开始时间" start-placeholder="开始日期"
end-placeholder="结束时间" end-placeholder="结束日期"
placeholder="选择时间范围"> :picker-options="{ disabledDate: disablePastDate }"
</el-time-picker> >
</el-date-picker>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row v-show="queryParams.ruleType == 2"> <el-row v-show="queryParams.ruleType == 1">
<el-col :span="24"> <el-col :span="24">
<el-form-item label="采集时间限制"> <el-form-item label="采集时间限制">
<el-time-picker <el-date-picker
v-model="queryParams.gatherTime" v-model="queryParams.gatherTime"
:disabledDate="disablePastDate"
value-format="yyyy-MM-dd hh:mm:ss"
type="datetime"
:picker-options="{ disabledDate: disablePastDate }"
placeholder="任意时间点"> placeholder="任意时间点">
</el-time-picker> </el-date-picker>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
@ -69,7 +76,6 @@ import "splitpanes/dist/splitpanes.css"
export default { export default {
name: "User", name: "User",
dicts: ['sys_normal_disable', 'sys_user_sex'],
components: { Treeselect, Splitpanes, Pane }, components: { Treeselect, Splitpanes, Pane },
data() { data() {
return { return {
@ -93,13 +99,15 @@ export default {
title: "", title: "",
// //
open: false, open: false,
//
dateRange: [new Date(), new Date()],
// //
queryParams: { queryParams: {
ruleType: 1, ruleType: 0,
frequency: 1, frequency: 1,
gatherTime: null, gatherTime: null,
startTime: null,
endTime: null,
//
dateRange: [],
}, },
// //
@ -108,28 +116,9 @@ export default {
{ required: true, message: "用户名称不能为空", trigger: "blur" }, { required: true, message: "用户名称不能为空", trigger: "blur" },
{ min: 2, max: 20, message: '用户名称长度必须介于 2 和 20 之间', trigger: 'blur' } { min: 2, max: 20, message: '用户名称长度必须介于 2 和 20 之间', trigger: 'blur' }
], ],
nickName: [ dateRange: [
{ required: true, message: "用户昵称不能为空", trigger: "blur" } { required: true, message: "用户昵称不能为空", trigger: "blur" }
], ],
password: [
{ required: true, message: "用户密码不能为空", trigger: "blur" },
{ min: 5, max: 20, message: '用户密码长度必须介于 5 和 20 之间', trigger: 'blur' },
{ pattern: /^[^<>"'|\\]+$/, message: "不能包含非法字符:< > \" ' \\\ |", trigger: "blur" }
],
email: [
{
type: "email",
message: "请输入正确的邮箱地址",
trigger: ["blur", "change"]
}
],
phonenumber: [
{
pattern: /^1[3|4|5|6|7|8|9][0-9]\d{8}$/,
message: "请输入正确的手机号码",
trigger: "blur"
}
]
} }
} }
}, },
@ -141,96 +130,22 @@ export default {
}, },
created() { created() {
this.getList() this.getList()
// this.getDeptTree()
this.getConfigKey("sys.user.initPassword").then(response => {
this.initPassword = response.msg
})
}, },
methods: { methods: {
/** 查询用户列表 */ /** 查询用户列表 */
getList() { getList() {
this.loading = true this.loading = true
queryRule(this.addDateRange(this.queryParams, this.dateRange)).then(response => { queryRule().then(response => {
this.userList = response.rows this.queryParams = {...this.queryParams,...response.data}
this.total = response.total
this.loading = false this.loading = false
} }
) )
}, },
handleTimeChange(val) {
console.log('时间范围:', val); // val [start, end]
const [startTime, endTime] = val;
this.queryParams.startTime = startTime
this.queryParams.endTime = endTime
//
},
//
filterDisabledDept(deptList) {
return deptList.filter(dept => {
if (dept.disabled) {
return false
}
if (dept.children && dept.children.length) {
dept.children = this.filterDisabledDept(dept.children)
}
return true
})
},
//
filterNode(value, data) {
if (!value) return true
return data.label.indexOf(value) !== -1
},
//
handleStatusChange(row) {
let text = row.status === "0" ? "启用" : "停用"
this.$modal.confirm('确认要"' + text + '""' + row.userName + '"用户吗?').then(function() {
return changeUserStatus(row.userId, row.status)
}).then(() => {
this.$modal.msgSuccess(text + "成功")
}).catch(function() {
row.status = row.status === "0" ? "1" : "0"
})
},
//
cancel() {
this.open = false
this.reset()
},
//
reset() {
this.form = {
userId: undefined,
deptId: undefined,
userName: undefined,
nickName: undefined,
password: undefined,
phonenumber: undefined,
email: undefined,
sex: undefined,
status: "0",
remark: undefined,
postIds: [],
roleIds: []
}
this.resetForm("form")
},
/** 新增按钮操作 */
handleAdd() {
this.reset()
getUser().then(response => {
this.postOptions = response.posts
this.roleOptions = response.roles
this.open = true
this.title = "添加用户"
this.form.password = this.initPassword
})
},
/** 提交按钮 */ /** 提交按钮 */
submitForm: function() { submitForm: function() {
this.$refs["form"].validate(valid => { this.$refs["form"].validate(valid => {
if (valid) { if (valid) {
addRule(this.form).then(response => { addRule(this.queryParams).then(response => {
this.$modal.msgSuccess("新增成功") this.$modal.msgSuccess("新增成功")
this.open = false this.open = false
this.getList() this.getList()
@ -238,47 +153,21 @@ export default {
} }
}) })
}, },
/** 删除按钮操作 */ handleDateRangeChange(value) {
handleDelete(row) { console.log("%c 🐁: handleDateRangeChange -> value ", "font-size:16px;background-color:#dbe986;color:black;", value)
const userIds = row.userId || this.ids this.queryParams.startTime = value[0]
this.$modal.confirm('是否确认删除用户编号为"' + userIds + '"的数据项?').then(function() { this.queryParams.endTime = value[1]
return delUser(userIds)
}).then(() => {
this.getList()
this.$modal.msgSuccess("删除成功")
}).catch(() => {})
},
/** 导出按钮操作 */
handleExport() {
this.download('system/user/export', {
...this.queryParams
}, `user_${new Date().getTime()}.xlsx`)
},
/** 导入按钮操作 */
handleImport() {
this.upload.title = "用户导入"
this.upload.open = true
},
/** 下载模板操作 */
importTemplate() {
this.download('system/user/importTemplate', {
}, `user_template_${new Date().getTime()}.xlsx`)
},
//
handleFileUploadProgress(event, file, fileList) {
this.upload.isUploading = true
},
//
handleFileSuccess(response, file, fileList) {
this.upload.open = false
this.upload.isUploading = false
this.$refs.upload.clearFiles()
this.$alert("<div style='overflow: auto;overflow-x: hidden;max-height: 70vh;padding: 10px 20px 0;'>" + response.msg + "</div>", "导入结果", { dangerouslyUseHTMLString: true })
this.getList()
}, },
//
submitFileForm() { disablePastDate(time) {
this.$refs.upload.submit() //
const today = new Date();
// 00:00:00
today.setHours(0, 0, 0, 0);
// 00:00:00
console.log("%c 🐇: disablePastDate -> time.getTime() < today.getTime() ", "font-size:16px;background-color:#c5c908;color:black;", time.getTime() , today.getTime(), time.getTime() < today.getTime())
return time.getTime() < today.getTime();
} }
} }
} }

@ -96,8 +96,8 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="24"> <el-col :span="24">
<el-form-item label="介绍" prop="description"> <el-form-item label="描述" prop="description">
<el-input v-model="form.description" placeholder="请输入介绍" type="textarea" :rows="3" /> <el-input v-model="form.description" placeholder="请输入描述" type="textarea" :rows="3" />
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
@ -240,10 +240,6 @@ export default {
}, },
created() { created() {
this.getList() this.getList()
// this.getDeptTree()
this.getConfigKey("sys.user.initPassword").then(response => {
this.initPassword = response.msg
})
}, },
methods: { methods: {
/** 查询用户列表 */ /** 查询用户列表 */

@ -221,10 +221,6 @@ export default {
}, },
created() { created() {
this.getList() this.getList()
// this.getDeptTree()
this.getConfigKey("sys.user.initPassword").then(response => {
this.initPassword = response.msg
})
}, },
methods: { methods: {
/** 查询用户列表 */ /** 查询用户列表 */

@ -62,7 +62,6 @@
<el-dialog :title="title" :visible.sync="open" width="760px" append-to-body :destroy-on-close="true"> <el-dialog :title="title" :visible.sync="open" width="760px" append-to-body :destroy-on-close="true">
<el-form ref="form" :model="form" :rules="rules" label-width="90px"> <el-form ref="form" :model="form" :rules="rules" label-width="90px">
<el-row :gutter="20"> <el-row :gutter="20">
<!-- 类型昵称 + 手机号码 -->
<el-col :span="12"> <el-col :span="12">
<el-form-item label="设备名称" prop="name"> <el-form-item label="设备名称" prop="name">
<el-input v-model="form.name" placeholder="请输入类型昵称" maxlength="30" /> <el-input v-model="form.name" placeholder="请输入类型昵称" maxlength="30" />
@ -188,10 +187,6 @@ export default {
}, },
created() { created() {
this.getList() this.getList()
// this.getDeptTree()
this.getConfigKey("sys.user.initPassword").then(response => {
this.initPassword = response.msg
})
}, },
methods: { methods: {
/** 查询类型列表 */ /** 查询类型列表 */
@ -207,8 +202,6 @@ export default {
upImage(fileList){ upImage(fileList){
console.log(fileList) console.log(fileList)
this.form.image = fileList this.form.image = fileList
}, },
// //
cancel() { cancel() {
@ -234,10 +227,7 @@ export default {
}, },
/** 重置按钮操作 */ /** 重置按钮操作 */
resetQuery() { resetQuery() {
this.dateRange = []
this.resetForm("queryForm") this.resetForm("queryForm")
this.queryParams.deptId = undefined
this.$refs.tree.setCurrentKey(null)
this.handleQuery() this.handleQuery()
}, },
// //

@ -6,27 +6,19 @@
<pane size="84"> <pane size="84">
<el-col> <el-col>
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px"> <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
<el-form-item label="安装日期">
<el-date-picker v-model="dateRange" style="width: 240px" value-format="yyyy-MM-dd hh:mm:ss" type="datetimerange" range-separator="-" start-placeholder="开始日期" end-placeholder="结束日期"></el-date-picker>
</el-form-item>
<el-form-item label="设备名称" prop="name"> <el-form-item label="设备名称" prop="name">
<el-input v-model="queryParams.name" placeholder="请输入设备名称" clearable style="width: 240px" @keyup.enter.native="handleQuery" /> <el-input v-model="queryParams.name" placeholder="请输入设备名称" clearable style="width: 240px" @keyup.enter.native="handleQuery" />
</el-form-item> </el-form-item>
<el-form-item label="安装位置" prop="location">
<el-input v-model="queryParams.phonenumber" placeholder="请输入安装位置" clearable style="width: 240px" @keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item label="设备类型" prop="phonenumber">
<el-input v-model="queryParams.phonenumber" placeholder="请输入设备类型" clearable style="width: 240px" @keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item label="安装日期">
<el-date-picker v-model="dateRange" style="width: 240px" value-format="yyyy-MM-dd" type="daterange" range-separator="-" start-placeholder="开始日期" end-placeholder="结束日期"></el-date-picker>
</el-form-item>
<el-form-item label="状态" prop="status"> <el-form-item label="状态" prop="status">
<el-select v-model="queryParams.status" placeholder="启用状态" clearable style="width: 240px"> <el-select v-model="queryParams.status" placeholder="启用状态" clearable style="width: 240px">
<el-option v-for="dict in dict.type.sys_normal_disable" :key="dict.value" :label="dict.label" :value="dict.value" /> <el-option v-for="dict in dict.type.device_disable" :key="dict.value" :label="dict.label" :value="dict.value" />
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="设备级别" prop="status"> <el-form-item label="安装位置" prop="location">
<el-select v-model="queryParams.status" placeholder="设备级别" clearable style="width: 240px"> <el-input v-model="queryParams.phonenumber" placeholder="请输入安装位置" clearable style="width: 240px" @keyup.enter.native="handleQuery" />
<el-option v-for="dict in dict.type.sys_normal_disable" :key="dict.value" :label="dict.label" :value="dict.value" />
</el-select>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button> <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
@ -53,46 +45,43 @@
width="60" width="60"
type="index" type="index"
></el-table-column> ></el-table-column>
<el-table-column label="设备编号" align="center" key="id" prop="id" /> <el-table-column label="设备ID" align="center" key="equNumber" prop="equNumber" />
<el-table-column label="设备名称" align="center" key="name" prop="name" :show-overflow-tooltip="true" /> <el-table-column label="设备名称" align="center" key="name" prop="name" :show-overflow-tooltip="true" />
<el-table-column label="设备版本" align="center" key="version" prop="version" :show-overflow-tooltip="true" /> <el-table-column label="设备版本" align="center" key="version" prop="version" :show-overflow-tooltip="true" />
<el-table-column label="设备类型" align="center" key="equType" prop="EquType" :show-overflow-tooltip="true" /> <el-table-column label="设备类型" align="center" key="equType" prop="equType" :show-overflow-tooltip="true" />
<el-table-column label="设备级别" align="center" prop="phonenumber" width="120" /> <el-table-column label="设备级别" align="center" key="deviceLevel" prop="deviceLevel" width="120" />
<el-table-column label="启用状态" align="center" key="status"> <el-table-column label="启用状态" align="center" key="status">
<template slot-scope="scope"> <template slot-scope="scope">
<el-switch v-model="scope.row.status" active-value="0" inactive-value="1" @change="handleStatusChange(scope.row)"></el-switch> <span>{{ scope.row.status ? '正常' : '停用' }}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="带外管理IP" align="center" key="Ip" prop="Ip" width="120" /> <el-table-column label="带外管理IP" align="center" key="ip" prop="ip" width="120" />
<el-table-column label="设备厂商" align="center" key="Manufacture" prop="Manufacture" width="120" />
<el-table-column label="安装位置" align="center" key="location" prop="Location" width="120" /> <el-table-column label="安装位置" align="center" key="location" prop="Location" width="120" />
<el-table-column label="安装时间" align="center" prop="InstallDate" width="160"> <el-table-column label="安装时间" align="center" prop="installDate" width="160">
<template slot-scope="scope"> <template slot-scope="scope">
<span>{{ parseTime(scope.row.InstallDate) }}</span> <span>{{ parseTime(scope.row.installDate) }}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="设备管理员" align="center" prop="inCharge" width="120" />
<el-table-column label="设备厂商" align="center" key="manufacture" prop="manufacture" width="120" />
<el-table-column label="设备供应商" align="center" key="supplierName" prop="supplierName" width="120" />
<el-table-column label="设备管理员" align="center" key="inCharge" prop="inCharge" width="120" />
<el-table-column label="预计年限" align="center" key="lifeCycle" prop="lifeCycle" width="120" /> <el-table-column label="预计年限" align="center" key="lifeCycle" prop="lifeCycle" width="120" />
<el-table-column label="服役年限" align="center" key="serviceTime" prop="serviceTime" width="120" /> <el-table-column label="服役年限" align="center" key="serviceTime" prop="serviceTime" width="120" />
<el-table-column label="质保时间" align="center" key="warranty" prop="warranty" width="120" /> <el-table-column label="质保时间" align="center" key="warranty" prop="warranty" width="120" />
<el-table-column label="累计预警次数" align="center" key="failureFrequency" prop="failureFrequency" width="120" /> <el-table-column label="设备图片" align="center" key="image" prop="image" :show-overflow-tooltip="true" >
<el-table-column label="累计维修次数" align="center" key="repairFrequency" prop="repairFrequency" width="120" />
<el-table-column label="累计维修金额" align="center" key="repairCost" prop="repairCost" width="120" />
<el-table-column label="设备添加人" align="center" key="createBy" prop="createBy" width="120" />
<el-table-column label="添加时间" align="center" prop="createDate" width="160">
<template slot-scope="scope"> <template slot-scope="scope">
<span>{{ parseTime(scope.row.createTime) }}</span> <ImagePreview :src="scope.row.image"/>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="修改人" align="center" prop="UpdateBy" width="120" /> <el-table-column label="设备添加人" align="center" key="createBy" prop="createBy" width="120" />
<el-table-column label="修改时间" align="center" prop="createTime" width="160"> <el-table-column label="添加日期" align="center" prop="createDate" width="160">
<template slot-scope="scope"> <template slot-scope="scope">
<span>{{ parseTime(scope.row.createTime) }}</span> <span>{{ parseTime(scope.row.createDate) }}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="操作" align="center" width="160" class-name="small-padding fixed-width"> <el-table-column label="操作" align="center" width="160" class-name="small-padding fixed-width">
<template slot-scope="scope" v-if="scope.row.id !== 1"> <template slot-scope="scope">
<el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)" v-hasPermi="['device:files:edit']">修改</el-button> <el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)" v-hasPermi="['device:files:edit']">修改</el-button>
<el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)" v-hasPermi="['device:files:remove']">删除</el-button> <el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)" v-hasPermi="['device:files:remove']">删除</el-button>
</template> </template>
@ -109,8 +98,8 @@
<el-form ref="form" :model="form" :rules="rules" label-width="100px"> <el-form ref="form" :model="form" :rules="rules" label-width="100px">
<el-row :gutter="20"> <el-row :gutter="20">
<el-col :span="12"> <el-col :span="12">
<el-form-item label="设备编号" prop="id"> <el-form-item label="设备编号" prop="equNumber">
<el-input v-model="form.id" placeholder="请输入设备编号" maxlength="30" /> <el-input v-model="form.equNumber" placeholder="请输入设备名称" maxlength="30" />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
@ -129,8 +118,8 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="设备级别" prop="equLevel"> <el-form-item label="设备级别" prop="deviceLevel">
<el-input v-model="form.equLevel" placeholder="请输入设备级别" maxlength="30" /> <el-input v-model="form.deviceLevel" placeholder="请输入设备级别" maxlength="30" />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
@ -169,10 +158,9 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<!-- 备注单独一行 -->
<el-col :span="24"> <el-col :span="24">
<el-form-item label="备注"> <el-form-item label="设备图片" prop="image">
<el-input v-model="form.remark" type="textarea" :rows="3" placeholder="请输入内容" /> <ImageUpload @input="upImage" :value="form.image"/>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
@ -217,7 +205,7 @@ import "splitpanes/dist/splitpanes.css"
export default { export default {
name: "User", name: "User",
dicts: ['sys_normal_disable', 'sys_user_sex'], dicts: ['device_disable', 'sys_user_sex'],
components: { Treeselect, Splitpanes, Pane }, components: { Treeselect, Splitpanes, Pane },
data() { data() {
return { return {
@ -279,15 +267,12 @@ export default {
pageNum: 1, pageNum: 1,
pageSize: 10, pageSize: 10,
name: undefined, name: undefined,
phonenumber: undefined, status: undefined
status: undefined,
deptId: undefined
}, },
// //
rules: { rules: {
name: [ name: [
{ required: true, message: "设备名称不能为空", trigger: "blur" }, { required: true, message: "设备名称不能为空", trigger: "blur" },
{ min: 2, max: 20, message: '设备名称长度必须介于 2 和 20 之间', trigger: 'blur' }
], ],
nickName: [ nickName: [
{ required: true, message: "设备昵称不能为空", trigger: "blur" } { required: true, message: "设备昵称不能为空", trigger: "blur" }
@ -303,68 +288,21 @@ export default {
}, },
created() { created() {
this.getList() this.getList()
// this.getDeptTree()
this.getConfigKey("sys.user.initPassword").then(response => {
this.initPassword = response.msg
})
}, },
methods: { methods: {
/** 查询设备列表 */
getDicts() {
getDict().then(response => {
console.log("%c 🗝: getDict -> response ", "font-size:16px;background-color:#796b0d;color:white;", response)
}
)
},
/** 查询设备列表 */ /** 查询设备列表 */
getList() { getList() {
this.loading = true this.loading = true
list(this.addDateRange(this.queryParams, this.dateRange)).then(response => { list({minTime:this.dateRange[0],maxTime:this.dateRange[1],...this.queryParams}).then(response => {
this.dataList = response.rows this.dataList = response.rows
this.total = response.total this.total = response.total
this.loading = false this.loading = false
} }
) )
}, },
// /** */ upImage(fileList){
// getDeptTree() { console.log(fileList)
// deptTreeSelect().then(response => { this.form.image = fileList
// this.deptOptions = response.data
// this.enabledDeptOptions = this.filterDisabledDept(JSON.parse(JSON.stringify(response.data)))
// })
// },
//
filterDisabledDept(deptList) {
return deptList.filter(dept => {
if (dept.disabled) {
return false
}
if (dept.children && dept.children.length) {
dept.children = this.filterDisabledDept(dept.children)
}
return true
})
},
//
filterNode(value, data) {
if (!value) return true
return data.label.indexOf(value) !== -1
},
//
handleNodeClick(data) {
this.queryParams.deptId = data.id
this.handleQuery()
},
//
handleStatusChange(row) {
let text = row.status === "0" ? "启用" : "停用"
this.$modal.confirm('确认要"' + text + '""' + row.name + '"设备吗?').then(function() {
return changeUserStatus(row.id, row.status)
}).then(() => {
this.$modal.msgSuccess(text + "成功")
}).catch(function() {
row.status = row.status === "0" ? "1" : "0"
})
}, },
// //
cancel() { cancel() {
@ -397,11 +335,8 @@ export default {
/** 重置按钮操作 */ /** 重置按钮操作 */
resetQuery() { resetQuery() {
this.dateRange = [] this.dateRange = []
// this.resetForm("queryForm") this.resetForm("queryForm")
// this.queryParams.deptId = undefined this.handleQuery()
// this.$refs.tree.setCurrentKey(null)
// this.handleQuery()
this.getDicts()
}, },
// //
handleSelectionChange(selection) { handleSelectionChange(selection) {
@ -412,46 +347,15 @@ export default {
/** 新增按钮操作 */ /** 新增按钮操作 */
handleAdd() { handleAdd() {
this.reset() this.reset()
// getInfo().then(response => {
// this.postOptions = response.posts
// this.roleOptions = response.roles
// })
this.open = true this.open = true
this.title = "添加设备" this.title = "添加设备"
}, },
/** 修改按钮操作 */ /** 修改按钮操作 */
handleUpdate(row) { handleUpdate(row) {
this.reset() this.reset()
const id = row.id || this.ids this.form = {...row}
getInfo(id).then(response => { this.open = true
this.form = response.data this.title = "修改"
this.postOptions = response.posts
this.roleOptions = response.roles
this.$set(this.form, "postIds", response.postIds)
this.$set(this.form, "roleIds", response.roleIds)
this.open = true
this.title = "修改设备"
this.form.password = ""
})
},
/** 重置密码按钮操作 */
handleResetPwd(row) {
this.$prompt('请输入"' + row.name + '"的新密码', "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
closeOnClickModal: false,
inputPattern: /^.{5,20}$/,
inputErrorMessage: "设备密码长度必须介于 5 和 20 之间",
inputValidator: (value) => {
if (/<|>|"|'|\||\\/.test(value)) {
return "不能包含非法字符:< > \" ' \\\ |"
}
},
}).then(({ value }) => {
resetUserPwd(row.id, value).then(response => {
this.$modal.msgSuccess("修改成功,新密码是:" + value)
})
}).catch(() => {})
}, },
/** 提交按钮 */ /** 提交按钮 */
submitForm: function() { submitForm: function() {
@ -481,19 +385,13 @@ export default {
/** 删除按钮操作 */ /** 删除按钮操作 */
handleDelete(row) { handleDelete(row) {
const Ids = row.id || this.ids const Ids = row.id || this.ids
this.$modal.confirm('是否确认删除设备编号为"' + Ids + '"的数据项?').then(function() { this.$modal.confirm('是否确认删除设备ID为"' + Ids + '"的数据项?').then(function() {
return del(Ids) return del(Ids)
}).then(() => { }).then(() => {
this.getList() this.getList()
this.$modal.msgSuccess("删除成功") this.$modal.msgSuccess("删除成功")
}).catch(() => {}) }).catch(() => {})
}, },
/** 导出按钮操作 */
handleExport() {
this.download('system/user/export', {
...this.queryParams
}, `user_${new Date().getTime()}.xlsx`)
},
/** 导入按钮操作 */ /** 导入按钮操作 */
handleImport() { handleImport() {
this.upload.title = "设备导入" this.upload.title = "设备导入"

@ -2,18 +2,14 @@
<div class="app-container"> <div class="app-container">
<el-row :gutter="20"> <el-row :gutter="20">
<splitpanes :horizontal="this.$store.getters.device === 'mobile'" class="default-theme"> <splitpanes :horizontal="this.$store.getters.device === 'mobile'" class="default-theme">
<!--厂商信息-->
<!--类型类型管理-->
<pane size="84"> <pane size="84">
<el-col> <el-col>
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px"> <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
<el-form-item label="厂商名称" prop="name"> <el-form-item label="类型名称" prop="name">
<el-input v-model="queryParams.name" placeholder="请输入厂商名称" clearable style="width: 240px" @keyup.enter.native="handleQuery" /> <el-input v-model="queryParams.name" placeholder="请输入类型名称" clearable style="width: 240px" @keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item label="联系人" prop="contactBy">
<el-input v-model="queryParams.contactBy" placeholder="请输入联系人" clearable style="width: 240px" @keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item label="联系电话" prop="contactWay">
<el-input v-model="queryParams.contactWay" placeholder="请输入联系电话" clearable style="width: 240px" @keyup.enter.native="handleQuery" />
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button> <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
@ -23,36 +19,38 @@
<el-row :gutter="10" class="mb8"> <el-row :gutter="10" class="mb8">
<el-col :span="1.5"> <el-col :span="1.5">
<el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleAdd" v-hasPermi="['device:deviceManufacturer:add']">新增</el-button> <el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleAdd" v-hasPermi="['device:deviceType:add']">新增</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="['device:deviceManufacturer:remove']">删除</el-button>
</el-col>
<el-col :span="1.5">
<el-button type="info" plain icon="el-icon-upload2" size="mini" @click="handleImport" v-hasPermi="['device:deviceManufacturer:import']">导入</el-button>
</el-col>
<el-col :span="1.5">
<el-button type="warning" plain icon="el-icon-download" size="mini" @click="handleExport" v-hasPermi="['device:deviceManufacturer:export']">导出</el-button>
</el-col> </el-col>
<!-- <right-toolbar :showSearch.sync="showSearch" @queryTable="getList" :columns="columns"></right-toolbar> -->
</el-row> </el-row>
<el-table v-loading="loading" :data="userList" @selection-change="handleSelectionChange"> <el-table v-loading="loading" :data="userList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="50" align="center" /> <el-table-column type="selection" width="50" align="center" />
<el-table-column label="ID" align="center" key="Id" prop="Id" /> <el-table-column
<el-table-column label="厂商名称" align="center" key="name" prop="name" width="120" /> label="序号"
width="60"
type="index"
></el-table-column>
<el-table-column label="供应商名称" align="center" key="name" prop="name" width="160" :show-overflow-tooltip="true" />
<el-table-column label="联系人" align="center" key="contactBy" prop="contactBy" width="120" /> <el-table-column label="联系人" align="center" key="contactBy" prop="contactBy" width="120" />
<el-table-column label="联系方式" align="center" key="contactWay" prop="contactWay" width="120" /> <el-table-column label="联系方式" align="center" key="contactWay" prop="contactWay" width="120" />
<el-table-column label="创建人" align="center" key="CreateBy" prop="CreateBy" width="120" /> <el-table-column label="描述" align="center" key="description" prop="description" width="120" />
<el-table-column label="创建日期" align="center" prop="CreateDate" width="160"> <el-table-column label="创建人" align="center" key="createBy" prop="createBy" width="120" />
<el-table-column label="创建日期" align="center" prop="createTime" width="160">
<template slot-scope="scope"> <template slot-scope="scope">
<span>{{ parseTime(scope.row.CreateDate) }}</span> <span>{{ parseTime(scope.row.createTime) }}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="状态" align="center" key="Status" prop="Status" width="120" /> <el-table-column label="状态" align="center" key="status" prop="status" width="120" >
<el-table-column label="操作" align="center" width="160" class-name="small-padding fixed-width">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)" v-hasPermi="['device:deviceManufacturer:edit']">修改</el-button>
<el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)" v-hasPermi="['device:deviceManufacturer:remove']">删除</el-button> <span>{{ scope.row.status ? '正常' : '停用' }}</span>
</template>
</el-table-column>
<el-table-column label="操作" align="center" width="160" class-name="small-padding fixed-width">
<template slot-scope="scope" v-if="scope.row.id !== 1">
<el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)" v-hasPermi="['device:deviceType:edit']">修改</el-button>
<el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)" v-hasPermi="['device:deviceType:remove']">删除</el-button>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
@ -63,17 +61,17 @@
</splitpanes> </splitpanes>
</el-row> </el-row>
<el-dialog :title="title" :visible.sync="open" width="760px" append-to-body> <el-dialog :title="title" :visible.sync="open" width="760px" append-to-body :destroy-on-close="true">
<el-form ref="form" :model="form" :rules="rules" label-width="90px"> <el-form ref="form" :model="form" :rules="rules" label-width="100px">
<el-row :gutter="20"> <el-row :gutter="20">
<el-col :span="12"> <el-col :span="12">
<el-form-item label="商名称" prop="name"> <el-form-item label="供应商名称" prop="name">
<el-input v-model="form.name" placeholder="请输入用户昵称" maxlength="30" /> <el-input v-model="form.name" placeholder="请输入联系人" maxlength="30" />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="联系人" prop="contactBy"> <el-form-item label="联系人" prop="contactBy">
<el-input v-model="form.contactBy" placeholder="请输入手机号码" maxlength="30" /> <el-input v-model="form.contactBy" placeholder="请输入联系人" maxlength="30" />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
@ -81,7 +79,21 @@
<el-input v-model="form.contactWay" placeholder="请输入手机号码" maxlength="11" /> <el-input v-model="form.contactWay" placeholder="请输入手机号码" maxlength="11" />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12">
<el-form-item label="状态" prop="status">
<el-select v-model="form.status" placeholder="启用状态" clearable>
<el-option v-for="dict in statusSelections" :key="dict.value" :label="dict.label" :value="dict.value" />
</el-select>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="描述" prop="description">
<el-input v-model="form.description" placeholder="请输入描述" type="textarea" :rows="3" />
</el-form-item>
</el-col>
</el-row> </el-row>
</el-form> </el-form>
<span slot="footer" class="dialog-footer"> <span slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button> <el-button type="primary" @click="submitForm"> </el-button>
@ -89,30 +101,11 @@
</span> </span>
</el-dialog> </el-dialog>
<!-- 用户导入对话框 -->
<el-dialog :title="upload.title" :visible.sync="upload.open" width="400px" append-to-body>
<el-upload ref="upload" :limit="1" accept=".xlsx, .xls" :headers="upload.headers" :action="upload.url + '?updateSupport=' + upload.updateSupport" :disabled="upload.isUploading" :on-progress="handleFileUploadProgress" :on-success="handleFileSuccess" :auto-upload="false" drag>
<i class="el-icon-upload"></i>
<div class="el-upload__text">将文件拖到此处<em>点击上传</em></div>
<div class="el-upload__tip text-center" slot="tip">
<div class="el-upload__tip" slot="tip">
<el-checkbox v-model="upload.updateSupport" />是否更新已经存在的厂商信息
</div>
<span>仅允许导入xlsxlsx格式文件</span>
<el-link type="primary" :underline="false" style="font-size: 12px; vertical-align: baseline" @click="importTemplate">下载模板</el-link>
</div>
</el-upload>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitFileForm"> </el-button>
<el-button @click="upload.open = false"> </el-button>
</div>
</el-dialog>
</div> </div>
</template> </template>
<script> <script>
import { list, del, add, update, resetUserPwd, changeUserStatus } from "@/api/device/deviceManufacturer" import { list, del, add, update } from "@/api/device/supplier"
import { getToken } from "@/utils/auth" import { getToken } from "@/utils/auth"
import Treeselect from "@riophae/vue-treeselect" import Treeselect from "@riophae/vue-treeselect"
import "@riophae/vue-treeselect/dist/vue-treeselect.css" import "@riophae/vue-treeselect/dist/vue-treeselect.css"
@ -125,6 +118,7 @@ export default {
components: { Treeselect, Splitpanes, Pane }, components: { Treeselect, Splitpanes, Pane },
data() { data() {
return { return {
appBase:process.env.VUE_APP_BASE_API,
// //
loading: true, loading: true,
// //
@ -137,7 +131,7 @@ export default {
showSearch: true, showSearch: true,
// //
total: 0, total: 0,
// //
userList: null, userList: null,
// //
title: "", title: "",
@ -159,19 +153,23 @@ export default {
roleOptions: [], roleOptions: [],
// //
form: {}, form: {},
statusSelections: [
{ label: "正常", value: 1 },
{ label: "停用", value: 0 }
],
defaultProps: { defaultProps: {
children: "children", children: "children",
label: "label" label: "label"
}, },
// //
upload: { upload: {
// //
open: false, open: false,
// //
title: "", title: "",
// //
isUploading: false, isUploading: false,
// //
updateSupport: 0, updateSupport: 0,
// //
headers: { Authorization: "Bearer " + getToken() }, headers: { Authorization: "Bearer " + getToken() },
@ -182,39 +180,29 @@ export default {
queryParams: { queryParams: {
pageNum: 1, pageNum: 1,
pageSize: 10, pageSize: 10,
name: undefined, name: undefined
contactBy: undefined,
status: undefined,
deptId: undefined
}, },
// //
rules: { rules: {
name: [ name: [
{ required: true, message: "用户名称不能为空", trigger: "blur" }, { required: true, message: "供应商名称不能为空", trigger: "blur" },
{ min: 2, max: 20, message: '用户名称长度必须介于 2 和 20 之间', trigger: 'blur' } { min: 2, max: 20, message: '供应商名称长度必须介于 2 和 20 之间', trigger: 'blur' }
],
nickName: [
{ required: true, message: "用户昵称不能为空", trigger: "blur" }
],
password: [
{ required: true, message: "用户密码不能为空", trigger: "blur" },
{ min: 5, max: 20, message: '用户密码长度必须介于 5 和 20 之间', trigger: 'blur' },
{ pattern: /^[^<>"'|\\]+$/, message: "不能包含非法字符:< > \" ' \\\ |", trigger: "blur" }
],
email: [
{
type: "email",
message: "请输入正确的邮箱地址",
trigger: ["blur", "change"]
}
], ],
contactBy: [ contactBy: [
{ required: true, message: "联系人不能为空", trigger: "blur" }
],
contactWay: [
{ required: true, message: "联系方式不能为空", trigger: "blur" },
{ {
pattern: /^1[3|4|5|6|7|8|9][0-9]\d{8}$/, pattern: /^1[3|4|5|6|7|8|9][0-9]\d{8}$/,
message: "请输入正确的手机号码", message: "请输入正确的手机号码",
trigger: "blur" trigger: "blur"
} }
] ],
status: [
{ required: true, message: "状态不能为空", trigger: "blur" }
],
} }
} }
}, },
@ -226,13 +214,9 @@ export default {
}, },
created() { created() {
this.getList() this.getList()
// this.getDeptTree()
this.getConfigKey("sys.user.initPassword").then(response => {
this.initPassword = response.msg
})
}, },
methods: { methods: {
/** 查询用户列表 */ /** 查询类型列表 */
getList() { getList() {
this.loading = true this.loading = true
list(this.addDateRange(this.queryParams, this.dateRange)).then(response => { list(this.addDateRange(this.queryParams, this.dateRange)).then(response => {
@ -242,45 +226,11 @@ export default {
} }
) )
}, },
// /** */ upImage(fileList){
// getDeptTree() { console.log(fileList)
// deptTreeSelect().then(response => { this.form.image = fileList
// this.deptOptions = response.data
// this.enabledDeptOptions = this.filterDisabledDept(JSON.parse(JSON.stringify(response.data)))
// })
// },
//
filterDisabledDept(deptList) {
return deptList.filter(dept => {
if (dept.disabled) {
return false
}
if (dept.children && dept.children.length) {
dept.children = this.filterDisabledDept(dept.children)
}
return true
})
},
//
filterNode(value, data) {
if (!value) return true
return data.label.indexOf(value) !== -1
},
//
handleNodeClick(data) {
this.queryParams.deptId = data.id
this.handleQuery()
},
//
handleStatusChange(row) {
let text = row.status === "0" ? "启用" : "停用"
this.$modal.confirm('确认要"' + text + '""' + row.name + '"用户吗?').then(function() {
return changeUserStatus(row.Id, row.status)
}).then(() => {
this.$modal.msgSuccess(text + "成功")
}).catch(function() {
row.status = row.status === "0" ? "1" : "0"
})
}, },
// //
cancel() { cancel() {
@ -290,18 +240,12 @@ export default {
// //
reset() { reset() {
this.form = { this.form = {
Id: undefined, id: undefined,
deptId: undefined,
name: undefined, name: undefined,
nickName: undefined, description: undefined,
password: undefined, createBy: undefined,
contactBy: undefined, image: undefined,
email: undefined, createDate: undefined
sex: undefined,
status: "0",
remark: undefined,
postIds: [],
roleIds: []
} }
this.resetForm("form") this.resetForm("form")
}, },
@ -320,78 +264,28 @@ export default {
}, },
// //
handleSelectionChange(selection) { handleSelectionChange(selection) {
this.ids = selection.map(item => item.Id) this.ids = selection.map(item => item.id)
this.single = selection.length != 1 this.single = selection.length != 1
this.multiple = !selection.length this.multiple = !selection.length
}, },
//
handleCommand(command, row) {
switch (command) {
case "handleResetPwd":
this.handleResetPwd(row)
break
case "handleAuthRole":
this.handleAuthRole(row)
break
default:
break
}
},
/** 新增按钮操作 */ /** 新增按钮操作 */
handleAdd() { handleAdd() {
this.reset() this.reset()
getUser().then(response => { this.open = true
this.postOptions = response.posts
this.roleOptions = response.roles
this.open = true
this.title = "添加用户"
this.form.password = this.initPassword
})
}, },
/** 修改按钮操作 */ /** 修改按钮操作 */
handleUpdate(row) { handleUpdate(row) {
this.reset() this.reset()
const Id = row.Id || this.ids const id = row.id || this.ids
getUser(Id).then(response => {
this.form = response.data
this.postOptions = response.posts
this.roleOptions = response.roles
this.$set(this.form, "postIds", response.postIds)
this.$set(this.form, "roleIds", response.roleIds)
this.open = true this.open = true
this.title = "修改用户" this.title = "修改类型"
this.form.password = "" this.form = {...row, image: row.image}
})
},
/** 重置密码按钮操作 */
handleResetPwd(row) {
this.$prompt('请输入"' + row.name + '"的新密码', "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
closeOnClickModal: false,
inputPattern: /^.{5,20}$/,
inputErrorMessage: "用户密码长度必须介于 5 和 20 之间",
inputValidator: (value) => {
if (/<|>|"|'|\||\\/.test(value)) {
return "不能包含非法字符:< > \" ' \\\ |"
}
},
}).then(({ value }) => {
resetUserPwd(row.Id, value).then(response => {
this.$modal.msgSuccess("修改成功,新密码是:" + value)
})
}).catch(() => {})
},
/** 分配角色操作 */
handleAuthRole: function(row) {
const Id = row.Id
this.$router.push("/system/user-auth/role/" + Id)
}, },
/** 提交按钮 */ /** 提交按钮 */
submitForm: function() { submitForm: function() {
this.$refs["form"].validate(valid => { this.$refs["form"].validate(valid => {
if (valid) { if (valid) {
if (this.form.Id != undefined) { if (this.form.id != undefined) {
update(this.form).then(response => { update(this.form).then(response => {
this.$modal.msgSuccess("修改成功") this.$modal.msgSuccess("修改成功")
this.open = false this.open = false
@ -409,8 +303,8 @@ export default {
}, },
/** 删除按钮操作 */ /** 删除按钮操作 */
handleDelete(row) { handleDelete(row) {
const Ids = row.Id || this.ids const Ids = row.id || this.ids
this.$modal.confirm('是否确认删除用户编号为"' + Ids + '"的数据项?').then(function() { this.$modal.confirm('是否确认删除类型编号为"' + Ids + '"的数据项?').then(function() {
return del(Ids) return del(Ids)
}).then(() => { }).then(() => {
this.getList() this.getList()
@ -425,7 +319,7 @@ export default {
}, },
/** 导入按钮操作 */ /** 导入按钮操作 */
handleImport() { handleImport() {
this.upload.title = "用户导入" this.upload.title = "类型导入"
this.upload.open = true this.upload.open = true
}, },
/** 下载模板操作 */ /** 下载模板操作 */

@ -306,10 +306,6 @@ export default {
}, },
created() { created() {
this.getList() this.getList()
// this.getDeptTree()
this.getConfigKey("sys.user.initPassword").then(response => {
this.initPassword = response.msg
})
}, },
methods: { methods: {
/** 查询用户列表 */ /** 查询用户列表 */

@ -274,10 +274,6 @@ export default {
}, },
created() { created() {
this.getList() this.getList()
// this.getDeptTree()
this.getConfigKey("sys.user.initPassword").then(response => {
this.initPassword = response.msg
})
}, },
methods: { methods: {
/** 查询设备列表 */ /** 查询设备列表 */

@ -281,10 +281,6 @@ export default {
}, },
created() { created() {
this.getList() this.getList()
// this.getDeptTree()
this.getConfigKey("sys.user.initPassword").then(response => {
this.initPassword = response.msg
})
}, },
methods: { methods: {
/** 查询类型列表 */ /** 查询类型列表 */

Loading…
Cancel
Save