|
@@ -68,9 +68,9 @@ var zkqyTable = {
|
|
|
`,
|
|
|
data() {
|
|
|
return {
|
|
|
- zkqyTablePageJson:[{"type":"zkqyTable","field":"Fic7m9vb08gnbdc","title":"表格","$required":false,"props":{"addZkqyTableRow":109,"updateZkqyTableRow":108,"pageId":127},"columns":[{"tableName":"stu","tableType":"primary","columnName":"主键","showValue":"id","searchValue":"stu@id"},{"tableName":"stu","tableType":"primary","columnName":"名称","showValue":"name","searchValue":"stu@name"},{"tableName":"cls","tableType":"sub","primaryKey":"cls_id","subKey":"id","columnName":"课程名","showValue":"name","searchValue":"cls@name"}],"_fc_id":"id_Fimrm9vb08gnbec","name":"ref_Ftedm9vb08gnbfc","display":true,"hidden":false,"_fc_drag_tag":"zkqyTable"}],
|
|
|
+ zkqyTablePageJson:[{"type":"zkqyTable","field":"Fcgdma2cofgiazc","title":"表格","$required":false,"props":{"addZkqyTableRow":144,"updateZkqyTableRow":145,"pageId":146},"columns":[{"tableName":"stu","tableType":"primary","columnName":"主键","showValue":"id","searchValue":"stu@id"},{"tableName":"stu","tableType":"primary","columnName":"名称","showValue":"name","searchValue":"stu@name"},{"tableName":"stu","tableType":"primary","columnName":"老师id","showValue":"teacher_id","searchValue":"stu@teacher_id"},{"tableName":"stu","tableType":"primary","columnName":"习惯集合","showValue":"habbit_collection","searchValue":"stu@habbit_collection"},{"tableName":"stu","tableType":"primary","columnName":"树id","showValue":"tree_id","searchValue":"stu@tree_id"},{"tableName":"stu","tableType":"primary","columnName":"性别","showValue":"sex","searchValue":"stu@sex"},{"tableName":"stu","tableType":"primary","columnName":"树id2","showValue":"tree_id_two","searchValue":"stu@tree_id_two"},{"tableName":"stu","tableType":"primary","columnName":"穿梭框id集合","showValue":"el_transfer_id","searchValue":"stu@el_transfer_id"},{"tableName":"cls","tableType":"sub","primaryKey":"cls_id","subKey":"id","columnName":"课程名","showValue":"name","searchValue":"cls@name"}],"_fc_id":"id_Fwqsma2cofgib0c","name":"ref_Fk8ema2cofgib1c","display":true,"hidden":false,"_fc_drag_tag":"zkqyTable"}],
|
|
|
tableData: [],
|
|
|
- columns: [{"prop":"stu@id","label":"主键"},{"prop":"stu@name","label":"名称"},{"prop":"cls@name","label":"课程名"}],
|
|
|
+ columns: [{"prop":"stu@id","label":"主键"},{"prop":"stu@name","label":"名称"},{"prop":"stu@teacher_id","label":"老师id"},{"prop":"stu@habbit_collection","label":"习惯集合"},{"prop":"stu@tree_id","label":"树id"},{"prop":"stu@sex","label":"性别"},{"prop":"stu@tree_id_two","label":"树id2"},{"prop":"stu@el_transfer_id","label":"穿梭框id集合"},{"prop":"cls@name","label":"课程名"}],
|
|
|
radio: '',
|
|
|
policyData: {},
|
|
|
currentPage4: 1,
|
|
@@ -242,19 +242,15 @@ var zkqyTable = {
|
|
|
await this.fetchGet(endpoint , params,(data) => {
|
|
|
if (data.code === 200) {
|
|
|
const decodedHtml = decodeURIComponent(data.data.htmlData);
|
|
|
-
|
|
|
- // 创建全屏 iframe
|
|
|
const iframe = document.createElement('iframe');
|
|
|
iframe.srcdoc = decodedHtml;
|
|
|
iframe.style.width = '100%';
|
|
|
iframe.style.height = '100vh';
|
|
|
iframe.style.border = 'none';
|
|
|
-
|
|
|
- // 清空页面并插入 iframe
|
|
|
document.body.innerHTML = '';
|
|
|
document.body.appendChild(iframe);
|
|
|
// 将 pageId 存储到 localStorage
|
|
|
- localStorage.setItem('sharedPageId', pageId);
|
|
|
+ localStorage.setItem('sharedPageId', this.pageId);
|
|
|
}
|
|
|
});
|
|
|
},
|
|
@@ -308,17 +304,138 @@ new Vue({
|
|
|
el: '#app',
|
|
|
data() {
|
|
|
return {
|
|
|
- rule: formCreate.parseJson('[{"type":"zkqyTable","field":"Fic7m9vb08gnbdc","title":"表格","$required":false,"props":{"addZkqyTableRow":109,"updateZkqyTableRow":108,"pageId":127},"columns":[{"tableName":"stu","tableType":"primary","columnName":"主键","showValue":"id","searchValue":"stu@id"},{"tableName":"stu","tableType":"primary","columnName":"名称","showValue":"name","searchValue":"stu@name"},{"tableName":"cls","tableType":"sub","primaryKey":"cls_id","subKey":"id","columnName":"课程名","showValue":"name","searchValue":"cls@name"}],"_fc_id":"id_Fimrm9vb08gnbec","name":"ref_Ftedm9vb08gnbfc","display":true,"hidden":false,"_fc_drag_tag":"zkqyTable"}]'),
|
|
|
- options: formCreate.parseJson('{"form":{"inline":false,"hideRequiredAsterisk":false,"showMessage":true,"inlineMessage":false,"labelPosition":"right","labelWidth":"125px","validateOnRuleChange":false,"size":"small","formName":"aaaa"},"resetBtn":{"show":false,"innerText":"重置"},"submitBtn":{"show":false,"innerText":"提交"}}'),
|
|
|
+ rule: formCreate.parseJson('[{"type":"zkqyTable","field":"Fcgdma2cofgiazc","title":"表格","$required":false,"props":{"addZkqyTableRow":144,"updateZkqyTableRow":145,"pageId":146},"columns":[{"tableName":"stu","tableType":"primary","columnName":"主键","showValue":"id","searchValue":"stu@id"},{"tableName":"stu","tableType":"primary","columnName":"名称","showValue":"name","searchValue":"stu@name"},{"tableName":"stu","tableType":"primary","columnName":"老师id","showValue":"teacher_id","searchValue":"stu@teacher_id"},{"tableName":"stu","tableType":"primary","columnName":"习惯集合","showValue":"habbit_collection","searchValue":"stu@habbit_collection"},{"tableName":"stu","tableType":"primary","columnName":"树id","showValue":"tree_id","searchValue":"stu@tree_id"},{"tableName":"stu","tableType":"primary","columnName":"性别","showValue":"sex","searchValue":"stu@sex"},{"tableName":"stu","tableType":"primary","columnName":"树id2","showValue":"tree_id_two","searchValue":"stu@tree_id_two"},{"tableName":"stu","tableType":"primary","columnName":"穿梭框id集合","showValue":"el_transfer_id","searchValue":"stu@el_transfer_id"},{"tableName":"cls","tableType":"sub","primaryKey":"cls_id","subKey":"id","columnName":"课程名","showValue":"name","searchValue":"cls@name"}],"_fc_id":"id_Fwqsma2cofgib0c","name":"ref_Fk8ema2cofgib1c","display":true,"hidden":false,"_fc_drag_tag":"zkqyTable"}]'),
|
|
|
+ options: formCreate.parseJson('{"form":{"inline":false,"hideRequiredAsterisk":false,"showMessage":true,"inlineMessage":false,"labelPosition":"right","labelWidth":"125px","validateOnRuleChange":false,"size":"small","formName":"表格1"},"resetBtn":{"show":false,"innerText":"重置"},"submitBtn":{"show":true,"innerText":"提交"}}'),
|
|
|
formData: {},
|
|
|
api: null,
|
|
|
+ zkqyData:[],
|
|
|
+ zkqyUpload:[],
|
|
|
};
|
|
|
},
|
|
|
methods: {
|
|
|
onSubmit(formData){
|
|
|
console.log('submit', formData);
|
|
|
+
|
|
|
+ },
|
|
|
+ async zkqyDataApi(data,type,id){
|
|
|
+ let zkqyData = this.zkqyData;
|
|
|
+ if (!zkqyData || zkqyData.length === 0) return;
|
|
|
+ const headers = {
|
|
|
+ 'Accept': 'application/json',
|
|
|
+ 'dbname': 'undefined',
|
|
|
+ 'Content-Type': 'application/json'
|
|
|
+ };
|
|
|
+ try {
|
|
|
+ let response;
|
|
|
+ if (type === 'cascader' || type === 'tree') {
|
|
|
+ // 调用树形接口 POST
|
|
|
+ const apiUrl = 'undefinedapi/mobilePageDesignData/tree';
|
|
|
+ console.log('调用树形接口:', apiUrl);
|
|
|
+ response = await fetch(apiUrl, {
|
|
|
+ method: 'POST',
|
|
|
+ headers,
|
|
|
+ body: JSON.stringify(data)
|
|
|
+ });
|
|
|
+ } else {
|
|
|
+ // 调用下拉框接口 GET
|
|
|
+ let x = new URLSearchParams(data).toString()
|
|
|
+ const apiUrl = 'undefinedapi/mobilePageDesignData/dropdown?'+x;
|
|
|
+ console.log('调用下拉框接口:', apiUrl);
|
|
|
+ response = await fetch(apiUrl, {
|
|
|
+ method: 'GET',
|
|
|
+ headers
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
+ if (!response.ok) {
|
|
|
+ throw new Error('HTTP error! status:response.status');
|
|
|
+ }
|
|
|
+ const result = await response.json();
|
|
|
+ const targetRule = this.rule.find(item => item._fc_id === id);
|
|
|
+ if (type === 'tree') {
|
|
|
+ this.$set(targetRule?.props, 'data', result.data);
|
|
|
+ }
|
|
|
+ else if(type === 'cascader'){
|
|
|
+ this.$set(targetRule.props, 'options', result.data);
|
|
|
+
|
|
|
+ }else if(type === 'elTransfer'){
|
|
|
+ this.$set(targetRule.props, 'data', result.data);
|
|
|
+ }else {
|
|
|
+ this.$set(targetRule, 'options', result.data);
|
|
|
+ }
|
|
|
+ this.rule =formCreate.parseJson(formCreate.toJson([...this.rule])); // 触发重新渲染
|
|
|
+
|
|
|
+ return result;
|
|
|
+
|
|
|
+ } catch (error) {
|
|
|
+ console.error('type接口请求失败:', error);
|
|
|
+ throw error;
|
|
|
+ }
|
|
|
+ },
|
|
|
+ transformTreeToSingleObject(node) {
|
|
|
+ if (!node) return node;
|
|
|
+
|
|
|
+ // 创建新对象,避免修改原对象
|
|
|
+ const newNode = {...node};
|
|
|
+
|
|
|
+ // 处理 childrenTree
|
|
|
+ if (Array.isArray(newNode.childrenTree) ){
|
|
|
+ if (newNode.childrenTree.length > 0) {
|
|
|
+ // 取第一个元素作为对象
|
|
|
+ newNode.childrenTree = this.transformTreeToSingleObject(newNode.childrenTree[0]);
|
|
|
+ } else {
|
|
|
+ // 空数组转为 null 或 undefined
|
|
|
+ newNode.childrenTree = null;
|
|
|
+ }
|
|
|
+ } else if (newNode.childrenTree) {
|
|
|
+ // 如果不是数组但存在 childrenTree,递归处理
|
|
|
+ newNode.childrenTree = this.transformTreeToSingleObject(newNode.childrenTree);
|
|
|
+ }
|
|
|
+
|
|
|
+ return newNode;
|
|
|
+ },
|
|
|
+ },
|
|
|
+ mounted() {
|
|
|
+ this.rule.forEach(ruleItem => {
|
|
|
+ if(ruleItem.type=="upload"){
|
|
|
+ console.log('ruleItem',ruleItem)
|
|
|
+ console.log('this.rule ',this.rule )
|
|
|
+ if(ruleItem?.value.length>0){
|
|
|
+ const processedUrl = 'undefined'.endsWith('/') ?'undefined'.slice(0, -1) : 'undefined'; // 如果 url 最后一个字符是斜杠,则去掉它
|
|
|
+ console.log('processedUrl',processedUrl)
|
|
|
+ ruleItem.value = ruleItem.value.map(
|
|
|
+ item => processedUrl+item
|
|
|
+ );
|
|
|
+ }
|
|
|
+ console.log(' ruleItem.value ', ruleItem.value )
|
|
|
+
|
|
|
+ // this.rule =formCreate.parseJson(formCreate.toJson([...this.rule])); // 触发重新渲染
|
|
|
+ ruleItem.props.onSuccess="[[FORM-CREATE-PREFIX-function onSuccess(res, file){const key='upload_row';const existingData=sessionStorage.getItem(key);let fileList=existingData?JSON.parse(existingData):[];if(!Array.isArray(fileList)){fileList=[];}const newItem={fileName: file.response.fileName, url: file.url};fileList.push(newItem);sessionStorage.setItem(key,JSON.stringify(fileList));}-FORM-CREATE-SUFFIX]]"
|
|
|
+ }
|
|
|
+ })
|
|
|
+ let zkqyData = this.zkqyData
|
|
|
+ if(zkqyData && zkqyData.length>0){
|
|
|
+ console.log('[this.rule]',this.rule)
|
|
|
+ this.rule.forEach(ruleItem => {
|
|
|
+ const matchedData = zkqyData.find(dataItem => dataItem._fc_id === ruleItem._fc_id);
|
|
|
+ if (matchedData) {
|
|
|
+ if (matchedData?.type !== 'cascader' && matchedData?.type !== 'tree') {
|
|
|
+ resultObj = {
|
|
|
+ tableName: matchedData?.parentNode?.tableName,
|
|
|
+ valueName: matchedData?.parentNode?.primaryIdField,
|
|
|
+ labelName: matchedData?.parentNode?.showValue,
|
|
|
+ type: matchedData?.type
|
|
|
+ };
|
|
|
+ this.zkqyDataApi(resultObj,matchedData?.type,matchedData._fc_id)
|
|
|
+ }
|
|
|
+ else {
|
|
|
+ resultObj = this.transformTreeToSingleObject(matchedData.parentNode);
|
|
|
+ resultObj.componentType = matchedData?.type
|
|
|
+ this.zkqyDataApi(resultObj,matchedData?.type,matchedData._fc_id)
|
|
|
+ }
|
|
|
}
|
|
|
- }
|
|
|
+ })
|
|
|
+ }},
|
|
|
})
|
|
|
</script>
|
|
|
</body>
|