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 cf5b58d..3827ec2 100644 Binary files a/方法集合.docx and b/方法集合.docx differ