数据访问层sdk组件
1.组件安装引入
前端项目中需要与后端数据服务进行交互,则需要此组件,该组件封装了与后端数据服务交互的接口,方便前端项目调用。该组件中包含了大量的方法可以直接调用。
- 使用
pnpm
安装依赖
js
pnpm install @bdsoft/auth
- 项目页面中添加引用,在
src
下新建api
文件夹,下面新建newrabbit.js
文件,添加如下代码并修改配置变量:iport
code
wdkName
appid
appkey
js
import bdauth from '@bdsoft/auth'
// 集成测试 默認返回用戶信息
const iport = '数据服务地址' //
const code = 'code码' // 必填项
const wdkName = '上传目录名' //
const appid = '数据服务appid' //
const appkey = '数据服务appkey' //
const logUrl = 'ptService/syslog/userlog'
// 初始化集成库
export let bdsdk = bdauth.init(iport, code, appid, appkey, logUrl, wdkName)
const {
rabbit,
getTicketAndUser,
refreshToken,
getBaseImgUrl,
addLogs,
getData,
postUseData,
getUseData,
addInfo,
motifyInfo,
uploadDoc,
getTicketTmp,
getFileUrl,
saveInfo,
removeInfo,
_getData,
_saveData,
_deleteData,
_motifyData,
_addData,
getConInfo,
getDataBaseTable,
doTransaction,
executeSQL
} = bdsdk
const { setCookieKey, getCookieKey, decode, encode, desEncrypt, desDecrypt, md5Encrypt } = bdauth
export { getTicketAndUser, refreshToken, rabbit, addLogs }
export { getData, addInfo, motifyInfo, removeInfo, saveInfo }
export { postUseData, getUseData, getConInfo, getDataBaseTable, doTransaction, executeSQL }
export { _getData, _saveData, _deleteData, _motifyData, _addData }
export { setCookieKey, getCookieKey, uploadDoc, getFileUrl, getTicketTmp, getBaseImgUrl }
// base64 加解密
export { decode, encode }
//密码加密解密
export { desEncrypt, desDecrypt, md5Encrypt }
- 变量说明
参数 | 类型 | 必须 | 描述 | 默认值 |
---|---|---|---|---|
iport | string | 是 | 数据服务HTTP地址如:http://123.129.65.205:18010 | |
code | string | 是 | 数据服务注册码,数据服务--服务--授权码管理中注册 | |
wdkName | string | 否 | 文件上传目录名(在服务器-数据服务配置.exe--文档存储标识) | |
appid | string | 是 | 数据服务appid,数据服务--服务--授权码管理中注册 | |
appkey | string | 是 | 数据服务appkey,数据服务--服务--授权码管理中注册 | |
logUrl | string | 否 | 平台日志服务地址 |
2.组件使用
项目目录如下:一般CURD的方法调用我们剥离到src/api
目录下,如xm.js
├── node_modules
├── public
│ ├── index.html:主页面
│ └── favicon.ico:页签图标
├── src
│ ├── api:公共接口包
│ ├──── newrabbit.js:sdk公共配置
│ └──── xm.js:页面模块方法包
TIP
注意:下面的URL地址皆为示例,请根据实际情况修改
添加方法
src/api/xm.js
中添加方法
js
import { _addData } from '@/api/newrabbit'
数据服务接口地址(在数据服务中复制即可)
export let userListUrl = 'ptService/user/userinfo'
/**
* 添加xxx信息
* @param {*} parms
* @returns
*/
export function addUser(parms) {
return _addData(userListUrl, parms)
}
- 页面中进行调用
js
import { onMounted } from "vue";
import { addUser } from '@/api/xm.js'
// 添加用户
const _addUser = (forms)=>{
// 这里做form表单验证
addUser(forms).then(res => {
console.log(res)
})
}
删除方法
src/api/xm.js
中添加方法
js
import { _deleteData } from '@/api/newrabbit'
数据服务接口地址(在数据服务中复制即可)
export let userListUrl = 'ptService/user/userinfo'
/**
* 删除xxx信息
* @param {*} parms
* @returns
*/
export function delUser(parms) {
return _deleteData(userListUrl, parms)
}
- 页面中进行调用
js
import { onMounted } from "vue";
import { delUser } from '@/api/xm.js'
// 删除用户
const _delUser = (forms)=>{
// 这里做form表单验证
delUser(forms).then(res => {
console.log(res)
})
}
修改方法
src/api/xm.js
中添加方法
js
import { _motifyData } from '@/api/newrabbit'
数据服务接口地址(在数据服务中复制即可)
export let userListUrl = 'ptService/user/userinfo'
/**
* 修改xxx信息
* @param {*} parms
* @returns
*/
export function editUser(parms) {
return _motifyData(userListUrl, parms)
}
- 页面中进行调用
js
import { onMounted } from "vue";
import { editUser } from '@/api/xm.js'
// 修改用户
const _editUser = (forms)=>{
// 这里做form表单验证
editUser(forms).then(res => {
console.log(res)
})
}
查询方法
src/api/xm.js
中添加方法
js
import { _getData } from '@/api/newrabbit'
数据服务接口地址(在数据服务中复制即可)
export let userListUrl = 'ptService/user/userinfo'
/**
* 查询xxx信息
* @param {*} parms
* @returns
*/
export function getUser(parms) {
return _getData(userListUrl, parms)
}
- 页面中进行调用
js
import { onMounted } from "vue";
import { getUser } from '@/api/xm.js'
// 查询用户
const _getUser = (forms)=>{
// 这里做form表单验证
getUser(forms).then(res => {
console.log(res)
})
}
保存方法
TIP
注意:用法跟增删改查一致,保存和添加、修改的区别是提交数据存在根据主键更新不存在则添加
import { _saveData } from '@/api/newrabbit'
获取图片完整路径
js
import { getBaseImgUrl } from '@/api/newrabbit.js'
let imgUrl =getBaseImgUrl('图片相对路径')
添加日志
js
import { addLogs } from '@/api/newrabbit.js'
addLogs({
logtype: 1,
logtitle: '用户注销',
user_id: _this.login,
logdetail: 'Web端,用户注销'
})
参数 | 类型 | 必须 | 描述 | 默认值 |
---|---|---|---|---|
logtype | number | 是 | 日志类型:0 登录 1 注销 2访问 3修改 4删除 5添加操作日志 6异常 7预览 8搜索 | |
logid | string | 是 | 用户id | |
logtitle | string | 是 | 日志标题 | |
logdetail | string | 是 | 日志描述 |
加密解密
js
// base64 加解密
import { decode, encode } from '@/api/newrabbit.js'
// des 加解密
import { desEncrypt, desDecrypt } from '@/api/newrabbit.js'
// md5加密
import { md5Encrypt } from '@/api/newrabbit.js'
高级接口方法
WARNING
注意:下面的方法多配合复杂逻辑进行处理,这里暂没有进行过多说明,后续慢慢完善
方法名 | 说明 | 参数 |
---|---|---|
getTicketAndUser | 获取临时票据和用户信息(平台登录时使用) | 传递用户名和密码 |
refreshToken | 刷新临时票据(平台登录时使用) | ticket |
setTicket | 存储ticket | value |
rabbit | 获取rabbit对象 | ticket |
addLogs | 添加日志接口 | logUrl,logInfo |
saveTable | 单表批量保存入库 | table, datas, dbConfig |
saveTables | 多表批量保存入库 | table, datas, dbConfig |
executeSQL | 连接第三方数据库并执行sql | dbConfig, sql, header, parm, isConn = true |
executeSQLs | 连接第三方数据库并批量执行sql | dbConfig, sql, header, parm |
execSQL | 直接根据连接串查询 | connStr, dbType, sql, header, parm, isConn = true |
execPorc | 根据数据连接执行存储过程 | connStr, dbType, name, vars, header = {}, params = {} |
doTransaction | 执行多个服务接口事务执行 | parms 数组 |
getDataBaseTable | 根据数据连接获取数据表 | connStr, dbType, sql, header = {}, param = {} |
uploadDoc | 获取文档上传路径 | code |
getConInfo | 获取数据库连接 | dbentity 连接对象 |