Browse Source

b端

master
hx 5 days ago
parent
commit
2293c7205b
  1. 7
      src/utils/request.js
  2. 97
      src/utils/ruoyi.js
  3. 38
      src/views/device/device/index.vue
  4. 32
      src/views/system/user/index.vue

7
src/utils/request.js

@ -51,6 +51,13 @@ service.interceptors.request.use(
if (getToken() && !isToken) {
config.headers["Authorization"] = "Bearer " + getToken(); // 让每个请求携带自定义token 请根据实际情况自行修改
}
const clientTimeZone =
(Intl.DateTimeFormat &&
Intl.DateTimeFormat().resolvedOptions &&
Intl.DateTimeFormat().resolvedOptions().timeZone) ||
"Asia/Shanghai";
console.log(`时区 :${clientTimeZone}`);
config.headers["X-Timezone"] = clientTimeZone;
// get请求映射params参数
if (config.method === "get" && config.params) {
let url = config.url + "?" + tansParams(config.params);

97
src/utils/ruoyi.js

@ -6,49 +6,86 @@ import { Message } from "element-ui";
*/
const baseURL = process.env.VUE_APP_BASE_API;
// 日期格式化
// export function parseTime(time, pattern) {
// if (arguments.length === 0 || !time) {
// return null;
// }
// const format = pattern || "{y}-{m}-{d} {h}:{i}:{s}";
// let date;
// if (typeof time === "object") {
// date = time;
// } else {
// if (typeof time === "string" && /^[0-9]+$/.test(time)) {
// time = parseInt(time);
// } else if (typeof time === "string") {
// time = time
// .replace(new RegExp(/-/gm), "/")
// .replace("T", " ")
// .replace(new RegExp(/\.[\d]{3}/gm), "");
// }
// if (typeof time === "number" && time.toString().length === 10) {
// time = time * 1000;
// }
// date = new Date(time);
// }
// const formatObj = {
// y: date.getFullYear(),
// m: date.getMonth() + 1,
// d: date.getDate(),
// h: date.getHours(),
// i: date.getMinutes(),
// s: date.getSeconds(),
// a: date.getDay(),
// };
// const time_str = format.replace(/{(y|m|d|h|i|s|a)+}/g, (result, key) => {
// let value = formatObj[key];
// // Note: getDay() returns 0 on Sunday
// if (key === "a") {
// return ["日", "一", "二", "三", "四", "五", "六"][value];
// }
// if (result.length > 0 && value < 10) {
// value = "0" + value;
// }
// return value || 0;
// });
// return time_str;
// }
export function parseTime(time, pattern) {
if (arguments.length === 0 || !time) {
return null;
}
if (!time) return null;
const format = pattern || "{y}-{m}-{d} {h}:{i}:{s}";
let date;
if (typeof time === "object") {
date = time;
// 把字符串当作 +8 时区
if (typeof time === "string") {
time = time.replace(/-/g, "/");
time = new Date(time + " GMT+0800");
} else {
if (typeof time === "string" && /^[0-9]+$/.test(time)) {
time = parseInt(time);
} else if (typeof time === "string") {
time = time
.replace(new RegExp(/-/gm), "/")
.replace("T", " ")
.replace(new RegExp(/\.[\d]{3}/gm), "");
}
if (typeof time === "number" && time.toString().length === 10) {
time = time * 1000;
}
date = new Date(time);
time = new Date(time);
}
const formatObj = {
y: date.getFullYear(),
m: date.getMonth() + 1,
d: date.getDate(),
h: date.getHours(),
i: date.getMinutes(),
s: date.getSeconds(),
a: date.getDay(),
y: time.getFullYear(),
m: time.getMonth() + 1,
d: time.getDate(),
h: time.getHours(),
i: time.getMinutes(),
s: time.getSeconds(),
a: time.getDay(),
};
const time_str = format.replace(/{(y|m|d|h|i|s|a)+}/g, (result, key) => {
return format.replace(/{(y|m|d|h|i|s|a)+}/g, (result, key) => {
let value = formatObj[key];
// Note: getDay() returns 0 on Sunday
if (key === "a") {
return ["日", "一", "二", "三", "四", "五", "六"][value];
return ["日","一","二","三","四","五","六"][value];
}
if (result.length > 0 && value < 10) {
value = "0" + value;
}
return value || 0;
return value;
});
return time_str;
}
export async function handleCopy(copyText) {

38
src/views/device/device/index.vue

@ -17,6 +17,10 @@
<el-input v-model="queryParams.alias" placeholder="请输入名称" clearable size="small" @keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item label="地址" prop="lastAddress">
<el-input v-model="queryParams.lastAddress" placeholder="请输入地址" clearable size="small" @keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item label="设备备注" prop="remark">
<el-input v-model="queryParams.remark" placeholder="请输入设备备注" clearable size="small" @keyup.enter.native="handleQuery" />
</el-form-item>
@ -62,6 +66,8 @@
<el-col :span="1.5">
<el-button type="info" plain icon="el-icon-user" size="mini" :disabled="multiple" v-hasPermi="['device:device:activate:batch']" @click="handleAssignDevice">分配设备</el-button>
</el-col>
<!-- <el-col :span="1.5">
<el-button
type="success"
@ -92,7 +98,13 @@
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
<el-table v-loading="loading" :data="deviceList" @selection-change="handleSelectionChange">
<el-table
ref="deviceTable"
v-loading="loading"
:data="deviceList"
@selection-change="handleSelectionChange"
@sort-change="handleTableSortChange"
>
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="订单号" align="center" prop="orderCode" />
@ -107,7 +119,14 @@
<el-table-column label="序列号" align="center" prop="sn" />
<el-table-column label="名称" align="center" prop="alias" />
<el-table-column label="地址" align="center" prop="lastAddress" min-width="220" />
<el-table-column label="更新时间" align="center" prop="lastLocationTime" min-width="115" >
<el-table-column
label="更新时间"
align="center"
prop="lastLocationTime"
min-width="115"
sortable="custom"
:sort-orders="['ascending', 'descending', null]"
>
<template slot-scope="scope">
<span>{{ parseTime(scope.row.lastLocationTime, "{y}-{m}-{d} {h}:{i}:{s}") }}</span>
</template>
@ -118,7 +137,7 @@
</template>
</el-table-column>
<el-table-column label="MAC " align="center" prop="mac" />
<el-table-column label="电量" align="center" prop="battery" />
<!-- <el-table-column label="电量" align="center" prop="battery" /> -->
<el-table-column label="备注" align="center" prop="remark" />
@ -417,6 +436,8 @@ function getDefaultQueryParams() {
battery: null,
lastReportedTime: null,
lastLocationTime: null,
lastAddress: null,
lastLocationSort: undefined,
orderCode: null,
};
}
@ -650,10 +671,21 @@ export default {
this.resetForm("queryForm");
}
this.queryParams = getDefaultQueryParams();
if (this.$refs.deviceTable) {
this.$refs.deviceTable.clearSort();
}
this.searchBusinessName = "";
this.searchBusinessSelectVisible = false;
this.handleQuery();
},
handleTableSortChange({ prop, order }) {
if (prop !== "lastLocationTime") {
return;
}
this.queryParams.lastLocationSort =
order === "ascending" ? "asc" : order === "descending" ? "desc" : undefined;
this.handleQuery();
},
//
handleSelectionChange(selection) {
this.ids = selection.map((item) => item.id);

32
src/views/system/user/index.vue

@ -32,8 +32,8 @@
size="small"
style="width: 240px"
>
<el-option label="启用" :value="0" />
<el-option label="禁用" :value="1" />
<el-option label="启用" :value="false" />
<el-option label="禁用" :value="true" />
</el-select>
</el-form-item>
<el-form-item>
@ -101,8 +101,8 @@
<template slot-scope="scope">
<el-switch
v-model="scope.row.status"
active-value="0"
inactive-value="1"
:active-value="false"
:inactive-value="true"
@change="handleStatusChange(scope.row)"
></el-switch>
</template>
@ -209,8 +209,8 @@
<el-col :span="12">
<el-form-item label="状态" prop="status">
<el-radio-group v-model="form.status">
<el-radio :label="0">启用</el-radio>
<el-radio :label="1">禁用</el-radio>
<el-radio :label="false">启用</el-radio>
<el-radio :label="true">禁用</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
@ -466,6 +466,15 @@ export default {
// });
},
methods: {
normalizeBooleanStatus(value) {
if (value === true || value === "true" || value === 1 || value === "1") {
return true;
}
if (value === false || value === "false" || value === 0 || value === "0") {
return false;
}
return false;
},
normalizeRoleOptions(list = []) {
return (Array.isArray(list) ? list : []).map(item => ({
roleId: item.roleId != null ? item.roleId : item.id,
@ -485,7 +494,7 @@ export default {
listUser(this.addDateRange(this.queryParams, this.dateRange)).then(response => {
this.userList = response.data.list.map(user => ({
...user,
status: String(user.status) //
status: this.normalizeBooleanStatus(user.status)
}));
// console.log(this.userList[0].googleAuthSecret)
this.total = Number(response.data.total);
@ -511,7 +520,7 @@ export default {
},
//
handleStatusChange(row) {
let text = row.status === "0" ? "启用" : "停用";
let text = row.status ? "禁用" : "启用";
this.$confirm('确认要"' + text + '""' + row.account + '"用户吗?', "警告", {
confirmButtonText: "确定",
cancelButtonText: "取消",
@ -521,7 +530,7 @@ export default {
}).then(() => {
this.msgSuccess(text + "成功");
}).catch(function() {
row.status = row.status === "0" ? "1" : "0";
row.status = !row.status;
});
},
//
@ -544,7 +553,7 @@ export default {
phonenumber: undefined,
email: undefined,
sex: undefined,
status: 0,
status: false,
remark: undefined,
postIds: [],
roleIds: []
@ -608,6 +617,7 @@ export default {
this.form = Object.assign({}, data, {
postIds: userRes.postIds || [],
roleIds: roleIds,
status: this.normalizeBooleanStatus(data.status),
passwordHash: undefined
});
this.$set(this.form, "roleIds", roleIds);
@ -674,7 +684,7 @@ export default {
nickName: this.employeeForm.nickName,
account: this.employeeForm.account,
passwordHash: this.employeeForm.passwordHash,
status: 0,
status: false,
roleIds: (this.employeeForm.roleIds || []).map(id => Number(id))
};
addEmployeeUser(submitData).then(() => {

Loading…
Cancel
Save