提交 4781a716 authored 作者: 刘守彩's avatar 刘守彩

fix: bugs

上级 a4ebaaec
import SqlliteDbUtil from '@/utils/sqllitedb' import SqlliteDbUtil from '@/utils/sqllitedb'
import table from './sqllite/table.js' import table from './sqllite/table.js'
import { import {
fixNullVal fixNullVal
} from "@/utils/common"; } from "@/utils/common";
// 用户 // 用户
export default { export default {
async selectList() { async selectList() {
let sqllitedb = await SqlliteDbUtil.initSqlliteDB() let sqllitedb = await SqlliteDbUtil.initSqlliteDB()
try { try {
let rs = await sqllitedb.selectSQL(`select * from ${table.logListName}`) let rs = await sqllitedb.selectSQL(`select * from ${table.logListName}`)
return rs return rs
} catch (e) { } catch (e) {
console.log(e.message) console.log(e.message)
} finally { } finally {
await sqllitedb.closeDB(); await sqllitedb.closeDB();
} }
}, },
async pageSelect(data){ // async pageSelect(data){
let sqllitedb = await SqlliteDbUtil.initSqlliteDB() // let sqllitedb = await SqlliteDbUtil.initSqlliteDB()
let pre = (data.page -1) * data.size // let pre = (data.page -1) * data.size
let nxt = data.size // let nxt = data.size
try { // try {
let count = await sqllitedb.selectSQL(`select count(*) as total from ${table.logListName} limit 1 `) // let count = await sqllitedb.selectSQL(`select count(*) as total from ${table.logListName} limit 1 `)
let sql = `select * from ${table.logListName} ORDER BY time desc limit ${nxt} offset ${pre} ` // let sql = `select * from ${table.logListName} ORDER BY time desc limit ${nxt} offset ${pre} `
let rs = await sqllitedb.selectSQL(sql) // let rs = await sqllitedb.selectSQL(sql)
console.log('sql',sql) // console.log('sql',sql, rs)
return { // return {
data:rs || [], // data:rs || [],
total:count[0].total || 0 // total:count[0].total || 0
} // }
} catch (e) { // } catch (e) {
console.log(e.message) // console.log(e.message)
} finally { // } finally {
await sqllitedb.closeDB(); // await sqllitedb.closeDB();
} // }
}, // },
async addlog(data) { async pageSelect(data) {
let sqllitedb = await SqlliteDbUtil.initSqlliteDB() let sqllitedb = await SqlliteDbUtil.initSqlliteDB()
try { let pre = (data.page - 1) * data.size
const values = `( let nxt = data.size
'${data.LastSynchronizationTime || ""}',
'${data.avatar || ""}', // 拼接时间范围条件
'${data.detail || ""}', let whereClause = "1=1"
'${data.isAdmin}',
'${data.level}', if (data.startTime && data.endTime) {
'${data.module}', whereClause += ` AND time BETWEEN '${data.startTime} 00:00:00' AND '${data.endTime} 23:59:59'`
'${data.passWord}', }
'${data.roleName}',
'${data.time}', try {
'${data.type}', // 获取总数
'${data.unitName}', let countSql = `SELECT count(*) as total FROM ${table.logListName} WHERE ${whereClause} LIMIT 1`
'${data.user}', let count = await sqllitedb.selectSQL(countSql)
'${data.userId}',
${data.userType === null ? 'NULL' : `'${data.userType}'` } // 获取分页数据
)` let sql =
const sql = `INSERT INTO ${table.logListName} ( `SELECT * FROM ${table.logListName} WHERE ${whereClause} ORDER BY time DESC LIMIT ${nxt} OFFSET ${pre}`
LastSynchronizationTime, let rs = await sqllitedb.selectSQL(sql)
avatar,
detail, console.log('sql', sql, rs)
isAdmin,
level, return {
module, data: rs || [],
passWord, total: count[0]?.total || 0
roleName, }
time, } catch (e) {
type, console.log(e.message)
unitName, } finally {
user, await sqllitedb.closeDB()
userId, }
userType },
) VALUES ${values}`; async addlog(data) {
let rs = await sqllitedb.selectSQL(sql) let sqllitedb = await SqlliteDbUtil.initSqlliteDB()
return rs try {
} catch (e) { const values = `(
console.log(e.message) '${data.LastSynchronizationTime || ""}',
} finally { '${data.avatar || ""}',
await sqllitedb.closeDB(); '${data.detail || ""}',
} '${data.isAdmin}',
}, '${data.level}',
'${data.module}',
async remove(id) { '${data.passWord}',
let sqllitedb = await SqlliteDbUtil.initSqlliteDB() '${data.roleName}',
try { '${data.time}',
if (!id) { '${data.type}',
return '${data.unitName}',
} '${data.user}',
let sql = `delete from ${table.logListName} where id = '${id}'`; '${data.userId}',
await sqllitedb.executeSQL(sql); ${data.userType === null ? 'NULL' : `'${data.userType}'` }
} catch (e) { )`
console.log(e.message) const sql = `INSERT INTO ${table.logListName} (
} finally { LastSynchronizationTime,
// await sqllitedb.closeDB(); avatar,
} detail,
}, isAdmin,
async info(id) { level,
let sqllitedb = await SqlliteDbUtil.initSqlliteDB() module,
let sql = `select * from ${table.logListName} where id = '${id}'`; passWord,
let res = await sqllitedb.selectSQL(sql); roleName,
if (res && res.length > 0) { time,
return res[0] type,
} unitName,
}, user,
userId,
userType
async saveBatch(list) { ) VALUES ${values}`;
if (list.length === 0) { let rs = await sqllitedb.selectSQL(sql)
return; return rs
} } catch (e) {
console.log('开始保存用户信息....' + list.length) console.log(e.message)
let sqllitedb = await SqlliteDbUtil.initSqlliteDB() } finally {
try { await sqllitedb.closeDB();
for (let data of list) { }
let column = '' },
let values = ''
let idx = 0 async remove(id) {
for (let attr in data) { let sqllitedb = await SqlliteDbUtil.initSqlliteDB()
let dataField = table['user'].find(v => { try {
if (v.field === attr) { if (!id) {
return v return
} }
}) let sql = `delete from ${table.logListName} where id = '${id}'`;
if (!dataField) { await sqllitedb.executeSQL(sql);
continue } catch (e) {
} console.log(e.message)
column += dataField.field + ',' } finally {
values += "'" + fixNullVal(data[attr]) + "'," // await sqllitedb.closeDB();
idx++ }
} },
async info(id) {
column = column.endsWith(',') ? column.substring(0, column.length - 1) : column let sqllitedb = await SqlliteDbUtil.initSqlliteDB()
values = values.endsWith(',') ? values.substring(0, values.length - 1) : values let sql = `select * from ${table.logListName} where id = '${id}'`;
let res = await sqllitedb.selectSQL(sql);
let sql = `insert into ${table.logListName}(${column}) values(${values})` if (res && res.length > 0) {
let has = await this.info(data.id) return res[0]
if (has && has.id) { }
await this.remove(data.id) },
}
await sqllitedb.executeSQL(sql)
} async saveBatch(list) {
} catch (e) { if (list.length === 0) {
console.log(e.message) return;
} finally { }
await sqllitedb.closeDB(); console.log('开始保存用户信息....' + list.length)
} let sqllitedb = await SqlliteDbUtil.initSqlliteDB()
console.log('导入完成...') try {
} for (let data of list) {
let column = ''
let values = ''
let idx = 0
for (let attr in data) {
let dataField = table['user'].find(v => {
if (v.field === attr) {
return v
}
})
if (!dataField) {
continue
}
column += dataField.field + ','
values += "'" + fixNullVal(data[attr]) + "',"
idx++
}
column = column.endsWith(',') ? column.substring(0, column.length - 1) : column
values = values.endsWith(',') ? values.substring(0, values.length - 1) : values
let sql = `insert into ${table.logListName}(${column}) values(${values})`
let has = await this.info(data.id)
if (has && has.id) {
await this.remove(data.id)
}
await sqllitedb.executeSQL(sql)
}
} catch (e) {
console.log(e.message)
} finally {
await sqllitedb.closeDB();
}
console.log('导入完成...')
}
} }
\ No newline at end of file
...@@ -113,7 +113,11 @@ module.exports = { ...@@ -113,7 +113,11 @@ module.exports = {
{ {
field: "signImg", field: "signImg",
format: "TEXT", format: "TEXT",
}, },
{
field: "dataSource",
format: "INTEGER DEFAULT 1"
}
], ],
// 机房、井道信息表 // 机房、井道信息表
......
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
<view class="container"> <view class="container">
<!-- 第一个模块 --> <!-- 第一个模块 -->
<view class="header"> <view class="header">
<view class="title">杭州内网监管在线-运维在线</view> <view class="title">杭州内网监管在线-山南数据中心运维在线</view>
<view class="header-buttons"> <view class="header-buttons">
<view class="log-button" @click="lookLog" v-if="isAdmin">操作日志</view> <view class="log-button" @click="lookLog" v-if="isAdmin">操作日志</view>
<div class="exit-button" @click="logOut"> <div class="exit-button" @click="logOut">
...@@ -188,12 +188,13 @@ export default { ...@@ -188,12 +188,13 @@ export default {
left: 50%; left: 50%;
transform: translateX(-50%); transform: translateX(-50%);
ont-family: PingFangSC-Medium; ont-family: PingFangSC-Medium;
font-size: 32px; font-size: 30px;
color: #000000; color: #000000;
text-align: center; text-align: center;
line-height: 40px; line-height: 40px;
text-shadow: 0 2px 4px rgba(0, 0, 0, 0.16); text-shadow: 0 2px 4px rgba(0, 0, 0, 0.16);
font-weight: 500; font-weight: 500;
white-space: nowrap;
} }
.header-buttons { .header-buttons {
......
...@@ -16,8 +16,8 @@ ...@@ -16,8 +16,8 @@
<!-- 搜索区域 --> <!-- 搜索区域 -->
<view class="search-com"> <view class="search-com">
<view class="search-com-left"> <view class="search-com-left">
<uni-data-select class="uni-search-item" v-model="searchFrom.type" :localdata="typeList" <!-- <uni-data-select class="uni-search-item" v-model="searchFrom.type" :localdata="typeList"
@change="change" placeholder="操作类型:全部" :key="new Date().getTime()"></uni-data-select> @change="change" placeholder="操作类型:全部" :key="new Date().getTime()"></uni-data-select> -->
<view class="search-com-right"> <view class="search-com-right">
<uni-datetime-picker class="uni-datetime-picker" type="daterange" <uni-datetime-picker class="uni-datetime-picker" type="daterange"
...@@ -148,13 +148,8 @@ ...@@ -148,13 +148,8 @@
}, },
timeChange(val) { timeChange(val) {
let temp = [...val]; this.searchForm.startTime = val[0] || "";
if (val.length && val[0] == val[1]) { this.searchForm.endTime = val[1] || "";
temp[1] = `${temp[1]} 23:59:59`;
}
this.searchForm.startTime = temp[0] || "";
this.searchForm.endTime = temp[1] || "";
this.getData(); this.getData();
}, },
...@@ -173,11 +168,13 @@ ...@@ -173,11 +168,13 @@
} = this.searchForm; } = this.searchForm;
let data = { let data = {
page: 2, page: 2,
size: 10 size: 10,
} }
let res = await this.$logApi.pageSelect({ let res = await this.$logApi.pageSelect({
page: this.pageCurrent, page: this.pageCurrent,
size: this.pageSize size: this.pageSize,
startTime,
endTime
}) })
if (res) { if (res) {
this.total = res.total this.total = res.total
......
...@@ -140,7 +140,7 @@ export default { ...@@ -140,7 +140,7 @@ export default {
conclusion: "", conclusion: "",
settingLabel: "设定电池电压", settingLabel: "设定电池电压",
settingLabelShow: "设定电压", settingLabelShow: "设定电压",
setting: this.jfType === "3" ? "2V-2.35V" : "2V-2.35V", //设定温度值 setting: "10V-15V", //设定温度值
// value: "", //输入温度 // value: "", //输入温度
unit: "V", //单位 unit: "V", //单位
photos: [], photos: [],
...@@ -155,7 +155,7 @@ export default { ...@@ -155,7 +155,7 @@ export default {
conclusion: "", conclusion: "",
settingLabel: "设定电池温度", settingLabel: "设定电池温度",
settingLabelShow: "设定温度", settingLabelShow: "设定温度",
setting: "10℃-40℃", //设定湿度值 setting: "10℃-35℃", //设定湿度值
// value: "", //输入湿度 // value: "", //输入湿度
unit: "℃", //单位 unit: "℃", //单位
photos: [], photos: [],
...@@ -170,7 +170,7 @@ export default { ...@@ -170,7 +170,7 @@ export default {
conclusion: "", conclusion: "",
settingLabel: "设定电池内阻", settingLabel: "设定电池内阻",
settingLabelShow: "设定内阻", settingLabelShow: "设定内阻",
setting: this.jfType === "3" ? "<50mΩ" : "<50mΩ", //设定湿度值 setting: this.jfType === "3" ? "<10mΩ" : "<10mΩ", //设定湿度值
// value: "", //输入湿度 // value: "", //输入湿度
unit: "mΩ", //单位 unit: "mΩ", //单位
photos: [], photos: [],
......
...@@ -282,7 +282,7 @@ export default { ...@@ -282,7 +282,7 @@ export default {
options: {}, //存储数据 options: {}, //存储数据
backValue: "", backValue: "",
all_data: [], //所有数据 all_data: [], //所有数据
jfType: "0", //机房类型 jfType: "2", //机房类型
allIsSubmitOne: false, allIsSubmitOne: false,
startDialogData: { startDialogData: {
text: [], text: [],
...@@ -547,7 +547,7 @@ export default { ...@@ -547,7 +547,7 @@ export default {
} }
console.log("this.detailsItem", this.detailsItem); console.log("this.detailsItem", this.detailsItem);
}, },
startDialogBtn(name = "山南UPS间", jfType = "0", value = "1") { startDialogBtn(name = "山南UPS间", jfType = "2", value = "1") {
let item = this.findTargetObject(this.listData); let item = this.findTargetObject(this.listData);
console.log("即将操作的机房", item); console.log("即将操作的机房", item);
...@@ -563,7 +563,7 @@ export default { ...@@ -563,7 +563,7 @@ export default {
this.value = value; this.value = value;
this.$refs.startDialog.open(); this.$refs.startDialog.open();
}, },
startDialog(name = "山南UPS间", jfType = "0", value = "1") { startDialog(name = "山南UPS间", jfType = "2", value = "1") {
this.name = name; this.name = name;
this.jfType = jfType; this.jfType = jfType;
this.value = value; this.value = value;
......
...@@ -210,7 +210,7 @@ export default { ...@@ -210,7 +210,7 @@ export default {
}, //弹窗文案 }, //弹窗文案
listData: [], listData: [],
name: "", name: "",
jfType: "0", jfType: "2",
value: "1", value: "1",
paramsObjFirst: {}, paramsObjFirst: {},
all_data: [], all_data: [],
......
...@@ -34,6 +34,7 @@ export function dataToSql(data) { ...@@ -34,6 +34,7 @@ export function dataToSql(data) {
createTime: data.id ? data.createTime : `${new Date().getTime()}`, createTime: data.id ? data.createTime : `${new Date().getTime()}`,
updateTime: `${new Date().getTime()}`, updateTime: `${new Date().getTime()}`,
inspectionData: data.originData, inspectionData: data.originData,
dataSource: data.dataSource
}; };
console.log("dataToSql", send); console.log("dataToSql", send);
return send; return send;
...@@ -85,6 +86,7 @@ export function sqlToData(sqlData) { ...@@ -85,6 +86,7 @@ export function sqlToData(sqlData) {
inspectionNumber, // 已巡检数量 inspectionNumber, // 已巡检数量
allIsSubmitOne, // 是否全部填写完成 allIsSubmitOne, // 是否全部填写完成
isSign: !!sqlData.signImg, // 是否有签名 isSign: !!sqlData.signImg, // 是否有签名
dataSource: sqlData.dataSource
}; };
return ret; return ret;
......
<template> <template>
<!-- 登录页 --> <!-- 登录页 -->
<view class="content"> <view class="content">
<view class="login_wrap"> <view class="login_wrap">
<view class="top-module"> <view class="top-module">
<image src="@/static/logo.png" mode="aspectFit" alt="" /> <image src="@/static/logo.png" mode="aspectFit" alt="" />
<view class="title">杭州内网监管在线-运维在线</view> <view class="title">
</view> 杭州内网监管在线-山南数据中心运维在线
<view class="form_wrap"> </view>
<view class="input_wrap"> </view>
<uni-easyinput class="log-input" clearSize="0" v-model="person.account" prefixIcon="person" <view class="form_wrap">
placeholder="用户名"></uni-easyinput> <view class="input_wrap">
<uni-easyinput v-if="passwordVisible" class="log-input" prefixIcon="locked" clearSize="0" <uni-easyinput class="log-input" clearSize="0" v-model="person.account" prefixIcon="person"
v-model="person.pwd" @iconClick="togglePasswordVisible" :placeholder="passwordPlaceholder" placeholder="用户名"></uni-easyinput>
:passwordIcon="false" :type="passwordVisible ? 'text' : 'password'"></uni-easyinput> <uni-easyinput v-if="passwordVisible" class="log-input" prefixIcon="locked" clearSize="0" v-model="person.pwd"
<uni-easyinput v-else class="log-input" prefixIcon="locked-filled" clearSize="0" v-model="person.pwd" @iconClick="togglePasswordVisible" :placeholder="passwordPlaceholder" :passwordIcon="false"
@iconClick="togglePasswordVisible" :placeholder="passwordPlaceholder" :passwordIcon="false" :type="passwordVisible ? 'text' : 'password'"></uni-easyinput>
:type="passwordVisible ? 'text' : 'password'"></uni-easyinput> <uni-easyinput v-else class="log-input" prefixIcon="locked-filled" clearSize="0" v-model="person.pwd"
</view> @iconClick="togglePasswordVisible" :placeholder="passwordPlaceholder" :passwordIcon="false"
<view class="login_btn" @click="login"> :type="passwordVisible ? 'text' : 'password'"></uni-easyinput>
<view class="login_btn_text"> 登录 </view> </view>
</view> <view class="login_btn" @click="login">
</view> <view class="login_btn_text"> 登录 </view>
</view> </view>
</view> </view>
</template> </view>
</view>
<script> </template>
import userApi from "@/api/user.js";
import logApi from "@/api/log.js"; <script>
import SqlliteDbUtil from "@/utils/sqllitedb"; import userApi from "@/api/user.js";
import table from "@/api/sqllite/table.js"; import logApi from "@/api/log.js";
import { import SqlliteDbUtil from "@/utils/sqllitedb";
getUserList import table from "@/api/sqllite/table.js";
} from "@/utils/systemCofig"; import {
import { getUserList
LOG_TYPE_ENUM, } from "@/utils/systemCofig";
getLogContent, import {
addLog, LOG_TYPE_ENUM,
readLogData, getLogContent,
} from "@/utils/IoReadingAndWriting.js"; addLog,
export default { readLogData,
components: {}, } from "@/utils/IoReadingAndWriting.js";
data() { export default {
return { components: {},
person: { data() {
account: "管理员", // "管理员", return {
pwd: "Gly@124" // Gly@124", person: {
}, account: "管理员", // "管理员",
backButtonPress: 0, pwd: "Gly@124" // Gly@124",
personList: [], },
passwordVisible: false, // 是否显示密码 backButtonPress: 0,
db: null, personList: [],
}; passwordVisible: false, // 是否显示密码
}, db: null,
computed: { };
// 动态密码输入框 placeholder },
passwordPlaceholder() { computed: {
return this.passwordVisible ? "密码" : "********"; // 动态密码输入框 placeholder
}, passwordPlaceholder() {
}, return this.passwordVisible ? "密码" : "********";
},
created() {}, },
onShow() {},
async mounted() {}, created() {},
// 定义返回退出 onShow() {},
onBackPress(options) { async mounted() {},
this.backButtonPress++; // 定义返回退出
if (this.backButtonPress > 1) { onBackPress(options) {
uni.setStorageSync("oper_record", this.$store.state.oper_record); this.backButtonPress++;
uni.setStorageSync("all_data", this.$store.state.all_data); if (this.backButtonPress > 1) {
uni.setStorageSync("now_user", this.$store.state.now_user); uni.setStorageSync("oper_record", this.$store.state.oper_record);
uni.setStorageSync( uni.setStorageSync("all_data", this.$store.state.all_data);
"last_time", uni.setStorageSync("now_user", this.$store.state.now_user);
this.$store.state.now_user.LastSynchronizationTime uni.setStorageSync(
); "last_time",
plus.runtime.quit(); this.$store.state.now_user.LastSynchronizationTime
} else { );
plus.nativeUI.toast("再划一次退出应用"); plus.runtime.quit();
} } else {
setTimeout(function() { plus.nativeUI.toast("再划一次退出应用");
this.backButtonPress = 0; }
}, 1000); setTimeout(function() {
return true; this.backButtonPress = 0;
}, }, 1000);
methods: { return true;
// 切换密码显示/隐藏 },
togglePasswordVisible() { methods: {
this.passwordVisible = !this.passwordVisible; // 切换密码显示/隐藏
}, togglePasswordVisible() {
// 点击登录 this.passwordVisible = !this.passwordVisible;
},
// 点击登录
async login() { async login() {
userApi.login(this.person).then((res) => { userApi.login(this.person).then((res) => {
if (res.data) { if (res.data) {
this.personList = res.data; this.personList = res.data;
this.$store.commit("SET_USER", this.personList); this.$store.commit("SET_USER", this.personList);
uni.setStorageSync("now_user", this.personList); uni.setStorageSync("now_user", this.personList);
uni.setStorageSync( uni.setStorageSync(
"last_time", "last_time",
this.personList.LastSynchronizationTime || "" this.personList.LastSynchronizationTime || ""
); );
const logContent = getLogContent( const logContent = getLogContent(
LOG_TYPE_ENUM.login, LOG_TYPE_ENUM.login,
"", "",
"其他" "其他"
); );
this.$logApi.addlog(logContent) this.$logApi.addlog(logContent)
const log_list = this.$store.state.log_list; const log_list = this.$store.state.log_list;
log_list.push(logContent); log_list.push(logContent);
this.$store.commit("SET_LOG_LIST", log_list); this.$store.commit("SET_LOG_LIST", log_list);
addLog(log_list).then((res) => {}); addLog(log_list).then((res) => {});
uni.navigateTo({ uni.navigateTo({
url: "/pages/home/home", url: "/pages/home/home",
}); });
} else { } else {
uni.showToast({ uni.showToast({
title: "账号密码错误,请重新输入", title: "账号密码错误,请重新输入",
icon: "none", icon: "none",
duration: 2000, duration: 2000,
}); });
} }
}); });
}, },
}, },
}; };
</script> </script>
<style scoped lang="less"> <style scoped lang="less">
.content { .content {
width: 100vw; width: 100vw;
height: 100vh; height: 100vh;
// background-color: red; // background-color: red;
background-image: url("../../static/img/logbg.png"); background-image: url("../../static/img/logbg.png");
background-size: 100% 100%; background-size: 100% 100%;
background-repeat: no-repeat; background-repeat: no-repeat;
display: flex; display: flex;
justify-content: center; justify-content: center;
align-items: center; align-items: center;
.top-module { .top-module {
width: 350px; width: 350px;
margin-bottom: 48px; margin-bottom: 20px;
text-align: center; text-align: center;
image { image {
width: 88px; width: 88px;
height: 88px; height: 88px;
} }
.title { .title {
font-size: 26px; font-size: 18px;
color: #000000; color: #000000;
line-height: 34px; line-height: 34px;
text-shadow: 0 2px 4px rgba(0, 0, 0, 0.16); text-shadow: 0 2px 4px rgba(0, 0, 0, 0.16);
} }
} }
.login_wrap {} .login_wrap {}
.log-input { .log-input {
width: 350px; width: 350px;
margin-bottom: 24px; margin-bottom: 24px;
background: #fff; background: #fff;
color: #4a4a4a; color: #4a4a4a;
} }
/deep/.is-input-border { /deep/.is-input-border {
border-radius: 2px !important; border-radius: 2px !important;
height: 40px !important; height: 40px !important;
} }
/deep/.uni-easyinput__content { /deep/.uni-easyinput__content {
background-color: rgba(0, 0, 0, 0) !important; background-color: rgba(0, 0, 0, 0) !important;
} }
/deep/.uni-easyinput__placeholder-class { /deep/.uni-easyinput__placeholder-class {
color: #4a4a4a; color: #4a4a4a;
} }
/deep/.is-focused { /deep/.is-focused {
border: 1px solid #4a4a4a !important; border: 1px solid #4a4a4a !important;
.uniui-eye-filled { .uniui-eye-filled {
color: #4a4a4a !important; color: #4a4a4a !important;
} }
.uniui-eye-slash-filled { .uniui-eye-slash-filled {
color: #4a4a4a !important; color: #4a4a4a !important;
} }
} }
/deep/.uni-input-input { /deep/.uni-input-input {
color: #4a4a4a !important; color: #4a4a4a !important;
} }
/deep/.uniui-clear { /deep/.uniui-clear {
color: #4a4a4a !important; color: #4a4a4a !important;
} }
.login_btn { .login_btn {
background: #3774f6; background: #3774f6;
box-shadow: 0px 2px 14px 0px rgba(51, 104, 246, 0.24); box-shadow: 0px 2px 14px 0px rgba(51, 104, 246, 0.24);
border-radius: 3px; border-radius: 3px;
.login_btn_text { .login_btn_text {
width: 350px; width: 350px;
height: 40px; height: 40px;
background-color: #3774f6; background-color: #3774f6;
box-shadow: 0px 1px 4px 0px rgba(84, 116, 232, 0.16); box-shadow: 0px 1px 4px 0px rgba(84, 116, 232, 0.16);
border-radius: 2px; border-radius: 2px;
display: flex; display: flex;
align-items: center; align-items: center;
justify-content: center; justify-content: center;
color: #fff; color: #fff;
} }
} }
} }
</style> </style>
\ No newline at end of file
<template> <template>
<view class="sampleTable"> <view class="sampleTable">
<uni-nav-bar <uni-nav-bar :fixed="true" background-color="rgba(214, 240, 255, 0.0)" status-bar rightWidth="300">
:fixed="true" <block slot="left">
background-color="rgba(214, 240, 255, 0.0)" <view class="" @click="back">
status-bar <text class="iconfont icon-fanhui"></text>
rightWidth="300" </view>
> </block>
<block slot="left"> </uni-nav-bar>
<view class="" @click="back">
<text class="iconfont icon-fanhui"></text <view class="main">
></view> <!-- 占位---不可删除 -->
</block> <view class="seize-seat"> </view>
</uni-nav-bar>
<view class="container box-shaow-box">
<view class="main"> <view v-if="isJF" class="image-item top-image">
<!-- 占位---不可删除 --> <image src="@/static/img/add-img/jf_table_new.png" mode="widthFix"></image>
<view class="seize-seat"> </view> </view>
<view class="container box-shaow-box"> <view v-else class="image-item top-image">
<view v-if="isJF" class="image-item top-image"> <image src="@/static/img/add-img/jd_table.png" mode="widthFix"></image>
<image </view>
src="@/static/img/add-img/jf_table.png" </view>
mode="widthFix" </view>
></image> </view>
</view> </template>
<view v-else class="image-item top-image"> <script>
<image export default {
src="@/static/img/add-img/jd_table.png" data() {
mode="widthFix" return {
></image> isJF: false,
</view> };
</view> },
</view> onNavigationBarButtonTap(val) {
</view> uni.navigateBack();
</template> },
onLoad(options) {
<script> this.isJF = options.isJF == 1;
export default { },
data() { methods: {
return { checkImage(val) {
isJF: false, let res = "";
}; res = `/static/img/report-table/report${val + 1}.png`;
}, return res;
onNavigationBarButtonTap(val) { },
uni.navigateBack(); back() {
}, uni.navigateBack();
onLoad(options) { },
this.isJF = options.isJF == 1; },
}, };
methods: { </script>
checkImage(val) {
let res = ""; <style lang="less" scoped>
res = `/static/img/report-table/report${val + 1}.png`; .sampleTable {
return res; width: 100%;
}, height: 100%;
back() { background-image: linear-gradient(90deg,
uni.navigateBack(); #e9f7fe 0%,
}, #dceffe 40%,
}, #d5ebfd 66%,
}; #c9e8fe 100%);
</script>
.main {
<style lang="less" scoped> margin-top: -44px;
.sampleTable { width: 100%;
width: 100%;
height: 100%; background-size: 100% 40rpx;
background-image: linear-gradient( background-repeat: no-repeat;
90deg,
#e9f7fe 0%, .container {
#dceffe 40%, margin: 0 auto;
#d5ebfd 66%, height: calc(100vh - 44px - var(--status-bar-height) - 20px);
#c9e8fe 100% padding: 23.53rpx 17.65rpx;
); padding-bottom: 0;
.main { overflow: auto;
margin-top: -44px; display: flex;
width: 100%; flex-wrap: wrap;
justify-sampletable: space-between;
background-size: 100% 40rpx;
background-repeat: no-repeat; .image-item {
text-align: center;
.container { width: 80%;
margin: 0 auto; height: 100%;
width: 730rpx; background-color: #ffffff;
height: calc(100vh - 44px - var(--status-bar-height) - 20px); border-radius: 4px;
padding: 23.53rpx 17.65rpx; margin: 0 auto;
padding-bottom: 0; }
// width: 341.18rpx;
.top-image {
overflow: auto; height: 288.24rpx;
display: flex; }
flex-wrap: wrap;
justify-sampletable: space-between; image {
width: 100%;
.image-item { box-shadow: 0px 0px 9.41rpx 0px rgba(84, 116, 232, 0.2);
text-align: center; }
width: 60%; }
height: 100%; }
background-color: #ffffff;
border-radius: 4px; .seize-seat {
margin: 0 auto; height: 50px;
} width: 100%;
background-image: linear-gradient(90deg,
.top-image { #e9f7fe 0%,
height: 288.24rpx; #dceffe 40%,
} #d5ebfd 66%,
#c9e8fe 100%);
image { }
width: 100%;
box-shadow: 0px 0px 9.41rpx 0px rgba(84, 116, 232, 0.2); // 导航栏样式
// object-fit: contain; .uni-nav-bar-text {
} height: 36px;
} width: 36px;
} background: #ffffff;
border: 0.4px solid rgba(224, 224, 224, 1);
.seize-seat { border-radius: 18px;
height: 50px; border-radius: 50%;
width: 100%; color: #333;
background-image: linear-gradient( text-align: center;
90deg,
#e9f7fe 0%, .iconfont {
#dceffe 40%, font-size: 20px;
#d5ebfd 66%, line-height: 36px;
#c9e8fe 100% }
); }
} }
// 导航栏样式 </style>
.uni-nav-bar-text { \ No newline at end of file
height: 36px;
width: 36px;
background: #ffffff;
border: 0.4px solid rgba(224, 224, 224, 1);
border-radius: 18px;
border-radius: 50%;
color: #333;
text-align: center;
.iconfont {
font-size: 20px;
line-height: 36px;
}
}
}
</style>
zI7Z5z3b 别名:__uni__a11bfd5
\ No newline at end of file 密码:zI7Z5z3b
\ No newline at end of file
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论