master
关凯 2024-09-03 08:38:26 +08:00
parent 9540958d12
commit 8610a82a3d
16 changed files with 512 additions and 115 deletions

View File

@ -1285,7 +1285,7 @@ layui.define(['laytpl', 'element', 'layer', 'zlPinYin', 'common'], function (exp
}
let layhref = (url !== undefined && url !== '' && url !== null) ? 'yh-href="' + url + '"' : '';
ulHtml += '<a ' + layhref + ' lay-text="' + item.title + '" ' + (!this.isSmall() ? 'lay-tips="' + item.title + '""' : '') + '" lay-direction="2" resId=' + item.resid + ' >';
ulHtml += '<a href="javascript:;" ' + layhref + ' lay-text="' + item.title + '" ' + (!this.isSmall() ? 'lay-tips="' + item.title + '""' : '') + '" lay-direction="2" resId=' + item.resid + ' >';
if (item.icon != undefined && item.icon != '') {
ulHtml += '<img src="' + layui.cache['contentPath'] + item.icon + '" ' + svgOnLoad + ' style="width:16px;height:16px;vertical-align: text-bottom;">';
} else {
@ -1585,7 +1585,7 @@ layui.define(['laytpl', 'element', 'layer', 'zlPinYin', 'common'], function (exp
if ($popMenuWrapper[0] && $popMenuWrapper.offset().top == 0) {
$arrow.css({ top: `${$height + 20}px` })
} else {
$arrow.css({ top: `20px` })
$arrow.css({ top: `${$height - $popMenuWrapper.offset().top + 20}px` })
}
if ($a.hasClass('kdayun-popmenu-search')) {
let wapperHeight = $parent.find('.kdayun-search-result').height() + $parent.find('#navbarSearchValue').height() + 20;

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -16936,6 +16936,14 @@ removeRadioItem(item: IElRadioItem): void
*/
removeRadioItemByFunc(func: ElRadioSearchHandle): void
/**
* 设置值
* @param value 值的字符串类型
* @param forceUpdate 可选参数,是否强制刷新默认 true
*/
setValue(value: string,forceUpdate: boolean): void
}
/**
*Radio的item接口
@ -18252,7 +18260,9 @@ template: string
declare type OnImgListViewClickHandle = (sender: ImgListView,row: Row) => void
/**
*信息提示组件
参考:https://vant-contrib.gitee.io/vant/v2/#/zh-CN/toast#quan-ju-fang-fa
参考: https://vant-contrib.gitee.io/vant/v2/#/zh-CN/toast
https://vant-contrib.gitee.io/vant/v2/#/zh-CN/dialog
https://vant-contrib.gitee.io/vant/v2/#/zh-CN/notify
*/
class VantNotice extends InvisibleBase {
@ -18324,7 +18334,7 @@ enum ToolbarPositionType {
bottom = "bottom",top = "top"
}
/**
*VantArea 地区组件
*VantArea 省份地区
*/
class VantArea extends MVantInputBase {
/**
@ -18340,6 +18350,13 @@ pickerId: string
*/
staticData: any[]
/**
* 获取对象值
* @returns 对象
*/
getObjValue(): any
}
/**
*获取值的对象
@ -19448,6 +19465,36 @@ declare type VantFieldMouseHandle = (cmp: VantTextarea,e: Event) => void
*/
declare type VantFieldUpdateHandle = (cmp: VantTextarea,value: string | number) => void
/**
*设置组件的类型
*/
enum FieldType {
digit = "digit",number = "number",password = "password",tel = "tel",text = "text",textarea = "textarea"
}
/**
*确定图片如何适应容器框
*/
enum VantImageFix {
contain = "contain",cover = "cover",fill = "fill",none = "none",scaleDown = "scale-down"
}
/**
*文件上传
*/
class VantUploader extends MVantInputBase {
inputId: string
/**
* 得到上传组件的值数组对象
* @returns 返回数组
*/
getUploadValue(): IUploadFile[]
}
/**
*上传的文件项类型
*/
declare type VantUploadItem = /**
*Grid 宫格
参考 https://vant-contrib.gitee.io/vant/v2/#/zh-CN/grid
*/
@ -20376,7 +20423,7 @@ setParentAfter(parent: ComponentBase,before: ComponentBase): void
*/
class ContainerBase extends ComponentBase {
/**
*是否允许击的消息传递 默认是true. 如果要自己处理组件的内部点击事件可以设置成false
*是否允许click传递到父类 默认是true (自己处理组件的内部点击事件). 如果要点击事件可以传递到父组件设置成false
*/
isClickStopEvent: boolean
@ -24873,6 +24920,8 @@ onValueChanged(callback: onChangeHandle): void
/**
* 设置可选的最大时间
如: page.components.DatePicker1.setMax(new Date('2024-01-01 00:00:00'))
注意必须增加: 00:00:00 由于 new Date('2024-01-01') => 2024-01-01 08:00:00
* @param date 时间类型的值
*/
@ -24880,6 +24929,8 @@ setMax(date: Date): void
/**
* 设置可选最小值时间
如: page.components.DatePicker1.setMin(new Date('2024-01-01 00:00:00'))
注意必须增加: 00:00:00 由于 new Date('2024-01-01') => 2024-01-01 08:00:00
* @param date 时间类型值
*/
@ -25456,6 +25507,13 @@ deleteRow(row: Row | Row[],isRemoveModified: boolean): void
*/
eachRow(eachCallBack: any,scope: object): void
/**
* 本地数据显示过滤过滤
* @param fn 过滤的回调函数 返回true 不隐藏, 返回false隐藏
*/
filterBy(fn: DataSourceQureyRowHandle): void
/**
* 本地数据查找行
例子: var row= ds.find((row)=>{return row.get('FieldName')=='xxxyyy'});
@ -25498,11 +25556,18 @@ findInsertIndex(row: Row): number
getAt(index: number): Row
/**
* 通过Id获取行
* @param id 行主键值* @returns 返回对应的记录
* 通过行主键获取行
* @param rowKey 行的主键值* @returns 返回对应的记录
*/
getById(id: string): Row
getById(rowKey: string): Row
/**
* 通过行的guId获取行
* @param rowGuid 行的guid* @returns 返回对应的记录
*/
getByRowGuid(rowGuid: string): Row
/**
* 获取某个修改状态的修改数据
@ -25643,7 +25708,7 @@ getRawDatas(): any[]
getRowByGuid(rowGuid: string): Row
/**
* 返回所有的行
* 获取返回所有的行
* @returns 所有行数组
*/
@ -25686,6 +25751,14 @@ getTotals(): ItotalResult
*/
getTreeDatas(idField: string,parentField: string,getItemCallBack: any): any[]
/**
* 获取所有可见行数组
当调用了 filterBy 设置过滤函数时候回导致某些行隐藏,这个时候 getVisiableRows的返回是不等于 getRows
* @returns 所有可见行数组
*/
getVisiableRows(): Row[]
/**
* 数据源内的行是否存在错误
* @returns 返回是否存在行的错误
@ -25758,9 +25831,9 @@ loadFinishCallBack: function(){
load(loadParams: IDsLoadOptions,ignroePage: boolean): boolean
/**
* 刷新数据行
* 单独获取数据,并不加载到数据源内
* @param keysObj 查询的查询条件数组
* @param callback 加载完成回调函数
* @param callback 加载完成回调函数 (rows: Row[]) => void
```typescript
loadByKey( {
key1 : keyvalue1
@ -26254,8 +26327,10 @@ query: any
field1: 'asc',
field2: 'desc'
}
[{field1:asc},{field2:desc}]
*/
sort: object
sort: object | object[]
/**
*额外的合计信息
设置了这个参数, getTotals() 内获取每个字段的合计值.
@ -26446,6 +26521,10 @@ TEXT = "TEXT"
*/
interface IField {
/**
*对齐
*/
align: TableColumnAlginType
/**
*允许为空
true 允许 则反之
*/
@ -26519,6 +26598,11 @@ sortDir: FieldSortDirection
*字段标题
*/
title: string
/**
*显示的长度
一般是在table显示时候的默认宽度
*/
width: string | number
}
/**
*列的单元格内容排列方式
@ -26762,7 +26846,7 @@ view: any
/**
*宽度
*/
width: string
width: string | number
}
/**
*表模型的字段属性接口
@ -26802,6 +26886,7 @@ processPostParam(callback: SqlWritercallback): boolean | any[]
}
/**
*内存数据源(静态数据源)
[{id:'xxx',name:'xyyyy'},...]
*/
class MemoryDataSetBase extends DataSourceBase {
@ -26886,7 +26971,7 @@ cloneTo(ds: DataSourceBase): Row
/**
* 拷贝
* @param newId 可选参数,否则复制一模一样的* @returns 返回行的克隆实例
* @param newId 可选参数,主键否则复制一模一样的,注意:主键必须是 Common.getConfig().RWID 指定的值* @returns 返回行的克隆实例
*/
copy(newId: any): Row
@ -27066,9 +27151,10 @@ reject(isSilent: boolean): void
* 设置某个字段数据的值
* @param fieldName 字段名
* @param value 字段的值
* @param isDefalutValue 可选参数 默认值false。 只有设置了新增默认值脚本才会为true。这个回影响关闭窗口时候提示“数据已经修改”的弹出 当true时候。不会因为这个导致提示框。
*/
set(fieldName: string,value: any): void
set(fieldName: string,value: any,isDefalutValue: boolean): void
/**
* 设置行是否被选定
@ -27108,7 +27194,7 @@ setHide(hide: boolean): void
setState(v: RowState): void
/**
* 设置多个字段值
* 设置多个字段值,会被记录修改
* @param data 数据值对象 {field1: value1,field2:value2}
*/
@ -27486,7 +27572,7 @@ class FieldBase extends ComponentBase {
/**
*对齐
*/
align: string
align: TableColumnAlginType
/**
*允许为空
true 允许 则反之
@ -27515,7 +27601,7 @@ title: string
/**
*字段标题的宽度
*/
width: Number
width: string
}
/**
@ -27549,7 +27635,7 @@ class StringField extends FieldBase {
}
/**
*数据源浮点类型字段
*大文本类型字段
*/
class TextField extends FieldBase {
@ -30150,11 +30236,12 @@ saveBookmark(bookmark: ITreeNode): void
/**
* 选中指定节点
* @param treeNode 需要被选中的节点数据
* @param addFlag true 表示追加选中,会出现多点同时被选中的情况 false (默认)表示单独选中,原先被选中的节点会被取消选中状态
* @param isSilent true 选中节点时,不会让节点自动滚到到可视区域内 false (默认)表示选中节点时,会让节点自动滚到到可视区域内* @returns 返回选择的节点实例
* @param addFlag 可选 true 表示追加选中,会出现多点同时被选中的情况 false (默认)表示单独选中,原先被选中的节点会被取消选中状态
* @param isSilent 可选 true 选中节点时,不会让节点自动滚到到可视区域内 false (默认)表示选中节点时,会让节点自动滚到到可视区域内
* @param isStopEvent 可选 true(默认) 停止触发 [选择节点事件]; false 会触发选择[选择节点事件] 注意有些时候需要停止这个事件否则会出现死循环* @returns 返回选择的节点实例
*/
selectNode(treeNode: ITreeNode,addFlag: boolean,isSilent: boolean): ITreeNode
selectNode(treeNode: ITreeNode,addFlag: boolean,isSilent: boolean,isStopEvent: boolean): ITreeNode
/**
* 通过func回调返回true 遍历所有的节点并选中返回true的节点(焦点停留在该节点)
@ -35124,7 +35211,7 @@ static getUserInfo(): any
* @param key 唯一key* @returns 返回本地缓存的值
*/
static getlocalCache(key: any): string
static getlocalCache(key: string): string
/**
* 判断是否ie
@ -35158,11 +35245,11 @@ static initLazLoad(container: Element,lazloadClass: string,timeOut: number): voi
* 绑定input与树模糊查找,该函数来自ztree官方的demo
* @param treeObj ztree树的对象
* @param inputId 输入框id
* @param isHighLight 是否选择高亮
* @param isExpand 是否展开* @returns true / false
* @param isHighLight 默认值 true 是否选择高亮
* @param isExpand 默认值 false 是否展开* @returns true / false
*/
static initTreeSearch(treeObj: any,inputId: any,isHighLight: any,isExpand: any): void
static initTreeSearch(treeObj: any,inputId: string,isHighLight: boolean,isExpand: boolean): void
/**
* 判断对象是否继承与接口
@ -35370,7 +35457,7 @@ static parseDate(val: any): any
例子:
1. 从json来显示图片
```typescript
layer.photos({
Common.photos({
photos: {
"title": "", //相册标题
"id": 123, //相册id
@ -35508,7 +35595,7 @@ static setUserInfo(userInfo: any): void
* @param value 值
*/
static setlocalCache(key: any,value: any): void
static setlocalCache(key: string,value: string): void
/**
* 对象转化成 json的字符串.
@ -35563,6 +35650,30 @@ static swap(arr: any[],index1: number,index2: number): any[]
/**
* 弹出页签的
* @param options 弹出页签的参数* @returns 返回弹出层的唯一index . 关闭可使用 Common.closeForm(index).
```typescript
Common.tabForm({
area: ['100%', '100%'],
tab: [{
title: '通用配置',
content:html1()
}, {
title: '页签管理',
content: '内容1'
}, {
title: '表头管理',
content: '<span>内容1</span>'
}, {
title: '选中列表头管理',
content: '<h1>内容1</h1>'
}]
, btn: ['确定', '取消']
, onSuccess() {
}
, onYes() {
}
});
```
*/
static tabForm(options: IFormTabOptions): number
@ -37293,19 +37404,13 @@ declare type onRadioHandle = (cxt: ScriptContext,cmp: InputRadio,value: boolean)
*/
class InputSwitch extends InputBase {
/**
* 得到组件值
* @returns 得到组件值
*/
getValue(): string
/**
* 设置组件值
* @param value 组件值
注意: 这里设置的是属性valueFormat的对应值. '1' , '0' 字符串值.不是数字值 0 , 1
* @param value 字符串值
*/
setValue(value: any): void
setValue(value: string | number): void
}
/**
@ -37843,49 +37948,49 @@ getUploadValue(): IUploadFile[]
* @param callback onDoneHandel事件处理函数
*/
onAllDone(callback: onAllDoneHandel): void
onAllDone(callback: onAllDoneHandle): void
/**
* 开始上传事件 用于代码注册事件
* @param callback onBeforeHandel 事件处理函数
*/
onBefore(callback: onBeforeHandel): void
onBefore(callback: onBeforeHandle): void
/**
* 选择完毕事件 用于代码注册事件
* @param callback onChooseHandel事件处理函数
*/
onChoose(callback: onChooseHandel): void
onChoose(callback: onChooseHandle): void
/**
* 完成事件 用于代码注册事件
* @param callback onDoneHandel事件处理函数
*/
onDone(callback: onDoneHandel): void
onDone(callback: onDoneHandle): void
/**
* 上传出现错误事件 用于代码注册事件
* @param callback onErrorHandel事件处理函数
*/
onError(callback: onErrorHandel): void
onError(callback: onErrorHandle): void
/**
* 文件数据处理
* @param callback onDoneHandel事件处理函数
*/
onProcessData(callback: onProcessDataHandel): void
onProcessData(callback: onProcessDataHandle): void
/**
* 值修改事件
* @param callback 回调函数
*/
onValueChanged(callback: onChangeHandel): void
onValueChanged(callback: onChangeHandle): void
/**
* 设置上传的值
@ -38027,6 +38132,170 @@ class LayoutMain extends LayoutItemBase {
*/
class LayoutSider extends LayoutItemBase {
}
/**
*合计的类型
*/
enum CrossSumType {
/**
*自定义
*/
custom = "custom",
/**
*求和
*/
sum = "sum"
}
/**
*交叉数据源
一般用于数据交叉表的 分析,汇总,报表
*/
class CrossDataSource extends DataSourceBase {
/**
* 得到配置对象
* @returns 配置对象
*/
getConfig(): ICrossConfig
}
/**
*交叉数据源columns 字段接口
*/
interface ICrossColumn {
/**
*对齐
*/
align: TableColumnAlginType
/**
*字段编号
*/
field: string
/**
*格式
*/
format: string
/**
*是否隐藏
*/
hide: boolean
/**
*唯一ID
*/
id: string
/**
*父列
*/
parent: string
/**
*合计类型
注意:当类型是custom时候需要设置 sumScr成员
*/
sum: CrossSumType
/**
*自定义合计脚本
只有 sum=CrossSumType.custom时候生效
```
sumScr=(field,val,column) {
return "总合计:"+ val
}
```
*/
sumScr: string
/**
*字段标题
*/
title: string
/**
*值字段
*/
valueFields: ICrossField[]
/**
*显示的长度
一般是在table显示时候的默认宽度
*/
width: string | number
}
/**
*交叉数据源配置接口
*/
interface ICrossConfig {
/**
*列配置数组
*/
columns: ICrossColumn[]
/**
*行key配置数组
*/
keys: ICrossField[]
}
/**
*sql数据源的配置接口
*/
interface ICrossDataSourceConfig {
}
/**
*交叉数据源字段基本接口
*/
interface ICrossField {
/**
*对齐
*/
align: TableColumnAlginType
/**
*字段编号
*/
field: string
/**
*格式
*/
format: string
/**
*是否隐藏
*/
hide: boolean
/**
*唯一ID
*/
id: string
/**
*父列
*/
parent: string
/**
*合计类型
注意:当类型是custom时候需要设置 sumScr成员
*/
sum: CrossSumType
/**
*自定义合计脚本
只有 sum=CrossSumType.custom时候生效
```
sumScr=(field,val,column) {
return "总合计:"+ val
}
```
*/
sumScr: string
/**
*字段标题
*/
title: string
/**
*显示的长度
一般是在table显示时候的默认宽度
*/
width: string | number
}
/**
* 数据源的参数格式
*/
interface ISqlParam {
field: string
type: string
val: string
}
/**
*执行指定的Sql命令组件,注意:一定要注意更新语句和删除语句的条件部分.避免误删除,误更新.
@ -38287,9 +38556,10 @@ getViews(): TableViewBase[]
* 从后台加载数据
* @param paramObj 参数对象
* @param isNew 可选参数 默认值:false 清掉所有的以前查的参数重新查询一次
* @param isNewPage 可选参数 默认 true 使用第一页的页码来加载; false 使用旧的页码加载查询数据;
*/
loadData(paramObj: IDsLoadOptions,isNew: boolean): void
loadData(paramObj: IDsLoadOptions,isNew: boolean,isNewPage: boolean): void
/**
* 注册复选框选择事件
@ -38566,7 +38836,8 @@ renderStatic(): void
/**
* 修改当前页
* @param value
注意这个函数会触发 页面切换事件导致关联的数据源重新加载
* @param value 页数
*/
setCurrPage(value: number): void
@ -38809,6 +39080,19 @@ getLikeValue(): string
*/
onButtonClick(handle: OnTableToolBarButtonClick): void
}
/**
* 工具栏预设的按钮容器
*/
class TableToolBarSysPanel extends TableToolBarPanel {
/**
* 得到导出的配置信息
* @returns
*/
getDataExportConfig(): IDataExportConfig
}
/**
*table组件接口
@ -39097,6 +39381,12 @@ onRowClick(handle: OnRowClickHandle): void
*/
onRowDoubleClick(handle: OnRowDoubleClickHandle): void
/**
* 重新加载数据源的列到组件内
*/
resetColumns(): void
}
/**
*Table组件的 settings属性编辑器
@ -39164,7 +39454,7 @@ getColumn(fieldNameOrId: string): TableColumn
getColumnById(columnId: string): TableColumn
/**
* 得到列的组数
* 获取列的组数
* @returns 列的组数
*/
@ -39185,11 +39475,11 @@ getCount(): number
getRowByGuid(rowGuid: string): Row
/**
* 通过主键id获取行
* @param rowId 行的id* @returns 返回行
* 通过主键获取行
* @param rowKey 行的主键值* @returns 返回行
*/
getRowById(rowId: string): Row
getRowById(rowKey: string): Row
/**
* 获取行数组
@ -39207,7 +39497,7 @@ getRows(): Row[]
getValueById(rowId: string,fileName: string): Row
/**
* 通过内部rid/字段名获取
* 通过主键值获取行的fileName字段
* @param rowId 行的id
* @param fileName 字段名* @returns 返回字段值
@ -39265,6 +39555,13 @@ onRenderView(handle: OnRenderViewHandle): void
*/
onRowSelectChanging(handle: OnRowSelectChangeingHandle): void
/**
* 注册单元格渲染事件
* @param handle 事件回调
*/
onSort(handle: onSortHandle): void
/**
* 注册操作列按钮点击事件
* @param handle 事件回调
@ -39291,7 +39588,7 @@ refreshRow(row: Row): void
setCellValue(cell: JQuery<any>,row: Row,column: TableColumn,value: any): void
/**
* 设置数组
* 设置数组
* @param columns 列数组
*/
@ -39623,6 +39920,13 @@ declare type onColumnResizeHandle = (sender: TableViewBase,col: TableColumn) =>
*/
declare type onRenderCellHandle = (sender: TableViewBase,row: Row,col: TableColumn,cellElem: JQuery<any>) => void
/**
*渲染单元格的回调事件
*@param sender 事件发起者
*@param col 列实例
*/
declare type onSortHandle = (sender: TableViewBase,col: TableColumn,sortSetting: object) => void
/**
*tablec组件的卡片视图列
*/
@ -39651,7 +39955,7 @@ class TableCardViewRadioColumn extends TableColumn {
*设计模式下禁止的行为枚举
主要是渲染table的某些单元格不允许修改
*/
enum TableColumnProhibitType {
enum TcpbType {
algin = "algin",allowNull = "allowNull",edit = "edit",fix = "fix",format = "format",hide = "hide",mergeColumn = "mergeColumn",null = "null",resize = "resize",search = "search",sort = "sort",subCols = "subCols",total = "total",type = "type",unique = "unique"
}
/**
@ -39673,6 +39977,14 @@ allowNull: boolean
*/
canResize: boolean
/**
*单元格背景
*/
cellBground: string
/**
*单元格字体
*/
cellFont: Font
/**
*列合并跨度
*/
colspan: number
@ -39690,10 +40002,6 @@ field: string
*/
fixed: TableColumnFixType
/**
*字体
*/
font: string
/**
*格式化字符
*/
format: string
@ -39702,6 +40010,14 @@ format: string
*/
griddown: boolean
/**
*表头背景
*/
headerBground: string
/**
*表头字体
*/
headerFont: string
/**
*是否隐藏
如果需设置值使用 setHide
*/
@ -43170,10 +43486,9 @@ forward(): void
* @param pageModelCode 表单编号
* @param paramsObj 可选参数 传入的页面参数
* @param pageConfig 可选参数 跳转各种回调
* @param isSaveCurrent 可选参数 是否保存当前页面状态,默认 :true
*/
pushByPageCode(pageModelCode: string,paramsObj: any,pageConfig: ISPAPageConfig,isSaveCurrent: boolean): void
pushByPageCode(pageModelCode: string,paramsObj: any,pageConfig: ISPAPageConfig): void
/**
* 跳转到表单编号是 pageModelCode的页面
@ -43181,10 +43496,9 @@ pushByPageCode(pageModelCode: string,paramsObj: any,pageConfig: ISPAPageConfig,i
* @param pageModelId 表单Id
* @param paramsObj 可选参数 传入的页面参数
* @param pageConfig 可选参数 跳转各种回调
* @param isSaveCurrent 可选参数 是否保存当前页面状态,默认 :true
*/
pushByPageId(pageModelId: string,paramsObj: any,pageConfig: ISPAPageConfig,isSaveCurrent: boolean): void
pushByPageId(pageModelId: string,paramsObj: any,pageConfig: ISPAPageConfig): void
/**
* 调整到指定地址
@ -43261,9 +43575,12 @@ clear(): void
/**
* 通过页面code渲染页面
如果页面需要权限必须传递menuId才会生效
如果页面需要权限必须传递menuId或者resid才会生效
* @param pageCode 页面编号
* @param paramsObj 参数对象
```js
renderByPageCode('XXX_PAGECODE',{resid:'EF8E965FE7F6482693B7B3F24AAD78DC'})
```
*/
renderByPageCode(pageCode: string,paramsObj: object): void
@ -43393,7 +43710,7 @@ class WeChartTools extends InvisibleBase {
/**
* 公众号网页授权
注意:设计模式下无效
如: authorize('http://ijtr5e.natappfree.cc/kdayun/manager/coremodelshow/?modelId=106A832EA4D743D38BA3E051B356A142&tokenId=4ab004049de448b88477df93421790f6)
如: authorize('http://ijtr5e.natappfree.cc/kdayun/manager/coremodelshow/?modelId=106A832EA4D743D38BA3E051B356A142)
* @param redirectUrl 授权完成后调整的跳转地址(注意这个地址必须是后台配置的(网页授权域名)一致)
*/
authorize(redirectUrl: string): void
@ -43406,6 +43723,13 @@ authorize(redirectUrl: string): void
*/
chooseImage(maxCount: any,callback: WxSelectFileHandle): void
/**
* 获取appId
* @returns 返回appid字符串.如果已经签名就在本地缓存中取
*/
getAppId(): string
/**
* 获取网页授权完成后的openid 可以使用这个来获取微信的用户信息
一旦调用过这个函数 WechartUtils.getUserData()就有返回值,除非授权有问题
@ -43422,6 +43746,13 @@ getOpenId(): string
*/
getSignData(): IWxSignData
/**
* 签名完成事件
* @param handle 事件回调函数
*/
onSign(handle: WxsignHandle): void
/**
* 微信公众号支付
例子:
@ -43461,11 +43792,13 @@ scanRqCode(callback: WxScanRqCodeHandle): void
share(shareInfo: any,callback: WxScanRqCodeHandle): void
/**
* 微信签名
* 微信签名,并设置openId
微信的一些功能 必须先签名.比如:选择文件,扫码,分享,支付
* @param callback 完成回调
* @param errCallBack 错误回调
*/
sign(): void
sign(callback: WxsignHandle,errCallBack: any): void
}
/**
@ -43523,10 +43856,11 @@ static USERDATA: string
如: authorize('http://ijtr5e.natappfree.cc/kdayun/manager/coremodelshow/?modelId=106A832EA4D743D38BA3E051B356A142&tokenId=4ab004049de448b88477df93421790f6)
* @param appId 可选参数 appid 以后台配置为主一默认:空
* @param redirectUrl 授权完成后调整的跳转地址(注意这个地址必须是后台配置的(网页授权域名)一致)
* @param scope 可选参数 授权的方式 应用授权作用域.默认:snsapi_basesnsapi_base 不弹出授权页面直接跳转只能获取用户openidsnsapi_userinfo 弹出授权页面可通过openid拿到昵称、性别、所在地。并且 即使在未关注的情况下,只要用户授权,也能获取其信息
* @param scope 可选参数 授权的方式 应用授权作用域.默认:snsapi_base 不弹出授权页面直接跳转只能获取用户openidsnsapi_userinfo 弹出授权页面可通过openid拿到昵称、性别、所在地。并且 即使在未关注的情况下,只要用户授权,也能获取其信息
* @param force 可选参数 强制执行授权
*/
static authorize(appId: string,redirectUrl: string,scope: WxScope): void
static authorize(appId: string,redirectUrl: string,scope: WxScope,force: boolean): void
/**
* 选择图片
@ -43594,14 +43928,15 @@ static share(shareInfo: any,callback: WxShareHandle): void
/**
* 权限签名
微信的一些功能 必须先签名,比如:选择文件,扫码,分享,支付
* @param appId 申请的 appi 可选参数 appid 以后台配置为主一默认:空
* @param appSecret 申请的秘钥
* @param appId 申请的 appi 可选参数 , 这个优先级没有后台配置的appi优先级高
* @param appSecret 申请的秘钥 , 这个优先级没有后台配置的appi优先级高
* @param orgId 单位id
* @param signUrl 需要前面的地址
* @param callback 签名完成回调
* @param errCallBack 出现错误回调
*/
static sign(appId: any,appSecret: any,orgId: any,signUrl: any,callback: WxsignHandle): void
static sign(appId: any,appSecret: any,orgId: any,signUrl: any,callback: WxsignHandle,errCallBack: any): void
}
/**
@ -43736,7 +44071,7 @@ APP -APP支付
trade_type: string
}
/**
*微信前面配置接口
*微信签名接口
*/
interface IWxSignData {
appId: string

View File

@ -25,10 +25,9 @@ layui.config({}).use(['element', 'zlConfig', 'zltreemenu', 'zlContext', 'table',
loadTree: function () {
//创建zTree组件
treeObj = zltreemenu.render('orgTreeId', {
dataurl: layui.cache['contentPath'] + '/manager/corefunction/queryorgddata?isallorg=false',
dataurl: layui.cache['contentPath'] + '/admin/coreorg/queryorgtreelistbyparentid?isallorg=false',
autoParam: ["RWID"],
tableId: 'tbUser',
type: 'get',
isMove: false,
dataFilter: function (treeId, parentNode, responseData) {
if (responseData[statusName] == OK) {

View File

@ -861,7 +861,7 @@ layui.config({
let exportFunc = function (con) {
var nodes = exptreeObj.getCheckedNodes(true);
nodes = $.grep(nodes, function (obj) {
return obj.MX_BIAOLX == 1 || obj.MX_BIAOLX == 0;
return obj.level > 0;
});
if (nodes.length <= 0) {
zlContext.warnMsg('请选择需要导出的表模型!');

View File

@ -636,7 +636,7 @@ html {
.layadmin-pagetabs .layui-tab-title li:hover,
.layadmin-pagetabs .layui-tab-title li.layui-this {
background-color: #f6f6f6;
box-shadow: 0 3px 1px -2px rgb(0 0 0 / 20%), 0 2px 2px 0 rgb(0 0 0 / 14%), 0 1px 5px 0 rgb(0 0 0 / 12%);
box-shadow: 0 3px 1px -2px rgb(0 0 0 / 20%), 0 2px 2px 0 rgb(0 0 0 / 14%), 0 1px 10px 0 var(--kd-color);
}
.layadmin-pagetabs .layui-tab-title li.layui-this:after {

View File

@ -29,7 +29,7 @@ layui.config({
Y: 'ps',
N: 's'
},
placeholder: '请选择职责',
placeholder: '请选择角色',
name: 'OBJNAME',
idKey: 'RWID',
pIdKey: 'SYS_PARENTID',

View File

@ -81,6 +81,41 @@ layui.define(['view', 'theme', 'common'], function (exports) {
status: status
});
},
/**
* 切换机构
* @param {*} orgId 要切换的机构id
*/
switchOrg: function (orgId) {
let curOrgId = $('#ORGNAME').attr('orgid'),
curOrgCode = $('#ORGNAME').attr('orgcode'),
param = {
orgid: orgId,
loginUrl: `${layui.cache['contentPath']}/${curOrgCode}`
}
if (curOrgId == orgId) {
return;
} else {
var index = layer.load();
$.ajax({
url: layui.cache['contentPath'] + `/switchOrg`,
data: param,
type: 'post',
async: false,
dataType: 'json',
success: function (result) {
if (result.state == 'OK') {
layer.close(index);
top.location.href = layui.cache['contentPath'] + '/index';
} else {
layer.msg(result.msg);
}
},
error: function (xhr, textStatus, errorThrown) {
layer.msg('请求异常!' + xhr.responseText);
},
});
}
},
/**
* 切换角色
* @param {*} switchroleid 要切换的角色id
@ -107,7 +142,7 @@ layui.define(['view', 'theme', 'common'], function (exports) {
success: function (result) {
if (result.state == 'OK') {
layer.close(index);
top.location.href = layui.cache['contentPath'] + '/index?tokenId=' + $('#tokenId').val();
top.location.href = layui.cache['contentPath'] + '/index';
}
},
error: function (xhr, textStatus, errorThrown) {
@ -390,12 +425,12 @@ layui.define(['view', 'theme', 'common'], function (exports) {
* 弹出关于面板
*/
about: function () {
admin.popupRight({
id: 'LAY_adminPopupAbout',
success: function () {
view(this.id).render('system/about')
}
});
layer.open({
type: 2,
title: "关于我们",
area: ['600px', '250px'],
content: layui.cache['contentPath'] + '/about'
})
},
/**
@ -805,13 +840,14 @@ layui.define(['view', 'theme', 'common'], function (exports) {
$('#ROLENAME').attr('roleid', loginInfo.currentRoleId);
$('#ROLENAME').attr('deptid', loginInfo.currentDeptId);
for (var i = 0; i < rolelist.length; i++) {
html += '<dd>';
if (rolelist[i].DEPTNAME != "") {
html += ' <a style="cursor:pointer" name="roleswitch" deptid="' + rolelist[i].DEPTID + '" roleid="' + rolelist[i].ROLEID + '">';
html += rolelist[i].DEPTNAME + '-' + rolelist[i].ROLENAME;
let item = rolelist[i];
html += `<dd ${loginInfo.currentRoleId == item.ROLEID && loginInfo.currentDeptId == item.DEPTID ? 'active' : ''}>`;
if (item.DEPTNAME != "") {
html += `<a style="cursor:pointer" name="roleswitch" deptid="${item.DEPTID}" roleid="${item.ROLEID}">`;
html += item.DEPTNAME + '-' + item.ROLENAME;
} else {
html += ' <a name="roleswitch" roleid="' + rolelist[i].ROLEID + '">';
html += rolelist[i].ROLENAME;
html += `<a name="roleswitch" roleid="${item.ROLEID}">`;
html += item.ROLENAME;
}
html += ' </a>';
html += '</dd>';
@ -820,6 +856,36 @@ layui.define(['view', 'theme', 'common'], function (exports) {
initRoleClickEvent();
}
/**
* 渲染机构下拉
* @param {*} loginInfo 登录的返回信息
*/
function renderOrgs(loginInfo) {
var html = '',
orgList = loginInfo.orgCursor,
$orgCourse = $('#orgcourse'),
$orgName = $('#ORGNAME'),
$orgParent = $orgName.parent();
$orgName.html(loginInfo.currentOrgName);
if (orgList.length == 0) {
$orgParent.find('.layui-nav-more').remove();
$orgCourse.remove();
}
$orgName.attr('orgid', loginInfo.currentOrgId).attr('orgcode', loginInfo.currentOrgCode);
for (var i = 0; i < orgList.length; i++) {
html += `<dd ${loginInfo.currentOrgId == orgList[i].RWID ? 'active' : ''}>`;
html += ` <a name="orgswitch" orgid="${orgList[i].RWID}" orgcode="${orgList[i].OBJCODE}">`;
html += orgList[i].JIANC;
html += ' </a>';
html += '</dd>';
}
$orgCourse.append(html);
$('#orgcourse a').on('click', function () {
let orgid = $(this).attr('orgid')
admin.switchOrg(orgid);
});
}
/**
* 初始化角色点击事件
@ -923,9 +989,9 @@ layui.define(['view', 'theme', 'common'], function (exports) {
renderTheme();
renderTouX(userInfo.userCursor)
renderRoles(userInfo)
renderOrgs(userInfo)
renderSysMenu(userInfo);
renderMessageBox();
renderSysMenu();
renderOthers(userInfo);
}

View File

@ -20,15 +20,6 @@ layui.extend({
$('#about').on('click', function () {
layer.open({
type: 2,
title: "关于我们",
area: ['600px', '250px'],
content: layui.cache['contentPath'] + '/about'
})
})
exports('index', {
openTabsPage: common.openTabsPage
});

View File

@ -749,7 +749,7 @@ ul.navbarSearchResult::-webkit-scrollbar-track {
.layadmin-pagetabs .layui-tab-title li:hover,
.layadmin-pagetabs .layui-tab-title li.layui-this {
background-color: #f6f6f6;
box-shadow: 0 3px 1px -2px rgb(0 0 0 / 20%), 0 2px 2px 0 rgb(0 0 0 / 14%), 0 1px 5px 0 rgb(0 0 0 / 12%);
box-shadow: 0 3px 1px -2px rgb(0 0 0 / 20%), 0 2px 2px 0 rgb(0 0 0 / 14%), 0 1px 10px 0 var(--kd-color);
}
.layadmin-pagetabs .layui-tab-title li.layui-this:after {
@ -1520,6 +1520,11 @@ ul.navbarSearchResult::-webkit-scrollbar-track {
.kdayun-app-layout-left .kdayun-header .layui-nav .layui-nav-child a {
color: #333;
cursor: pointer;
}
.kdayun-app-layout-left .kdayun-header .layui-nav .layui-nav-child dd[active] {
background: var(--kd-color-8);
}
.kdayun-app-layout-left .kdayun-pagetab-body {
@ -2779,7 +2784,7 @@ CORE STYLES BELOW - NO TOUCHY
padding: 10px;
border-radius: 5px;
margin-left: 12px;
box-shadow: 2px 2px 5px rgba(0, 0, 0, .2);
box-shadow: 2px 2px 5px var(--kd-color-4);
overflow-y: auto;
}

View File

@ -45,7 +45,7 @@ layui.config({
Y: 'ps',
N: 's'
},
placeholder: '请选择职责',
placeholder: '请选择角色',
name: 'OBJNAME',
idKey: 'RWID',
pIdKey: 'SYS_PARENTID',
@ -192,10 +192,10 @@ layui.config({
$("#regvercode").focus();
return false;
}
var orgid = $('.layadmin-user-login-box input[name="ORGID"]').val();
//校验手机号是否存在
var hasExisted = false;
zlContext.asyncGet(layui.cache['contentPath'] + "/core/sms/phone/hasexisted", { 'phone': phone }, function (result) {
zlContext.asyncGet(layui.cache['contentPath'] + "/core/sms/phone/hasexisted", { phone: phone, orgid: orgid }, function (result) {
if (OK == result[statusName]) {
if (result[dataName] && "1" == result[dataName].hasExisted) {
hasExisted = true;
@ -210,7 +210,6 @@ layui.config({
}
var vcodekey = $('input[name="vcodekey"]').val();
var orgid = $('.layadmin-user-login-box input[name="ORGID"]').val();
var param = {
'phone': phone,
'vcode': vcode,

View File

@ -121,7 +121,7 @@
</div>
<div class="layui-form-item">
<label class="layui-form-label" for="ROLEIDS">职责</label>
<label class="layui-form-label" for="ROLEIDS">角色</label>
<div class="layui-input-block">
<div name="ROLEIDS" disabled zlcomponent class="layui-form-select select-tree">
</div>

View File

@ -180,7 +180,7 @@
//校验手机号是否存在
var count = 0;
zlContext.asyncGet(layui.cache['contentPath'] + "/core/sms/phone/hasexisted", { 'phone': phone }, function (result) {
zlContext.asyncGet(layui.cache['contentPath'] + "/core/sms/phone/hasexisted", { phone: phone, orgid:'${orgid}'}, function (result) {
if (OK == result[statusName]) {
if (result[dataName]) {
count = result[dataName].hasExisted;

View File

@ -282,6 +282,8 @@
<a href="javascript:;">
<cite id='ORGNAME'></cite>
</a>
<dl class="layui-nav-child" id="orgcourse">
</dl>
</li>
<li class="layui-nav-item " lay-unselect>
<a href="javascript:;">

View File

@ -320,7 +320,7 @@
</@config>
//校验手机号是否存在
var hasExisted = true;
zlContext.asyncGet(layui.cache['contentPath'] + "/core/sms/phone/hasexisted",{'phone': phone}, function(result){
zlContext.asyncGet(layui.cache['contentPath'] + "/core/sms/phone/hasexisted",{phone: phone,orgid:'${orgid}'}, function(result){
if(OK == result[statusName]){
if(result[dataName] && "1" != result[dataName].hasExisted){
hasExisted = false;