From 81381f3b64745da0b14df2d2a641b3eba673e960 Mon Sep 17 00:00:00 2001 From: zhangdaiscott Date: Fri, 29 Dec 2023 21:22:25 +0800 Subject: [PATCH 01/11] =?UTF-8?q?UI=E7=BB=84=E4=BB=B6=E7=A4=BA=E4=BE=8B?= =?UTF-8?q?=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../document/form/BasicFiledsLayotForm.vue | 81 ++++ .../document/form/BasicFixedWidthForm.vue | 70 +++ src/views/demo/document/form/BasicFormAdd.vue | 143 ++++++ src/views/demo/document/form/BasicFormBtn.vue | 66 +++ .../demo/document/form/BasicFormCleanRule.vue | 95 ++++ .../demo/document/form/BasicFormCompact.vue | 58 +++ .../demo/document/form/BasicFormComponent.vue | 34 ++ .../document/form/BasicFormConAttribute.vue | 63 +++ .../demo/document/form/BasicFormCustom.vue | 32 ++ .../form/BasicFormCustomComponent.vue | 32 ++ .../document/form/BasicFormCustomSlots.vue | 64 +++ .../document/form/BasicFormDynamicsRules.vue | 80 ++++ .../demo/document/form/BasicFormFieldShow.vue | 70 +++ .../demo/document/form/BasicFormFieldTip.vue | 55 +++ .../demo/document/form/BasicFormFooter.vue | 105 ++++ .../demo/document/form/BasicFormLayout.vue | 63 +++ .../demo/document/form/BasicFormModal.vue | 84 ++++ .../demo/document/form/BasicFormRander.vue | 90 ++++ .../demo/document/form/BasicFormRules.vue | 58 +++ .../demo/document/form/BasicFormSchemas.vue | 99 ++++ .../demo/document/form/BasicFormSearch.vue | 116 +++++ .../demo/document/form/BasicFormSlots.vue | 63 +++ .../demo/document/form/BasicFormValue.vue | 94 ++++ .../demo/document/form/BasicFunctionForm.vue | 63 +++ src/views/demo/document/form/example.data.ts | 393 +++++++++++++++ .../demo/document/form/exampleCustom.data.ts | 452 ++++++++++++++++++ src/views/demo/document/form/index.ts | 24 + src/views/demo/document/form/tabIndex.vue | 114 +++++ .../demo/document/table/AuthColumnDemo.vue | 135 ++++++ .../demo/document/table/BasicTableBorder.vue | 94 ++++ .../demo/document/table/BasicTableDemo.vue | 81 ++++ .../document/table/BasicTableDemoAjax.vue | 157 ++++++ .../demo/document/table/CustomerCellDemo.vue | 106 ++++ .../demo/document/table/EditCellTableDemo.vue | 217 +++++++++ .../demo/document/table/EditRowTableDemo.vue | 261 ++++++++++ .../demo/document/table/ExpandTableDemo.vue | 119 +++++ .../demo/document/table/ExportTableDemo.vue | 131 +++++ .../demo/document/table/FixedHeaderColumn.vue | 98 ++++ .../demo/document/table/InnerTableDemo.vue | 131 +++++ .../demo/document/table/MergeHeaderDemo.vue | 70 +++ .../demo/document/table/MergeTableDemo.vue | 144 ++++++ .../demo/document/table/SelectTableDemo.vue | 80 ++++ .../demo/document/table/TreeTableDemo.vue | 124 +++++ src/views/demo/document/table/index.ts | 15 + src/views/demo/document/table/tabIndex.vue | 87 ++++ 45 files changed, 4811 insertions(+) create mode 100644 src/views/demo/document/form/BasicFiledsLayotForm.vue create mode 100644 src/views/demo/document/form/BasicFixedWidthForm.vue create mode 100644 src/views/demo/document/form/BasicFormAdd.vue create mode 100644 src/views/demo/document/form/BasicFormBtn.vue create mode 100644 src/views/demo/document/form/BasicFormCleanRule.vue create mode 100644 src/views/demo/document/form/BasicFormCompact.vue create mode 100644 src/views/demo/document/form/BasicFormComponent.vue create mode 100644 src/views/demo/document/form/BasicFormConAttribute.vue create mode 100644 src/views/demo/document/form/BasicFormCustom.vue create mode 100644 src/views/demo/document/form/BasicFormCustomComponent.vue create mode 100644 src/views/demo/document/form/BasicFormCustomSlots.vue create mode 100644 src/views/demo/document/form/BasicFormDynamicsRules.vue create mode 100644 src/views/demo/document/form/BasicFormFieldShow.vue create mode 100644 src/views/demo/document/form/BasicFormFieldTip.vue create mode 100644 src/views/demo/document/form/BasicFormFooter.vue create mode 100644 src/views/demo/document/form/BasicFormLayout.vue create mode 100644 src/views/demo/document/form/BasicFormModal.vue create mode 100644 src/views/demo/document/form/BasicFormRander.vue create mode 100644 src/views/demo/document/form/BasicFormRules.vue create mode 100644 src/views/demo/document/form/BasicFormSchemas.vue create mode 100644 src/views/demo/document/form/BasicFormSearch.vue create mode 100644 src/views/demo/document/form/BasicFormSlots.vue create mode 100644 src/views/demo/document/form/BasicFormValue.vue create mode 100644 src/views/demo/document/form/BasicFunctionForm.vue create mode 100644 src/views/demo/document/form/example.data.ts create mode 100644 src/views/demo/document/form/exampleCustom.data.ts create mode 100644 src/views/demo/document/form/index.ts create mode 100644 src/views/demo/document/form/tabIndex.vue create mode 100644 src/views/demo/document/table/AuthColumnDemo.vue create mode 100644 src/views/demo/document/table/BasicTableBorder.vue create mode 100644 src/views/demo/document/table/BasicTableDemo.vue create mode 100644 src/views/demo/document/table/BasicTableDemoAjax.vue create mode 100644 src/views/demo/document/table/CustomerCellDemo.vue create mode 100644 src/views/demo/document/table/EditCellTableDemo.vue create mode 100644 src/views/demo/document/table/EditRowTableDemo.vue create mode 100644 src/views/demo/document/table/ExpandTableDemo.vue create mode 100644 src/views/demo/document/table/ExportTableDemo.vue create mode 100644 src/views/demo/document/table/FixedHeaderColumn.vue create mode 100644 src/views/demo/document/table/InnerTableDemo.vue create mode 100644 src/views/demo/document/table/MergeHeaderDemo.vue create mode 100644 src/views/demo/document/table/MergeTableDemo.vue create mode 100644 src/views/demo/document/table/SelectTableDemo.vue create mode 100644 src/views/demo/document/table/TreeTableDemo.vue create mode 100644 src/views/demo/document/table/index.ts create mode 100644 src/views/demo/document/table/tabIndex.vue diff --git a/src/views/demo/document/form/BasicFiledsLayotForm.vue b/src/views/demo/document/form/BasicFiledsLayotForm.vue new file mode 100644 index 0000000..088a692 --- /dev/null +++ b/src/views/demo/document/form/BasicFiledsLayotForm.vue @@ -0,0 +1,81 @@ + + + + + + diff --git a/src/views/demo/document/form/BasicFixedWidthForm.vue b/src/views/demo/document/form/BasicFixedWidthForm.vue new file mode 100644 index 0000000..59011a4 --- /dev/null +++ b/src/views/demo/document/form/BasicFixedWidthForm.vue @@ -0,0 +1,70 @@ + + + + + + diff --git a/src/views/demo/document/form/BasicFormAdd.vue b/src/views/demo/document/form/BasicFormAdd.vue new file mode 100644 index 0000000..195a3f0 --- /dev/null +++ b/src/views/demo/document/form/BasicFormAdd.vue @@ -0,0 +1,143 @@ + + + + + + diff --git a/src/views/demo/document/form/BasicFormBtn.vue b/src/views/demo/document/form/BasicFormBtn.vue new file mode 100644 index 0000000..21d1036 --- /dev/null +++ b/src/views/demo/document/form/BasicFormBtn.vue @@ -0,0 +1,66 @@ + + + + + + diff --git a/src/views/demo/document/form/BasicFormCleanRule.vue b/src/views/demo/document/form/BasicFormCleanRule.vue new file mode 100644 index 0000000..c1b7613 --- /dev/null +++ b/src/views/demo/document/form/BasicFormCleanRule.vue @@ -0,0 +1,95 @@ + + + + + + diff --git a/src/views/demo/document/form/BasicFormCompact.vue b/src/views/demo/document/form/BasicFormCompact.vue new file mode 100644 index 0000000..9420be3 --- /dev/null +++ b/src/views/demo/document/form/BasicFormCompact.vue @@ -0,0 +1,58 @@ + + + + + + diff --git a/src/views/demo/document/form/BasicFormComponent.vue b/src/views/demo/document/form/BasicFormComponent.vue new file mode 100644 index 0000000..2e6c16b --- /dev/null +++ b/src/views/demo/document/form/BasicFormComponent.vue @@ -0,0 +1,34 @@ + + + + + + diff --git a/src/views/demo/document/form/BasicFormConAttribute.vue b/src/views/demo/document/form/BasicFormConAttribute.vue new file mode 100644 index 0000000..d07df64 --- /dev/null +++ b/src/views/demo/document/form/BasicFormConAttribute.vue @@ -0,0 +1,63 @@ + + + + + + diff --git a/src/views/demo/document/form/BasicFormCustom.vue b/src/views/demo/document/form/BasicFormCustom.vue new file mode 100644 index 0000000..5216a8c --- /dev/null +++ b/src/views/demo/document/form/BasicFormCustom.vue @@ -0,0 +1,32 @@ + + + + + + diff --git a/src/views/demo/document/form/BasicFormCustomComponent.vue b/src/views/demo/document/form/BasicFormCustomComponent.vue new file mode 100644 index 0000000..a4c4624 --- /dev/null +++ b/src/views/demo/document/form/BasicFormCustomComponent.vue @@ -0,0 +1,32 @@ + + + + + + diff --git a/src/views/demo/document/form/BasicFormCustomSlots.vue b/src/views/demo/document/form/BasicFormCustomSlots.vue new file mode 100644 index 0000000..5604d83 --- /dev/null +++ b/src/views/demo/document/form/BasicFormCustomSlots.vue @@ -0,0 +1,64 @@ + + + + + + diff --git a/src/views/demo/document/form/BasicFormDynamicsRules.vue b/src/views/demo/document/form/BasicFormDynamicsRules.vue new file mode 100644 index 0000000..5c5288c --- /dev/null +++ b/src/views/demo/document/form/BasicFormDynamicsRules.vue @@ -0,0 +1,80 @@ + + + + + + diff --git a/src/views/demo/document/form/BasicFormFieldShow.vue b/src/views/demo/document/form/BasicFormFieldShow.vue new file mode 100644 index 0000000..b9da20b --- /dev/null +++ b/src/views/demo/document/form/BasicFormFieldShow.vue @@ -0,0 +1,70 @@ + + + + + + diff --git a/src/views/demo/document/form/BasicFormFieldTip.vue b/src/views/demo/document/form/BasicFormFieldTip.vue new file mode 100644 index 0000000..619457f --- /dev/null +++ b/src/views/demo/document/form/BasicFormFieldTip.vue @@ -0,0 +1,55 @@ + + + + + + diff --git a/src/views/demo/document/form/BasicFormFooter.vue b/src/views/demo/document/form/BasicFormFooter.vue new file mode 100644 index 0000000..efc99b3 --- /dev/null +++ b/src/views/demo/document/form/BasicFormFooter.vue @@ -0,0 +1,105 @@ + + + + + + diff --git a/src/views/demo/document/form/BasicFormLayout.vue b/src/views/demo/document/form/BasicFormLayout.vue new file mode 100644 index 0000000..c539e5d --- /dev/null +++ b/src/views/demo/document/form/BasicFormLayout.vue @@ -0,0 +1,63 @@ + + + + + + diff --git a/src/views/demo/document/form/BasicFormModal.vue b/src/views/demo/document/form/BasicFormModal.vue new file mode 100644 index 0000000..6765b14 --- /dev/null +++ b/src/views/demo/document/form/BasicFormModal.vue @@ -0,0 +1,84 @@ + + + + + + diff --git a/src/views/demo/document/form/BasicFormRander.vue b/src/views/demo/document/form/BasicFormRander.vue new file mode 100644 index 0000000..59cf65a --- /dev/null +++ b/src/views/demo/document/form/BasicFormRander.vue @@ -0,0 +1,90 @@ + + + + + + diff --git a/src/views/demo/document/form/BasicFormRules.vue b/src/views/demo/document/form/BasicFormRules.vue new file mode 100644 index 0000000..0575ab8 --- /dev/null +++ b/src/views/demo/document/form/BasicFormRules.vue @@ -0,0 +1,58 @@ + + + + + + diff --git a/src/views/demo/document/form/BasicFormSchemas.vue b/src/views/demo/document/form/BasicFormSchemas.vue new file mode 100644 index 0000000..496f52b --- /dev/null +++ b/src/views/demo/document/form/BasicFormSchemas.vue @@ -0,0 +1,99 @@ + + + + + + diff --git a/src/views/demo/document/form/BasicFormSearch.vue b/src/views/demo/document/form/BasicFormSearch.vue new file mode 100644 index 0000000..c661baa --- /dev/null +++ b/src/views/demo/document/form/BasicFormSearch.vue @@ -0,0 +1,116 @@ + + + + + + diff --git a/src/views/demo/document/form/BasicFormSlots.vue b/src/views/demo/document/form/BasicFormSlots.vue new file mode 100644 index 0000000..b124408 --- /dev/null +++ b/src/views/demo/document/form/BasicFormSlots.vue @@ -0,0 +1,63 @@ + + + + + + diff --git a/src/views/demo/document/form/BasicFormValue.vue b/src/views/demo/document/form/BasicFormValue.vue new file mode 100644 index 0000000..91c2dae --- /dev/null +++ b/src/views/demo/document/form/BasicFormValue.vue @@ -0,0 +1,94 @@ + + + + + + diff --git a/src/views/demo/document/form/BasicFunctionForm.vue b/src/views/demo/document/form/BasicFunctionForm.vue new file mode 100644 index 0000000..f5556df --- /dev/null +++ b/src/views/demo/document/form/BasicFunctionForm.vue @@ -0,0 +1,63 @@ + + + + + + diff --git a/src/views/demo/document/form/example.data.ts b/src/views/demo/document/form/example.data.ts new file mode 100644 index 0000000..110385c --- /dev/null +++ b/src/views/demo/document/form/example.data.ts @@ -0,0 +1,393 @@ +import { FormSchema } from '/@/components/Form'; + +import dayjs from 'dayjs'; + +export const schemas: FormSchema[] = [ + { + label: '文本框', + field: 'name', + component: 'Input', + componentProps: { + prefix: '中文', + showCount: true, + }, + defaultValue: '张三', + }, + { + label: '密码', + field: 'password', + component: 'InputPassword', + componentProps: { + //是否显示切换按钮或者控制密码显隐 + visibilityToggle: true, + prefix: '密码', + }, + }, + { + label: '搜索框', + field: 'searchBox', + component: 'InputSearch', + componentProps: { + onSearch: (value) => { + console.log(value); + }, + }, + }, + { + label: '文本域', + field: 'textArea', + component: 'InputTextArea', + componentProps: { + //可以点击清除图标删除内容 + allowClear: true, + //是否展示字数 + showCount: true, + //自适应内容高度,可设置为 true | false 或对象:{ minRows: 2, maxRows: 6 } + autoSize: { + //最小显示行数 + minRows: 2, + //最大显示行数 + maxRows: 3, + }, + }, + }, + { + label: '数值输入框', + field: 'number', + component: 'InputNumber', + componentProps: { + //带标签的 input,设置后置标签 + addonAfter: '保留两位小数', + //最大值 + max: 100, + //数值经度 + precision: 2, + //步数 + step: 0.1, + }, + }, + + { + label: '下拉框', + field: 'jinputtype', + component: 'Select', + componentProps: { + options: [ + { value: 'like', label: '模糊(like)' }, + { value: 'ne', label: '不等于(ne)' }, + { value: 'ge', label: '大于等于(ge)' }, + { value: 'le', label: '小于等于(le)' }, + ], + //下拉多选 + mode: 'multiple', + //配置是否可搜索 + showSearch: true, + }, + }, + { + field: 'TreeSelect', + label: '下拉树', + component: 'TreeSelect', + componentProps: { + //是否显示下拉框,默认false + treeCheckable: true, + //标题 + title: '下拉树', + //下拉树 + treeData: [ + { + label: '洗衣机', + value: '0', + children: [ + { + label: '滚筒洗衣机', + value: '0-1', + }, + ], + }, + { + label: '电视机', + value: '1', + children: [ + { + label: '平板电视', + value: '1-1', + disabled: true, + }, + { + label: 'CRT电视机', + value: '1-2', + }, + { + label: '投影电视', + value: '1-3', + }, + ], + }, + ], + }, + }, + { + label: 'RadioButtonGroup组件', + field: 'status', + component: 'RadioButtonGroup', + componentProps: { + options: [ + { label: '有效', value: 1 }, + { label: '无效', value: 0 }, + ], + }, + }, + { + label: '单选框', + field: 'radioSex', + component: 'RadioGroup', + componentProps: { + //options里面由一个一个的radio组成,支持disabled禁用 + options: [ + { label: '男', value: 1, disabled: false }, + { label: '女', value: 0 }, + ], + }, + }, + { + label: '多选框', + field: 'checkbox', + component: 'Checkbox', + componentProps: { + //是否禁用,默认false + disabled: false, + }, + }, + { + label: '多选框组', + field: 'checkSex', + component: 'CheckboxGroup', + componentProps: { + //RadioGroup 下所有 input[type="radio"] 的 name 属性 + name: '爱好', + //options支持disabled禁用 + options: [ + { label: '运动', value: 0, disabled: true }, + { label: '听音乐', value: 1 }, + { label: '看书', value: 2 }, + ], + }, + defaultValue: [2], + }, + { + label: '自动完成组件', + field: 'AutoComplete', + component: 'AutoComplete', + componentProps: { + options: [{ value: 'Burns Bay Road' }, { value: 'Downing Street' }, { value: 'Wall Street' }], + }, + }, + { + label: '级联选择', + field: 'cascade', + component: 'Cascader', + componentProps: { + //最多显示多少个tag + maxTagCount: 2, + //浮层预设位置 + placement: 'bottomRight', + //在选择框中显示搜索框,默认false + showSearch: true, + options: [ + { + label: '北京', + value: 'BeiJin', + children: [ + { + label: '海淀区', + value: 'HaiDian', + }, + ], + }, + { + label: '江苏省', + value: 'JiangSu', + children: [ + { + label: '南京', + value: 'Nanjing', + children: [ + { + label: '中华门', + value: 'ZhongHuaMen', + }, + ], + }, + ], + }, + ], + }, + }, + { + label: '日期选择', + field: 'dateSelect', + component: 'DatePicker', + componentProps: { + //日期格式化,页面上显示的值 + format: 'YYYY-MM-DD', + //返回值格式化(绑定值的格式) + valueFormat: 'YYYY-MM-DD', + //是否显示今天按钮 + showToday: true, + //不可选择日期 + disabledDate: (currentDate) => { + let date = dayjs(currentDate).format('YYYY-MM-DD'); + let nowDate = dayjs(new Date()).format('YYYY-MM-DD'); + //当天不可选择 + if (date == nowDate) { + return true; + } + return false; + }, + }, + }, + { + label: '月份选择', + field: 'monthSelect', + component: 'MonthPicker', + componentProps: { + //不可选择日期 + disabledDate: (currentDate) => { + let date = dayjs(currentDate).format('YYYY-MM'); + let nowDate = dayjs(new Date()).format('YYYY-MM'); + //当天不可选择 + if (date == nowDate) { + return true; + } + return false; + }, + }, + }, + { + label: '周选择', + field: 'weekSelect', + component: 'WeekPicker', + componentProps: { + size: 'small', + }, + }, + { + label: '时间选择', + field: 'timeSelect', + component: 'TimePicker', + componentProps: { + size: 'default', + //日期时间或者时间模式下是否显示此刻,不支持日期时间范围和时间范围 + showNow: true, + }, + }, + { + label: '日期时间范围', + field: 'dateTimeRangeSelect', + component: 'RangePicker', + componentProps: { + //是否显示时间 + showTime: true, + //日期格式化 + format: 'YYYY/MM/DD HH:mm:ss', + //范围文本描述用集合 + placeholder: ['请选择开始日期时间', '请选择结束日期时间'], + }, + }, + { + label: '日期范围', + field: 'dateRangeSelect', + component: 'RangeDate', + componentProps: { + //日期格式化 + format: 'YYYY/MM/DD', + //范围文本描述用集合 + placeholder: ['请选择开始日期', '请选择结束日期'], + }, + }, + { + label: '时间范围', + field: 'timeRangeSelect', + component: 'RangeTime', + componentProps: { + //日期格式化 + format: 'HH/mm/ss', + //范围文本描述用集合 + placeholder: ['请选择开始时间', '请选择结束时间'], + }, + }, + { + label: '开关', + field: 'switch', + component: 'Switch', + componentProps: { + //开关大小,可选值:default small + size: 'default', + //非选中时的内容 + unCheckedChildren: '开启', + //非选中时的值 + unCheckedValue: '0', + //选中时的内容 + checkedChildren: '关闭', + //选中时的值 + checkedValue: '1', + //是否禁用 + disabled: false, + }, + }, + { + label: '滑动输入条', + field: 'slider', + component: 'Slider', + componentProps: { + //最小值 + min: -20, + //最大值 + max: 100, + //是否为双滑块模式 + range: true, + //刻度标记 + marks: { + '-20': '-20°C', + 0: '0°C', + 26: '26°C', + 37: '37°C', + 100: { + style: { + color: '#f50', + }, + label: '100°C', + }, + }, + }, + }, + { + label: '评分', + field: 'rate', + component: 'Rate', + componentProps: { + //是否允许半选 + allowHalf: true, + //star 总数 + count: 5, + //tooltip提示,有几颗星写几个 + tooltips: ['非常差', '较差', '正常', '很好', '非很好'], + }, + }, + { + label: '分割线', + field: 'divisionLine', + component: 'Divider', + componentProps: { + //是否虚线 + dashed: false, + //分割线标题的位置(left | right | center) + orientation: 'center', + //文字是否显示为普通正文样式 + plain: true, + //水平还是垂直类型(horizontal | vertical) + type: 'horizontal', + }, + }, +]; diff --git a/src/views/demo/document/form/exampleCustom.data.ts b/src/views/demo/document/form/exampleCustom.data.ts new file mode 100644 index 0000000..e4afd9c --- /dev/null +++ b/src/views/demo/document/form/exampleCustom.data.ts @@ -0,0 +1,452 @@ +import { FormSchema } from '/@/components/Form'; +import { defHttp } from '/@/utils/http/axios'; + +export const schemas: FormSchema[] = [ + { + label: '验证码', + field: 'code', + component: 'InputCountDown', + componentProps: { + //'default': 默认, 'large': 最大, 'small': 最小 + size:'default', + //倒计时 + count: 120, + }, + }, + { + label: 'Api下拉选择', + field: 'apiSelect', + component: 'ApiSelect', + componentProps: { + //multiple: 多选;不填写为单选 + mode: 'multiple', + //请求api,返回结果{ result: { records:[{'id':'1',name:'scott'},{'id':'2',name:'小张'}] }} + api: () => defHttp.get({ url: '/test/jeecgDemo/list' }), + //数值转成String + numberToString: false, + //标题字段 + labelField: 'name', + //值字段 + valueField: 'id', + //请求参数 + params: {}, + //返回结果字段 + resultField: 'records', + }, + }, + { + label: 'Api树选择', + field: 'apiSelect', + component: 'ApiTreeSelect', + componentProps: { + /* 请求api,返回结果 + { result: { list: [{ title:'选项0',value:'0',key:'0', + children: [ {"title": "选项0-0","value": "0-0","key": "0-0"},...] + }, ...] + }} */ + api: () => defHttp.get({ url: '/mock/tree/getDemoOptions' }), + //请求参数 + params: {}, + //返回结果字段 + resultField: 'list', + }, + }, + { + label: '校验密码强度', + field: 'pwd', + component: 'StrengthMeter', + componentProps: { + //是否显示密码文本框 + showInput: true, + //是否禁用 + disabled: false, + }, + }, + { + label: '省市县联动', + field: 'province', + component: 'JAreaLinkage', + componentProps: { + //是否显示区县,默认true,否则只显示省 + showArea: true, + //是否是全部文本,默认false + showAll: true, + }, + }, + { + label: '岗位选择', + field: 'post', + component: 'JSelectPosition', + componentProps: { + //是否右侧显示选中列表 + showSelected: true, + //最大选择数量 + maxSelectCount: 1, + //岗位标题 + modalTitle: '岗位', + }, + }, + { + label: '角色选择', + field: 'role', + component: 'JSelectRole', + componentProps: { + //请求参数 如params:{"code":"001"} + params: {}, + //是否单选,默认false + isRadioSelection: true, + //角色标题 + modalTitle: '角色', + }, + }, + { + label: '用户选择', + field: 'user', + component: 'JSelectUser', + componentProps: { + //取值字段配置,一般为主键字段 + rowKey: 'username', + //显示字段配置 + labelKey: 'realname', + //是否显示选择按钮 + showButton: false, + //用户标题 + modalTitle: '用户', + }, + }, + { + label: '图片上传', + field: 'uploadImage', + component: 'JImageUpload', + componentProps: { + //按钮显示文字 + text:'图片上传', + //支持两种基本样式picture和picture-card + listType:'picture-card', + //用于控制文件上传的业务路径,默认temp + bizPath:'temp', + //是否禁用 + disabled:false, + //最大上传数量 + fileMax:1, + }, + }, + { + label: '字典标签', + field: 'dictTags', + component: 'JDictSelectTag', + componentProps: { + //字典code配置,比如通过性别字典编码:sex,也可以使用demo,name,id 表名,名称,值的方式 + dictCode:'sex', + //支持radio(单选按钮)、radioButton(单选按钮 btn风格)、select(下拉框) + type:'radioButton' + }, + }, + { + label: '部门选择', + field: 'dept', + component: 'JSelectDept', + componentProps: { + //是否开启异步加载 + sync: false, + //是否显示复选框 + checkable: true, + //是否显示选择按钮 + showButton: false, + //父子节点选中状态不再关联 + checkStrictly: true, + //选择框标题 + modalTitle: '部门选择', + }, + }, + { + label: '省市县级联动', + field: 'provinceArea', + component: 'JAreaSelect', + componentProps: { + //级别 1 只显示省 2 省市 3 省市区 + level:3 + }, + }, + { + label: '富文本', + field: 'editor', + component: 'JEditor', + componentProps: { + //是否禁用 + disabled: false + }, + }, + { + label: 'markdown', + field: 'markdown', + component: 'JMarkdownEditor', + componentProps: { + //是否禁用 + disabled: false + }, + }, + { + label: '可输入下拉框', + field: 'inputSelect', + component: 'JSelectInput', + componentProps: { + options: [ + { label: 'Default', value: 'default' }, + { label: 'IFrame', value: 'iframe' }, + ], + //是否为搜索模式 + showSearch: true, + //是否禁用 + disabled: false + }, + }, + { + label: '代码编辑器组件', + field: 'jCode', + component: 'JCodeEditor', + componentProps: { + //高度,默认auto + height:'150px', + //是否禁用 + disabled:false, + //是否全屏 + fullScreen:false, + //全屏之后的坐标 + zIndex: 999, + //代码主题,目前只支持idea,可在组件自行扩展 + theme:'idea', + //代码提示 + keywords:['console'], + //语言如(javascript,vue,markdown)可在组件自行扩展 + language:'javascript' + }, + }, + { + label: '分类字典树', + field: 'dictTree', + component: 'JCategorySelect', + componentProps: { + //占位内容 + placeholder:'请选择分类字典树', + //查询条件,如“{'name':'笔记本'}” + condition:"", + //是否多选 + multiple: false, + //起始选择code,见配置的分类字典的类型编码 + pcode: 'A04', + //父级id + pid:'', + //返回key + back:'id', + }, + }, + { + label: '下拉多选', + field: 'selectMultiple', + component: 'JSelectMultiple', + componentProps: { + //字典code配置,比如通过性别字典编码:sex,也可以使用demo,name,id 表名,名称,值的方式 + dictCode:'company_rank', + //是否只读 + readOnly:false, + }, + }, + { + label: 'popup', + field: 'popup', + component: 'JPopup', + componentProps: ({ formActionType }) => { + const {setFieldsValue} = formActionType; + return{ + setFieldsValue:setFieldsValue, + //online报表编码 + code:"demo", + //是否为多选 + multi:false, + //字段配置 + fieldConfig: [ + { source: 'name', target: 'popup' }, + ], + } + }, + }, + { + label: '开关自定义', + field: 'switch', + component: 'JSwitch', + componentProps:{ + //取值 options + options:['Y','N'], + //文本option + labelOptions:['是', '否'], + //是否启用下拉 + query: false, + //是否禁用 + disabled: false, + }, + }, + { + label: '定时表达式选择', + field: 'timing', + component: 'JEasyCron', + componentProps:{ + //是否隐藏参数秒和年设置,如果隐藏,那么参数秒和年将会全部忽略掉。 + hideSecond: false, + //是否隐藏参数年设置,如果隐藏,那么参数年将会全部忽略掉 + hideYear: false, + //是否禁用 + disabled: false, + //获取预览执行时间列表的函数,格式为:remote (cron值, time时间戳, cb回调函数) + remote:(cron,time,cb)=>{} + }, + }, + { + label: '分类字典树', + field: 'treeDict', + component: 'JTreeDict', + componentProps:{ + //指定当前组件需要存储的字段 可选: id(主键)和code(编码) + field:'id', + //是否为异步 + async: true, + //是否禁用 + disabled: false, + //指定一个节点的编码,加载该节点下的所有字典数据,若不指定,默认加载所有数据 + parentCode:'A04' + }, + }, + { + label: '多行输入窗口', + field: 'inputPop', + component: 'JInputPop', + componentProps:{ + //标题 + title:'多行输入窗口', + //弹窗显示位置 + position:'bottom', + }, + }, + { + label: '多选', + field: 'multipleChoice', + component: 'JCheckbox', + componentProps:{ + //字典code配置,比如通过职位字典编码:company_rank,也可以使用demo,name,id 表名,名称,值的方式 + dictCode:'company_rank', + //是否禁用 + disabled: false, + //没有字典code可以使用option来定义 + // options:[ + // {label:'CE0',value:'1'} + // ] + }, + }, + { + label: '下拉树选择', + field: 'treeCusSelect', + component: 'JTreeSelect', + componentProps: { + //字典code配置,比如通过性别字典编码:sex,也可以使用sys_permission,name,id 表名,名称,值的方式 + dict: 'sys_permission,name,id', + //父级id字段 + pidField: 'parent_id', + }, + }, + { + label: '根据部门选择用户组件', + field: 'userByDept', + component: 'JSelectUserByDept', + componentProps: { + //是否显示选择按钮 + showButton: true, + //选择框标题 + modalTitle: '部门用户选择' + }, + }, + { + label: '文件上传', + field: 'uploadFile', + component: 'JUpload', + componentProps: { + //是否显示选择按钮 + text: '文件上传', + //最大上传数 + maxCount: 2, + //是否显示下载按钮 + download: true, + }, + }, + { + label: '字典表搜索', + field: 'dictSearchSelect', + component: 'JSearchSelect', + componentProps: { + //字典code配置,通过 demo,name,id 表名,名称,值的方式 + dict: 'demo,name,id', + //是否异步加载 + async: true, + //当async设置为true时有效,表示异步查询时,每次获取数据的数量,默认10 + pageSize:3 + }, + }, + { + label: '动态创建input框', + field: 'jAddInput', + component: 'JAddInput', + componentProps: { + //自定义超过多少行才会显示删除按钮,默认为1 + min:1 + }, + }, + { + label: '用户选择组件', + field: 'userCusSelect', + component: 'UserSelect', + componentProps: { + //是否多选 + multi: true, + //从用户表中选择一列,其值作为该控件的存储值,默认id列 + store: 'id', + //是否排除我自己(当前登录用户) + izExcludeMy: false, + //是否禁用 + disabled: false, + }, + }, + { + label: '选择角色组件', + field: 'roleSelect', + component: 'RoleSelect', + componentProps: { + //最大选择数量 + maxSelectCount: 3, + //是否单选 + isRadioSelection: false + }, + }, + { + label: '数值范围输入框', + field: 'rangeNumber', + component: 'JRangeNumber', + }, + { + label: '远程Api单选框组', + field: 'apiRadioGroup', + component: 'ApiRadioGroup', + componentProps:{ + //请求接口返回结果{ result:{ list: [ name: '选项0',id: '1' ] }} + api:()=> defHttp.get({ url: '/mock/select/getDemoOptions' }), + //请求参数 + params:{}, + //是否为按钮风格类型,默认false + isBtn: false, + //返回集合名称 + resultField: 'list', + //标题字段名称 + labelField: 'name', + //值字段名称 + valueField: 'id', + } + }, +]; diff --git a/src/views/demo/document/form/index.ts b/src/views/demo/document/form/index.ts new file mode 100644 index 0000000..1aa7cef --- /dev/null +++ b/src/views/demo/document/form/index.ts @@ -0,0 +1,24 @@ +export { default as BasicFiledsLayotForm } from './BasicFiledsLayotForm.vue'; +export { default as BasicFixedWidthForm } from './BasicFixedWidthForm.vue'; +export { default as BasicFormAdd } from './BasicFormAdd.vue'; +export { default as BasicFormBtn } from './BasicFormBtn.vue'; +export { default as BasicFormCleanRule } from './BasicFormCleanRule.vue'; +export { default as BasicFormCompact } from './BasicFormCompact.vue'; +export { default as BasicFormComponent } from './BasicFormComponent.vue'; +export { default as BasicFormConAttribute } from './BasicFormConAttribute.vue'; +export { default as BasicFormCustom } from './BasicFormCustom.vue'; +export { default as BasicFormCustomComponent } from './BasicFormCustomComponent.vue'; +export { default as BasicFormCustomSlots } from './BasicFormCustomSlots.vue'; +export { default as BasicFormDynamicsRules } from './BasicFormDynamicsRules.vue'; +export { default as BasicFormFieldShow } from './BasicFormFieldShow.vue'; +export { default as BasicFormFieldTip } from './BasicFormFieldTip.vue'; +export { default as BasicFormFooter } from './BasicFormFooter.vue'; +export { default as BasicFormLayout } from './BasicFormLayout.vue'; +export { default as BasicFormModal } from './BasicFormModal.vue'; +export { default as BasicFormRander } from './BasicFormRander.vue'; +export { default as BasicFormRules } from './BasicFormRules.vue'; +export { default as BasicFormSchemas } from './BasicFormSchemas.vue'; +export { default as BasicFormSearch } from './BasicFormSearch.vue'; +export { default as BasicFormSlots } from './BasicFormSlots.vue'; +export { default as BasicFormValue } from './BasicFormValue.vue'; +export { default as BasicFunctionForm } from './BasicFunctionForm.vue'; \ No newline at end of file diff --git a/src/views/demo/document/form/tabIndex.vue b/src/views/demo/document/form/tabIndex.vue new file mode 100644 index 0000000..bb1c918 --- /dev/null +++ b/src/views/demo/document/form/tabIndex.vue @@ -0,0 +1,114 @@ + + diff --git a/src/views/demo/document/table/AuthColumnDemo.vue b/src/views/demo/document/table/AuthColumnDemo.vue new file mode 100644 index 0000000..b53ca87 --- /dev/null +++ b/src/views/demo/document/table/AuthColumnDemo.vue @@ -0,0 +1,135 @@ + + diff --git a/src/views/demo/document/table/BasicTableBorder.vue b/src/views/demo/document/table/BasicTableBorder.vue new file mode 100644 index 0000000..73566d4 --- /dev/null +++ b/src/views/demo/document/table/BasicTableBorder.vue @@ -0,0 +1,94 @@ + + + + + diff --git a/src/views/demo/document/table/BasicTableDemo.vue b/src/views/demo/document/table/BasicTableDemo.vue new file mode 100644 index 0000000..2b58dde --- /dev/null +++ b/src/views/demo/document/table/BasicTableDemo.vue @@ -0,0 +1,81 @@ + + + + + diff --git a/src/views/demo/document/table/BasicTableDemoAjax.vue b/src/views/demo/document/table/BasicTableDemoAjax.vue new file mode 100644 index 0000000..dd53ef4 --- /dev/null +++ b/src/views/demo/document/table/BasicTableDemoAjax.vue @@ -0,0 +1,157 @@ + + + + + diff --git a/src/views/demo/document/table/CustomerCellDemo.vue b/src/views/demo/document/table/CustomerCellDemo.vue new file mode 100644 index 0000000..d625ce6 --- /dev/null +++ b/src/views/demo/document/table/CustomerCellDemo.vue @@ -0,0 +1,106 @@ + + diff --git a/src/views/demo/document/table/EditCellTableDemo.vue b/src/views/demo/document/table/EditCellTableDemo.vue new file mode 100644 index 0000000..795a06c --- /dev/null +++ b/src/views/demo/document/table/EditCellTableDemo.vue @@ -0,0 +1,217 @@ + + diff --git a/src/views/demo/document/table/EditRowTableDemo.vue b/src/views/demo/document/table/EditRowTableDemo.vue new file mode 100644 index 0000000..5ce07bf --- /dev/null +++ b/src/views/demo/document/table/EditRowTableDemo.vue @@ -0,0 +1,261 @@ + + diff --git a/src/views/demo/document/table/ExpandTableDemo.vue b/src/views/demo/document/table/ExpandTableDemo.vue new file mode 100644 index 0000000..89c0ef9 --- /dev/null +++ b/src/views/demo/document/table/ExpandTableDemo.vue @@ -0,0 +1,119 @@ + + diff --git a/src/views/demo/document/table/ExportTableDemo.vue b/src/views/demo/document/table/ExportTableDemo.vue new file mode 100644 index 0000000..50c723c --- /dev/null +++ b/src/views/demo/document/table/ExportTableDemo.vue @@ -0,0 +1,131 @@ + + + + + diff --git a/src/views/demo/document/table/FixedHeaderColumn.vue b/src/views/demo/document/table/FixedHeaderColumn.vue new file mode 100644 index 0000000..00f3f40 --- /dev/null +++ b/src/views/demo/document/table/FixedHeaderColumn.vue @@ -0,0 +1,98 @@ + + diff --git a/src/views/demo/document/table/InnerTableDemo.vue b/src/views/demo/document/table/InnerTableDemo.vue new file mode 100644 index 0000000..9173d66 --- /dev/null +++ b/src/views/demo/document/table/InnerTableDemo.vue @@ -0,0 +1,131 @@ + + diff --git a/src/views/demo/document/table/MergeHeaderDemo.vue b/src/views/demo/document/table/MergeHeaderDemo.vue new file mode 100644 index 0000000..68235d2 --- /dev/null +++ b/src/views/demo/document/table/MergeHeaderDemo.vue @@ -0,0 +1,70 @@ + + diff --git a/src/views/demo/document/table/MergeTableDemo.vue b/src/views/demo/document/table/MergeTableDemo.vue new file mode 100644 index 0000000..14574b4 --- /dev/null +++ b/src/views/demo/document/table/MergeTableDemo.vue @@ -0,0 +1,144 @@ + + + + + diff --git a/src/views/demo/document/table/SelectTableDemo.vue b/src/views/demo/document/table/SelectTableDemo.vue new file mode 100644 index 0000000..7dc5211 --- /dev/null +++ b/src/views/demo/document/table/SelectTableDemo.vue @@ -0,0 +1,80 @@ + + + + + diff --git a/src/views/demo/document/table/TreeTableDemo.vue b/src/views/demo/document/table/TreeTableDemo.vue new file mode 100644 index 0000000..802c043 --- /dev/null +++ b/src/views/demo/document/table/TreeTableDemo.vue @@ -0,0 +1,124 @@ + + diff --git a/src/views/demo/document/table/index.ts b/src/views/demo/document/table/index.ts new file mode 100644 index 0000000..9069393 --- /dev/null +++ b/src/views/demo/document/table/index.ts @@ -0,0 +1,15 @@ +export { default as AuthColumnDemo } from './AuthColumnDemo.vue'; +export { default as BasicTableBorder } from './BasicTableBorder.vue'; +export { default as BasicTableDemo } from './BasicTableDemo.vue'; +export { default as BasicTableDemoAjax } from './BasicTableDemoAjax.vue'; +export { default as CustomerCellDemo } from './CustomerCellDemo.vue'; +export { default as EditCellTableDemo } from './EditCellTableDemo.vue'; +export { default as EditRowTableDemo } from './EditRowTableDemo.vue'; +export { default as ExpandTableDemo } from './ExpandTableDemo.vue'; +export { default as ExportTableDemo } from './ExportTableDemo.vue'; +export { default as FixedHeaderColumn } from './FixedHeaderColumn.vue'; +export { default as InnerTableDemo } from './InnerTableDemo.vue'; +export { default as MergeHeaderDemo } from './MergeHeaderDemo.vue'; +export { default as MergeTableDemo } from './MergeTableDemo.vue'; +export { default as SelectTableDemo } from './SelectTableDemo.vue'; +export { default as TreeTableDemo } from './TreeTableDemo.vue'; \ No newline at end of file diff --git a/src/views/demo/document/table/tabIndex.vue b/src/views/demo/document/table/tabIndex.vue new file mode 100644 index 0000000..261c9c3 --- /dev/null +++ b/src/views/demo/document/table/tabIndex.vue @@ -0,0 +1,87 @@ + + From a588da907d1fcb024ac91288eb2032c14ecafa27 Mon Sep 17 00:00:00 2001 From: zhangdaiscott Date: Fri, 29 Dec 2023 21:23:37 +0800 Subject: [PATCH 02/11] =?UTF-8?q?=E4=BC=81=E4=B8=9A=E5=BE=AE=E4=BF=A1?= =?UTF-8?q?=E6=94=AF=E6=8C=81=E6=94=B9=E9=80=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/system/appconfig/ThirdApp.api.ts | 36 ++ src/views/system/appconfig/ThirdApp.data.ts | 2 +- .../ThirdAppBindWeEnterpriseModal.vue | 316 ++++++++++++++++++ .../system/appconfig/ThirdAppConfigList.vue | 8 +- .../system/appconfig/ThirdAppConfigModal.vue | 5 + .../appconfig/ThirdAppDingTalkConfigForm.vue | 9 +- .../ThirdAppWeEnterpriseConfigForm.vue | 247 ++++++++++++++ 7 files changed, 615 insertions(+), 8 deletions(-) create mode 100644 src/views/system/appconfig/ThirdAppBindWeEnterpriseModal.vue create mode 100644 src/views/system/appconfig/ThirdAppWeEnterpriseConfigForm.vue diff --git a/src/views/system/appconfig/ThirdApp.api.ts b/src/views/system/appconfig/ThirdApp.api.ts index 4793a06..8b65255 100644 --- a/src/views/system/appconfig/ThirdApp.api.ts +++ b/src/views/system/appconfig/ThirdApp.api.ts @@ -6,6 +6,10 @@ enum Api { editThirdAppConfig = '/sys/thirdApp/editThirdAppConfig', getThirdConfigByTenantId = '/sys/thirdApp/getThirdConfigByTenantId', syncDingTalkDepartUserToLocal = '/sys/thirdApp/sync/dingtalk/departAndUser/toLocal', + getThirdUserByWechat = '/sys/thirdApp/getThirdUserByWechat', + wechatEnterpriseToLocal = '/sys/thirdApp/sync/wechatEnterprise/departAndUser/toLocal', + getThirdUserBindByWechat = '/sys/thirdApp/getThirdUserBindByWechat', + deleteThirdAccount = '/sys/thirdApp/deleteThirdAccount', } /** @@ -31,3 +35,35 @@ export const getThirdConfigByTenantId = (params) => { export const syncDingTalkDepartUserToLocal = () => { return defHttp.get({ url: Api.syncDingTalkDepartUserToLocal }, { isTransformResponse: false }); }; + +/** + * 获取企业微信绑定的用户信息 + * @param params + */ +export const getThirdUserByWechat = () => { + return defHttp.get({ url: Api.getThirdUserByWechat }, { isTransformResponse: false }); +}; + +/** + * 同步企业微信用户部门到本地 + * @param params + */ +export const wechatEnterpriseToLocal = (params) => { + return defHttp.get({ url: Api.wechatEnterpriseToLocal, params }, { isTransformResponse: false }); +}; + +/** + * 获取绑定企业微信的用户 + * @param params + */ +export const getThirdUserBindByWechat = () => { + return defHttp.get({ url: Api.getThirdUserBindByWechat }, { isTransformResponse: false }); +}; + +/** + * 根据第三方账号表的id解绑账号 + * @param params + */ +export const deleteThirdAccount = (params) => { + return defHttp.delete({ url: Api.deleteThirdAccount, params }, { isTransformResponse:false, joinParamsToUrl: true }); +}; \ No newline at end of file diff --git a/src/views/system/appconfig/ThirdApp.data.ts b/src/views/system/appconfig/ThirdApp.data.ts index b02a1e3..2f0b487 100644 --- a/src/views/system/appconfig/ThirdApp.data.ts +++ b/src/views/system/appconfig/ThirdApp.data.ts @@ -37,7 +37,7 @@ export const thirdAppFormSchema: FormSchema[] = [ label: 'agentAppSecret', field: 'agentAppSecret', component: 'Input', - ifShow: ({ values }) => values.thirdType == 'wechat_enterprise', + ifShow: false, },{ label: '启用', field: 'status', diff --git a/src/views/system/appconfig/ThirdAppBindWeEnterpriseModal.vue b/src/views/system/appconfig/ThirdAppBindWeEnterpriseModal.vue new file mode 100644 index 0000000..1367bc0 --- /dev/null +++ b/src/views/system/appconfig/ThirdAppBindWeEnterpriseModal.vue @@ -0,0 +1,316 @@ + + + + + + diff --git a/src/views/system/appconfig/ThirdAppConfigList.vue b/src/views/system/appconfig/ThirdAppConfigList.vue index 097dfd4..6d55f97 100644 --- a/src/views/system/appconfig/ThirdAppConfigList.vue +++ b/src/views/system/appconfig/ThirdAppConfigList.vue @@ -3,14 +3,14 @@
-
- +
+
@@ -18,12 +18,14 @@ + + From 308326a5f9fb228eae6901dc09e6c142dde5716f Mon Sep 17 00:00:00 2001 From: zhangdaiscott Date: Fri, 29 Dec 2023 21:23:56 +0800 Subject: [PATCH 03/11] =?UTF-8?q?=E5=B0=8F=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .env.development | 1 + .gitignore | 1 + LICENSE | 4 +++- index.html | 2 ++ src/router/routes/index.ts | 2 ++ src/router/routes/modules/demo/comp.ts | 8 -------- src/settings/siteSetting.ts | 2 +- src/utils/http/axios/index.ts | 1 + src/views/system/message/template/index.vue | 1 + src/views/system/notice/DetailModal.vue | 2 +- src/views/system/role/index.vue | 2 -- src/views/system/tenant/TenantUserList.vue | 2 +- src/views/system/user/index.vue | 2 -- src/views/system/user/user.api.ts | 13 ++++++------- src/views/system/user/user.data.ts | 10 +++++++++- 15 files changed, 29 insertions(+), 24 deletions(-) diff --git a/.env.development b/.env.development index 60d6a9c..5560e19 100644 --- a/.env.development +++ b/.env.development @@ -4,6 +4,7 @@ VITE_USE_MOCK = true # 发布路径 VITE_PUBLIC_PATH = / + # 跨域代理,您可以配置多个 ,请注意,没有换行符 VITE_PROXY = [["/jeecgboot","http://localhost:8080/jeecg-boot"],["/upload","http://localhost:3300/upload"]] diff --git a/.gitignore b/.gitignore index a7b1fe6..6aef0f8 100644 --- a/.gitignore +++ b/.gitignore @@ -22,6 +22,7 @@ pnpm-debug.log* # Editor directories and files .idea +.svn # .vscode *.suo *.ntvs* diff --git a/LICENSE b/LICENSE index 2476d1d..7afdd65 100644 --- a/LICENSE +++ b/LICENSE @@ -32,4 +32,6 @@ SOFTWARE. 违反此条款属于侵权行为,须赔偿侵权经济损失,同时立即停止著作权侵权行为。 总结:在遵循Apache开源协议和开源协议补充条款下,允许商用使用,不会造成侵权行为! - 解释权归:http://www.jeecg.com + 解释权归: + http://www.jeecg.com + http://guojusoft.com diff --git a/index.html b/index.html index 67ddad8..ef61a19 100644 --- a/index.html +++ b/index.html @@ -166,6 +166,7 @@ + + diff --git a/src/router/routes/index.ts b/src/router/routes/index.ts index 4911b81..6df062f 100644 --- a/src/router/routes/index.ts +++ b/src/router/routes/index.ts @@ -39,6 +39,7 @@ export const LoginRoute: AppRouteRecordRaw = { }, }; +//update-begin---author:wangshuai ---date:20220629 for:auth2登录页面路由------------ export const Oauth2LoginRoute: AppRouteRecordRaw = { path: '/oauth2-app/login', name: 'oauth2-app-login', @@ -49,6 +50,7 @@ export const Oauth2LoginRoute: AppRouteRecordRaw = { title: t('routes.oauth2.login'), }, }; +//update-end---author:wangshuai ---date:20220629 for:auth2登录页面路由------------ /** * 【通过token直接静默登录】流程办理登录页面 中转跳转 diff --git a/src/router/routes/modules/demo/comp.ts b/src/router/routes/modules/demo/comp.ts index 9e99120..cc0cc44 100644 --- a/src/router/routes/modules/demo/comp.ts +++ b/src/router/routes/modules/demo/comp.ts @@ -466,14 +466,6 @@ const comp: AppRouteModule = { title: t('routes.demo.feat.copy'), }, }, - { - path: 'codemirror', - name: 'codemirrorDemo', - component: () => import('/@/views/demo/codemirror/index.vue'), - meta: { - title: t('routes.demo.feat.codemirror'), - }, - }, { path: 'ripple', name: 'RippleDemo', diff --git a/src/settings/siteSetting.ts b/src/settings/siteSetting.ts index 06c1195..234c1ab 100644 --- a/src/settings/siteSetting.ts +++ b/src/settings/siteSetting.ts @@ -2,7 +2,7 @@ export const GITHUB_URL = 'https://github.com/jeecgboot/jeecg-boot'; // vue-Jeecg-admin-next-doc -export const DOC_URL = 'http://help.jeecg.com'; +export const DOC_URL = 'https://help.jeecg.com'; // site url export const SITE_URL = 'http://www.jeecg.com'; diff --git a/src/utils/http/axios/index.ts b/src/utils/http/axios/index.ts index 1fff683..89ce34c 100644 --- a/src/utils/http/axios/index.ts +++ b/src/utils/http/axios/index.ts @@ -245,6 +245,7 @@ function createAxios(opt?: Partial) { // authentication schemes,e.g: Bearer // authenticationScheme: 'Bearer', authenticationScheme: '', + //接口超时设置 timeout: 10 * 1000, // 基础接口地址 // baseURL: globSetting.apiUrl, diff --git a/src/views/system/message/template/index.vue b/src/views/system/message/template/index.vue index d1b5945..6dcab25 100644 --- a/src/views/system/message/template/index.vue +++ b/src/views/system/message/template/index.vue @@ -196,6 +196,7 @@ */ function handleDetail(record) { openModal(true,{ + title: "消息模板详情", isUpdate: true, showFooter: false, record:record diff --git a/src/views/system/notice/DetailModal.vue b/src/views/system/notice/DetailModal.vue index 7497e73..d6b258a 100644 --- a/src/views/system/notice/DetailModal.vue +++ b/src/views/system/notice/DetailModal.vue @@ -1,5 +1,5 @@