From c402eec7266e0624d65ad18c0a77e9c82f2f5529 Mon Sep 17 00:00:00 2001 From: zhangdaiscott Date: Thu, 24 Nov 2022 10:27:53 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=90=E9=87=8D=E8=A6=81=E5=8D=87=E7=BA=A7?= =?UTF-8?q?=E3=80=913.4.4=20online=E4=BD=8E=E4=BB=A3=E7=A0=81=E5=8A=9F?= =?UTF-8?q?=E8=83=BD=EF=BC=8C=E4=BE=9D=E8=B5=96=E5=8D=87=E7=BA=A7=20&=20?= =?UTF-8?q?=E5=8D=87=E7=BA=A7=E5=B0=81=E8=A3=85=E7=BB=84=E4=BB=B6=E5=BA=93?= =?UTF-8?q?=20=E5=85=B7=E4=BD=93=E5=8D=87=E7=BA=A7=E5=86=85=E5=AE=B9?= =?UTF-8?q?=EF=BC=9A=20=E6=94=AF=E6=8C=81=E9=AB=98=E7=BA=A7=E6=9F=A5?= =?UTF-8?q?=E8=AF=A2=E6=8E=A7=E4=BB=B6=20online=E8=A1=A8=E5=8D=95=E9=99=84?= =?UTF-8?q?=E8=A1=A8=E6=94=AF=E6=8C=81=E7=9C=81=E5=B8=82=E5=8C=BA=E7=BB=84?= =?UTF-8?q?=E4=BB=B6=20online=E8=A1=A8=E5=8D=95=E5=BC=80=E5=8F=91=E6=98=AF?= =?UTF-8?q?=E5=90=A6=E6=94=AF=E6=8C=81=E5=A4=9A=E7=A7=9F=E6=88=B7=20online?= =?UTF-8?q?=E8=A1=A8=E5=8D=95,=E6=94=AF=E6=8C=81=E5=BF=AB=E9=80=9F?= =?UTF-8?q?=E9=85=8D=E7=BD=AE=E8=8F=9C=E5=8D=95=20online=E6=8A=A5=E8=A1=A8?= =?UTF-8?q?,=E6=94=AF=E6=8C=81=E5=BF=AB=E9=80=9F=E9=85=8D=E7=BD=AE?= =?UTF-8?q?=E8=8F=9C=E5=8D=95=20online=E8=A1=A8=E5=8D=95=E6=89=A9=E5=B1=95?= =?UTF-8?q?=E9=85=8D=E7=BD=AE=E4=BC=98=E5=8C=96=E4=BD=BF=E7=94=A8=E4=BD=93?= =?UTF-8?q?=E9=AA=8C=20online=E8=A1=A8=E5=8D=95=20js=E5=A2=9E=E5=BC=BA?= =?UTF-8?q?=E8=BE=93=E5=85=A5=E5=A4=9A=E4=B8=AAhook=E6=8A=A5=E9=94=99?= =?UTF-8?q?=E5=A4=84=E7=90=86=20online=E8=A1=A8=E5=8D=95=EF=BC=8C=E5=80=BC?= =?UTF-8?q?=E8=A7=84=E5=88=99=E7=9A=84JS=E5=A2=9E=E5=BC=BA=E5=86=99?= =?UTF-8?q?=E6=B3=95=E6=89=A7=E8=A1=8C=E6=8A=A5=E9=94=99=20#251=20online?= =?UTF-8?q?=E8=A1=A8=E5=8D=95=EF=BC=8C=E7=94=A8=E6=88=B7=E9=80=89=E6=8B=A9?= =?UTF-8?q?=20=E6=8E=A7=E4=BB=B6=E7=9A=84=E5=8D=95=E9=80=89=E6=8E=A7?= =?UTF-8?q?=E5=88=B6=E6=B2=A1=E6=9C=89=E6=95=88=E6=9E=9C=20#242?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package.json | 2 +- pnpm-lock.yaml | 10 +- src/components/Form/src/componentMap.ts | 2 + .../Form/src/jeecg/components/JRangeDate.vue | 65 +++++++++++++ .../src/jeecg/components/JRangeNumber.vue | 23 +++-- .../Form/src/jeecg/components/JTreeSelect.vue | 94 +++++++++++++++++-- src/components/Form/src/types/index.ts | 2 + src/components/JVxeCustom/index.ts | 2 + .../JVxeCustom/src/components/JVxePcaCell.vue | 77 +++++++++++++++ .../Table/src/components/TableAction.vue | 5 +- src/components/Table/src/types/table.ts | 2 + .../jeecg/JVxeTable/src/types/JVxeTypes.ts | 2 + src/views/demo/jeecg/JeecgComponents.vue | 20 +++- src/views/demo/jeecg/jeecgComponents.data.ts | 34 +++++++ 14 files changed, 312 insertions(+), 28 deletions(-) create mode 100644 src/components/Form/src/jeecg/components/JRangeDate.vue create mode 100644 src/components/JVxeCustom/src/components/JVxePcaCell.vue diff --git a/package.json b/package.json index f127bb7..cfaa443 100644 --- a/package.json +++ b/package.json @@ -34,7 +34,7 @@ "gen:icon": "esno ./build/generate/icon/index.ts" }, "dependencies": { - "@jeecg/online": "3.4.3-GA", + "@jeecg/online": "3.4.4-RC", "@iconify/iconify": "^2.2.1", "@ant-design/colors": "^6.0.0", "@ant-design/icons-vue": "^6.1.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 606d7fb..f44204d 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -11,7 +11,7 @@ specifiers: '@commitlint/config-conventional': ^16.2.1 '@iconify/iconify': ^2.2.1 '@iconify/json': ^2.1.30 - '@jeecg/online': 3.4.3-GA + '@jeecg/online': 3.4.4-RC '@logicflow/core': ^1.1.13 '@logicflow/extension': ^1.1.13 '@purge-icons/generated': ^0.8.1 @@ -148,7 +148,7 @@ dependencies: '@ant-design/colors': registry.npmmirror.com/@ant-design/colors/6.0.0 '@ant-design/icons-vue': registry.npmmirror.com/@ant-design/icons-vue/6.1.0_vue@3.2.43 '@iconify/iconify': registry.npmmirror.com/@iconify/iconify/2.2.1 - '@jeecg/online': registry.npmmirror.com/@jeecg/online/3.4.3-GA + '@jeecg/online': registry.npmmirror.com/@jeecg/online/3.4.4-RC '@logicflow/core': registry.npmmirror.com/@logicflow/core/1.1.30 '@logicflow/extension': registry.npmmirror.com/@logicflow/extension/1.1.30 '@vue/runtime-core': registry.npmmirror.com/@vue/runtime-core/3.2.43 @@ -2306,10 +2306,10 @@ packages: engines: {node: '>=8'} dev: true - registry.npmmirror.com/@jeecg/online/3.4.3-GA: - resolution: {integrity: sha512-MtZD7ue8gLB8d0HSclzMwpyzHLbBlhYw5hOCSQBAPjbySFAXj+ajKtZgvcl1uk7loTaK2pPJWmoUPBP/CUPWbw==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@jeecg/online/-/online-3.4.3-GA.tgz} + registry.npmmirror.com/@jeecg/online/3.4.4-RC: + resolution: {integrity: sha512-EjibCo++GszsWuLn3+kqaxt12Zim7f0XWSiHzypef4aAqBKYDnG30Z5K3j5W1g4g22fjVUkrb1rQ8rSLTlPdBw==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@jeecg/online/-/online-3.4.4-RC.tgz} name: '@jeecg/online' - version: 3.4.3-GA + version: 3.4.4-RC dev: false registry.npmmirror.com/@jest/console/27.5.1: diff --git a/src/components/Form/src/componentMap.ts b/src/components/Form/src/componentMap.ts index a273214..0fcbe6d 100644 --- a/src/components/Form/src/componentMap.ts +++ b/src/components/Form/src/componentMap.ts @@ -58,6 +58,7 @@ import JSearchSelect from './jeecg/components/JSearchSelect.vue'; import JAddInput from './jeecg/components/JAddInput.vue'; import { Time } from '/@/components/Time'; import JRangeNumber from './jeecg/components/JRangeNumber.vue'; +import JRangeDate from './jeecg/components/JRangeDate.vue' const componentMap = new Map(); @@ -125,6 +126,7 @@ componentMap.set('JUpload', JUpload); componentMap.set('JSearchSelect', JSearchSelect); componentMap.set('JAddInput', JAddInput); componentMap.set('JRangeNumber', JRangeNumber); +componentMap.set('RangeDate', JRangeDate); export function add(compName: ComponentType, component: Component) { componentMap.set(compName, component); diff --git a/src/components/Form/src/jeecg/components/JRangeDate.vue b/src/components/Form/src/jeecg/components/JRangeDate.vue new file mode 100644 index 0000000..0df9a85 --- /dev/null +++ b/src/components/Form/src/jeecg/components/JRangeDate.vue @@ -0,0 +1,65 @@ + + + + + \ No newline at end of file diff --git a/src/components/Form/src/jeecg/components/JRangeNumber.vue b/src/components/Form/src/jeecg/components/JRangeNumber.vue index 2e44892..7d34f05 100644 --- a/src/components/Form/src/jeecg/components/JRangeNumber.vue +++ b/src/components/Form/src/jeecg/components/JRangeNumber.vue @@ -1,8 +1,8 @@ @@ -11,19 +11,20 @@ * 查询条件用-数值范围查询 */ import { ref, watch } from 'vue'; + import { Form } from 'ant-design-vue'; + import { propTypes } from '/@/utils/propTypes'; + export default { name: 'JRangeNumber', props: { - value: { - type: Array, - default: ['', ''], - }, + value: propTypes.oneOfType([propTypes.string, propTypes.array]), }, - emits: ['change'], + emits: ['change', 'update:value'], setup(props, { emit }) { const beginValue = ref(''); const endValue = ref(''); - + const formItemContext = Form.useInjectFormItemContext(); + function handleChangeBegin(e) { beginValue.value = e.target.value; emitArray(); @@ -41,19 +42,21 @@ arr.push(begin); arr.push(end); emit('change', arr); + emit('update:value', arr); + formItemContext.onFieldChange(); } watch( () => props.value, (val) => { - if (val.length == 2) { + if (val && val.length == 2) { beginValue.value = val[0]; endValue.value = val[1]; } else { beginValue.value = ''; endValue.value = ''; } - } + }, {immediate: true} ); return { diff --git a/src/components/Form/src/jeecg/components/JTreeSelect.vue b/src/components/Form/src/jeecg/components/JTreeSelect.vue index 700c785..70b39c8 100644 --- a/src/components/Form/src/jeecg/components/JTreeSelect.vue +++ b/src/components/Form/src/jeecg/components/JTreeSelect.vue @@ -48,6 +48,10 @@ multiple: propTypes.bool.def(false), loadTriggleChange: propTypes.bool.def(false), reload: propTypes.number.def(1), + //update-begin-author:taoyan date:2022-11-8 for: issues/4173 Online JTreeSelect控件changeOptions方法未生效 + url: propTypes.string.def(''), + params: propTypes.object.def({}) + //update-end-author:taoyan date:2022-11-8 for: issues/4173 Online JTreeSelect控件changeOptions方法未生效 }); const attrs = useAttrs(); const emit = defineEmits(['change', 'update:value']); @@ -103,17 +107,23 @@ treeValue.value = null; } } else { - let params = { key: props.value }; - let result = await defHttp.get({ url: `${Api.view}${props.dict}`, params }, { isTransformResponse: false }); - if (result.success) { - let values = props.value.split(','); - treeValue.value = result.result.map((item, index) => ({ - key: values[index], - value: values[index], - label: item, - })); - onLoadTriggleChange(result.result[0]); + //update-begin-author:taoyan date:2022-11-8 for: issues/4173 Online JTreeSelect控件changeOptions方法未生效 + if(props.url){ + getItemFromTreeData(); + }else{ + let params = { key: props.value }; + let result = await defHttp.get({ url: `${Api.view}${props.dict}`, params }, { isTransformResponse: false }); + if (result.success) { + let values = props.value.split(','); + treeValue.value = result.result.map((item, index) => ({ + key: values[index], + value: values[index], + label: item, + })); + onLoadTriggleChange(result.result[0]); + } } + //update-end-author:taoyan date:2022-11-8 for: issues/4173 Online JTreeSelect控件changeOptions方法未生效 } } @@ -167,6 +177,9 @@ if (treeNode.dataRef.children) { return Promise.resolve(); } + if(props.url){ + return Promise.resolve(); + } let pid = treeNode.dataRef.key; let params = { pid: pid, @@ -262,6 +275,67 @@ }); } + //update-begin-author:taoyan date:2022-11-8 for: issues/4173 Online JTreeSelect控件changeOptions方法未生效 + watch(()=>props.url, async (val)=>{ + if(val){ + await loadRootByUrl(); + } + }); + + /** + * 根据自定义的请求地址加载数据 + */ + async function loadRootByUrl(){ + let url = props.url; + let params = props.params; + let res = await defHttp.get({ url, params }, { isTransformResponse: false }); + if (res.success && res.result) { + for (let i of res.result) { + i.key = i.value; + i.isLeaf = !!i.leaf; + } + treeData.value = [...res.result]; + } else { + console.log('数根节点查询结果异常', res); + } + } + + /** + * 根据已有的树数据 翻译选项 + */ + function getItemFromTreeData(){ + let data = treeData.value; + let arr = [] + findChildrenNode(data, arr); + if(arr.length>0){ + treeValue.value = arr + onLoadTriggleChange(arr[0]); + } + } + + /** + * 递归找子节点 + * @param data + * @param arr + */ + function findChildrenNode(data, arr){ + let val = props.value; + if(data && data.length){ + for(let item of data){ + if(val===item.value){ + arr.push({ + key: item.key, + value: item.value, + label: item.label||item.title + }) + }else{ + findChildrenNode(item.children, arr) + } + } + } + } + //update-end-author:taoyan date:2022-11-8 for: issues/4173 Online JTreeSelect控件changeOptions方法未生效 + // onCreated validateProp().then(() => { initDictInfo(); diff --git a/src/components/Form/src/types/index.ts b/src/components/Form/src/types/index.ts index e422dee..52467fe 100644 --- a/src/components/Form/src/types/index.ts +++ b/src/components/Form/src/types/index.ts @@ -141,4 +141,6 @@ export type ComponentType = | 'JSearchSelect' | 'JAddInput' | 'Time' + | 'RangeDate' + | 'RangeNumber' | 'JRangeNumber'; diff --git a/src/components/JVxeCustom/index.ts b/src/components/JVxeCustom/index.ts index d875d64..e2d0caa 100644 --- a/src/components/JVxeCustom/index.ts +++ b/src/components/JVxeCustom/index.ts @@ -22,4 +22,6 @@ export async function registerJVxeCustom() { await registerAsyncComponent(JVxeTypes.userSelect, import('./src/components/JVxeUserSelectCell.vue')); // 注册【部门选择】组件 await registerAsyncComponent(JVxeTypes.departSelect, import('./src/components/JVxeDepartSelectCell.vue')); + // 注册【省市区选择】组件 + await registerAsyncComponent(JVxeTypes.pca, import('./src/components/JVxePcaCell.vue')); } diff --git a/src/components/JVxeCustom/src/components/JVxePcaCell.vue b/src/components/JVxeCustom/src/components/JVxePcaCell.vue new file mode 100644 index 0000000..b547892 --- /dev/null +++ b/src/components/JVxeCustom/src/components/JVxePcaCell.vue @@ -0,0 +1,77 @@ + + + + diff --git a/src/components/Table/src/components/TableAction.vue b/src/components/Table/src/components/TableAction.vue index 100e8cc..4fe82a6 100644 --- a/src/components/Table/src/components/TableAction.vue +++ b/src/components/Table/src/components/TableAction.vue @@ -149,7 +149,10 @@ .@{prefix-cls} { display: flex; align-items: center; - + /* update-begin-author:taoyan date:2022-11-18 for: 表格默认行高比官方示例多出2px*/ + height: 22px; + /* update-end-author:taoyan date:2022-11-18 for: 表格默认行高比官方示例多出2px*/ + .action-divider { display: table; } diff --git a/src/components/Table/src/types/table.ts b/src/components/Table/src/types/table.ts index 2803928..7193f04 100644 --- a/src/components/Table/src/types/table.ts +++ b/src/components/Table/src/types/table.ts @@ -447,6 +447,8 @@ export interface BasicColumn extends ColumnProps { auth?: RoleEnum | RoleEnum[] | string | string[]; // 业务控制是否显示 ifShow?: boolean | ((column: BasicColumn) => boolean); + //compType-用于记录类型 + compType?: string; } export type ColumnChangeParam = { diff --git a/src/components/jeecg/JVxeTable/src/types/JVxeTypes.ts b/src/components/jeecg/JVxeTable/src/types/JVxeTypes.ts index 060b62a..c6e7d7b 100644 --- a/src/components/jeecg/JVxeTable/src/types/JVxeTypes.ts +++ b/src/components/jeecg/JVxeTable/src/types/JVxeTypes.ts @@ -44,6 +44,8 @@ export enum JVxeTypes { radio = 'radio', image = 'image', file = 'file', + // 省市区 + pca = 'pca', } // 为了防止和 vxe 内置的类型冲突,所以加上一个前缀 diff --git a/src/views/demo/jeecg/JeecgComponents.vue b/src/views/demo/jeecg/JeecgComponents.vue index 864e8e0..c66e1ef 100644 --- a/src/views/demo/jeecg/JeecgComponents.vue +++ b/src/views/demo/jeecg/JeecgComponents.vue @@ -33,6 +33,9 @@ +