From ac3c164adc9cee7d24277ee9fbf3b6b6d90b4cfe Mon Sep 17 00:00:00 2001 From: limengnan <420004014@qq.com> Date: Wed, 28 May 2025 13:32:53 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- examples/App.vue | 8 +++- src/components/FcDesigner.vue | 80 ++++++++++++++++++++++++++-------- src/config/base/field.js | 8 ++-- src/locale/zh-cn.js | 2 +- 方法集合.docx | Bin 63429 -> 63893 bytes 5 files changed, 73 insertions(+), 25 deletions(-) diff --git a/examples/App.vue b/examples/App.vue index c0403ef..913692e 100644 --- a/examples/App.vue +++ b/examples/App.vue @@ -67,7 +67,8 @@ --> + :locale="locale" :handle="handle" :config="config" :appUrl="'http://192.168.1.38:8100'" + :appId="'1907238244651679745'"> - !node.children?.length }, fieldData:[], - datasetId: '', // 数据集id + tableId: '', // 数据集id pageData: [], @@ -1072,6 +1073,7 @@ export default defineComponent({ api: {}, }), formOptions: { + appUrl:gisBiUrl, datasetInfo:{} }, oldOptionsKeys: [], @@ -1344,8 +1346,12 @@ export default defineComponent({ // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ const methods = { + /** + * 开始 + * 李梦楠 2025.05.25 + * 自定义方法 + */ dsClick(id) { - methods.onDatasetChange(id) data.datasetData.forEach(element => { if(element.table_id == id){ data.datasetInfo = element @@ -1353,27 +1359,41 @@ export default defineComponent({ data.formOptions.datasetInfo = element } }); + methods.onDatasetChange(data.datasetInfo) }, - onDatasetChange(id){ - let appUrl = data.appUrl - if( data.appUrl == null){ - appUrl = "http://192.168.1.38:8100" + onDatasetChange(row){ + let token = "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1aWQiOjEsIm9pZCI6MX0.i8pMPviPZoQyjXML3dLfLek4XML2acUf-x0K90u9KoY" + if(localStorage.getItem("user.token")!=undefined && localStorage.getItem("user.token") !=""){ + const usertoken = JSON.parse(localStorage.getItem('user.token')) + token = JSON.parse(usertoken.v) + } + let appUrl = gisBiUrl + if( appUrl == null){ + appUrl = "" } data.fieldData = [] axios.get( appUrl + '/datasetData/getFieldsByTableId', { + headers: { + "X-De-Token":token + }, params: { - id: id + datasourceId: row.datasource_id, + tablename:row.table_name } }).then(response => { console.log(response) - response.data.data.forEach(element => { + + data.datasetInfo.keyfeilds = response.data.data.keyfeilds + data.formOptions.datasetInfo.keyfeilds = response.data.data.keyfeilds + response.data.data.fields.forEach(element => { element.label = element.name element.item = 'input', + element.iskey = element.iskey element.fieldtype = element.type, element.maxlength = element.size, element.field = element.origin_name element.update = { - disabled: false + disabled:element.iskey } data.fieldData.push(element) }) @@ -1382,13 +1402,22 @@ export default defineComponent({ }); }, getInit(){ - let appUrl = data.appUrl - if( data.appUrl == null){ - appUrl = "http://192.168.1.38:8100" + data.formOptions.appUrl = gisBiUrl + let appUrl = gisBiUrl + if( appUrl == null){ + appUrl = "" + } + let token = "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1aWQiOjEsIm9pZCI6MX0.i8pMPviPZoQyjXML3dLfLek4XML2acUf-x0K90u9KoY" + if(localStorage.getItem("user.token")!=undefined && localStorage.getItem("user.token") !=""){ + const usertoken = JSON.parse(localStorage.getItem('user.token')) + token = JSON.parse(usertoken.v) } axios.get( appUrl+ '/datasetData/getTablesByAppId', { + headers: { + "X-De-Token":token + }, params: { - appid: '1907238244651679745' + appid: props.appId } }).then(response => { data.datasetData = response.data.data @@ -1396,7 +1425,11 @@ export default defineComponent({ console.error(' 请求出错:', error); }); }, - + /** + * 结束 + * 李梦楠 2025.05.25 + * 自定义方法 + */ setDevice(device) { data.device = device; vm.emit('changeDevice', device); @@ -1891,6 +1924,10 @@ export default defineComponent({ fcx.active = ''; }, setOption(opt) { + if( opt.datasetInfo && opt.datasetInfo.table_id ){ + data.tableId = opt.datasetInfo.table_id + methods.dsClick(data.tableId) + } const defOptions = deepCopy(methods.getConfig('formOptions', {})); const defForm = defOptions.form || {}; delete defOptions.form; @@ -1917,6 +1954,7 @@ export default defineComponent({ if (!hasProperty(options, 'globalEvent')) { options.globalEvent = {}; } + options.appUrl = gisBiUrl || ''; if (!hasProperty(options, 'globalData')) { options.globalData = {}; } @@ -2134,7 +2172,6 @@ export default defineComponent({ return data.dragForm.api.all().map(rule => rule.field).filter(id => !!id); }, getTitle(rule) { - debugger return (rule?.__fc__?.refRule?.__$title?.value || rule.title || '').trim() || (rule.props && rule.props.label) || t('com.' + (rule._menu && rule._menu.name) + '.name') || (rule._menu && rule._menu.label) || rule.type }, baseChange(field, value, _, fapi) { @@ -2461,7 +2498,7 @@ export default defineComponent({ fieldtype: rule.fieldtype || '', info: rule.info, ignore: rule.ignore || false, - attributeId: rule.attributeId || false, + iskey: rule.iskey || false, _control: rule._control, ...formData }; @@ -2511,6 +2548,10 @@ export default defineComponent({ update }); } else if (menu.item) { + if(data.dragRuleList[menu.item] !=undefined && menu.iskey != undefined ){ + data.dragRuleList[menu.item].iskey = menu.iskey; + } + methods.dragMenu({ menu: data.dragRuleList[menu.item], children: children || data.children, @@ -2839,6 +2880,9 @@ export default defineComponent({ }, makeRule(config, _rule) { let rule = _rule || config.rule({t}); + if(config && config.iskey){ + rule.iskey = config.iskey; + } const updateRule = updateDefaultRule.value && updateDefaultRule.value[config.name]; if (!_rule && updateRule) { if (typeof updateRule === 'function') { diff --git a/src/config/base/field.js b/src/config/base/field.js index bc6ab55..2340297 100644 --- a/src/config/base/field.js +++ b/src/config/base/field.js @@ -6,14 +6,14 @@ export default function field({t}) { type: 'ConfigItem', col: {show: true}, style: 'margin-bottom: 10px', - name: 'attributeId', + name: 'iskey', props: { - label: t('form.attributeId'), - warning: t('warning.attributeId'), + label: t('form.iskey'), + warning: t('warning.iskey'), }, children: [{ type: 'switch', - field: 'attributeId', + field: 'iskey', value: false, wrap: {show: false}, col: {show: false}, diff --git a/src/locale/zh-cn.js b/src/locale/zh-cn.js index e55a957..f1313e1 100644 --- a/src/locale/zh-cn.js +++ b/src/locale/zh-cn.js @@ -3,7 +3,7 @@ const ZhCn = { form: { field: '字段 ID', title: '字段名称', - attributeId: '是否主键', + iskey: '是否主键', fieldtype: '字段类型', info: '提示信息', ignore: '忽略字段', diff --git a/方法集合.docx b/方法集合.docx index cf5b58db484df2c1283b6b13b141fd8eb9619ffe..3827ec27783ad02383c84df417db23a8af6f2505 100644 GIT binary patch delta 6517 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