hookehuyr

fix 代码整理

/*
* @Date: 2024-08-14 13:22:31
* @LastEditors: hookehuyr hookehuyr@gmail.com
* @LastEditTime: 2024-08-14 13:37:52
* @FilePath: /data-table/src/hooks/queryFormData.js
* @Description: 文件描述
*/
import { queryFormAPI } from "@/api/form.js";
import { Cookies, $, _, axios, storeToRefs, mainStore, Toast, useTitle, } from "@/utils/generatePackage.js";
// 获取表单设置
const store = mainStore();
const { formSetting, formInfo, successInfo } = storeToRefs(store);
const form_name = ref('')
const form_code = $route.query.code ? $route.query.code : '';
const page_type = $route.query.page_type ? $route.query.page_type : 'add';
const data_id = $route.query.data_id ? $route.query.data_id : null;
const flow_node_code = $route.query.flow_node_code ? $route.query.flow_node_code :formSetting.value.flow_node_code; // flow_node_code 表示随机选择的流程节点的ID
// 强制后台检查标识
const force_back = $route.query.force_back ? $route.query.force_back : '';
const form_flow_process_list = ref([]);
const active_flow_process = ref([]);
const PHeader = ref({});
const PCommit = ref({});
const { data, flow_process_list, code } = await queryFormAPI({ form_code, page_type, data_id, flow_node_code, force_back }); // flow_node_code 表示随机选择的流程节点的ID
const form_data = data;
// 处理审批意见显示
if (code) {
setTimeout(() => {
form_flow_process_list.value = flow_process_list; // 上中下游节点的审批意见
if (flow_process_list?.length) {
active_flow_process.value.push(flow_process_list[0]['created_time']);
// nextTick(() => {
// // 全部展开
// collapseRef.value?.toggleAll(true);
// })
}
}, 1000);
}
// 缓存表单信息
store.changeFormInfo(data);
// 表单网页标题
useTitle(form_data.name);
form_name.value = form_data.name;
// 重构数据结构
let page_header = {};
let page_commit = {};
let page_form = [];
form_data.field_list.forEach((element) => {
if (element.tag === "page_header") {
// 页眉组件
page_header = element;
} else if (element.tag === "page_commit") {
// 提交按钮
page_commit = element;
} else {
page_form.push(element);
}
});
/** 页眉属性
* @param label 表单标题
* @param banner_type 页眉类型:["文字", "单张图", "轮播图"] text=文字,image=单张图,carousel=轮播图
* @param banner_url 页眉图片地址
* @param description 描述内容
* @param invisible 页眉展示
*/
if (page_header) {
PHeader.value = {
label: page_header.label,
description: page_header.description,
type: page_header.banner_type,
cover: page_header.banner_url,
banner: page_header.banner,
visible: !page_header.invisible,
flow_node_name: formSetting.value.flow_node_name ? formSetting.value.flow_node_name : '', // 节点名称
};
}
if (page_commit) {
PCommit.value = {
text: page_commit.text,
visible: !page_commit.invisible,
};
}
// TODO:待完善,集合组保存的字段和值怎么处理,都是单条数据都要合并到相应的 group_field_name 下面?
// page_form.unshift({
// data_type : "text",
// default : "",
// disabled : false,
// field_id : 1414832,
// field_name : "field_4",
// index : 41,
// interaction_type : "h5edit",
// label : "物品详情",
// name : "name_41",
// placeholder : "请输入",
// readonly : false,
// required : false,
// tag : "group",
// unique : false,
// field_groups: [{
// "tag": "input",
// "name": "input_21",
// "index": 2,
// "label": "物品描述",
// "unique": false,
// "default": "",
// "disabled": false,
// "field_id": 7985071,
// "readonly": false,
// "required": false,
// "data_type": "text",
// "field_name": "field_10",
// "placeholder": "请输入",
// "is_camera_scan": false,
// "camera_scan_type": "",
// "interaction_type": "h5edit",
// "is_edit_camera_scan_result": false,
// "group_field_name" : "field_4",
// },{
// "tag": "gender",
// "name": "gender_3",
// "note": "",
// "index": 3,
// "label": "性别",
// "options": [
// {
// "title": "男",
// "value": "男",
// "checked": false,
// "desc_url": "",
// "is_input": false,
// "desc_text": "",
// "desc_type": "",
// "desc_btn_name": "",
// "input_required": false,
// "input_placeholder": "请输入补充信息"
// },
// {
// "title": "女",
// "value": "女",
// "checked": false,
// "desc_url": "",
// "is_input": false,
// "desc_text": "",
// "desc_type": "",
// "desc_btn_name": "",
// "input_required": false,
// "input_placeholder": "请输入补充信息"
// }
// ],
// "disabled": false,
// "field_id": 799603,
// "required": false,
// "data_type": "text",
// "direction": "vertical",
// "field_name": "field_4",
// "option_map": {
// "女": {
// "title": "女",
// "value": "女",
// "checked": false,
// "desc_url": "",
// "is_input": false,
// "desc_text": "",
// "desc_type": "",
// "desc_btn_name": "",
// "input_required": false,
// "input_placeholder": "请输入补充信息"
// },
// "男": {
// "title": "男",
// "value": "男",
// "checked": false,
// "desc_url": "",
// "is_input": false,
// "desc_text": "",
// "desc_type": "",
// "desc_btn_name": "",
// "input_required": false,
// "input_placeholder": "请输入补充信息"
// }
// },
// "interaction_type": "h5edit"
// },]
// });
// TEST 新组件
// page_form.push({
// "tag": "table_editor",
// "name": "name_2",
// "index": 2,
// "label": "表格",
// "unique": false,
// "default": "<p>999</p>",
// "disabled": false,
// "field_id": 799599,
// "readonly": false,
// "required": false,
// "data_type": "text",
// "field_name": "field_2",
// "placeholder": "请输入",
// "interaction_type": "h5edit"
// })
// page_form.push({
// data_type: "text",
// default: "选项标题1",
// direction: "vertical",
// disabled: false,
// field_id: 800207,
// field_name: "field_62",
// index: 61,
// interaction_type: "h5edit",
// label: "义工组别",
// name: "radio_61",
// note: "",
// required: false,
// tag: "volunteer_group",
// options: [
// {
// checked: true,
// desc_btn_name: "",
// desc_text: "",
// desc_type: "",
// desc_url: "",
// input_placeholder: "请输入补充信息",
// input_required: false,
// is_input: false,
// title: "选项标题1",
// value: "选项标题1"
// },
// {
// checked: false,
// desc_btn_name: "",
// desc_text: "",
// desc_type: "",
// desc_url: "",
// input_placeholder: "请输入补充信息",
// input_required: false,
// is_input: false,
// title: "选项标题2",
// value: "选项标题2"
// }
// ]
// })
formData.value = formatData(page_form);
return {
form_name,
form_flow_process_list,
active_flow_process,
PHeader,
PCommit,
formData
}
// TAG: mock数据
mockData.value = [
{
key: "field_1",
value: "",
component: "",
component_props: {
name: "appointment",
tag: "appointment",
label: "预约时间",
default: '',
required: true,
placeholder: '',
appointment_title: '选择入寺时间',
options: [{
title: '03月27日',
placeholder: '剩余余量 9878',
value: '',
disabled: false,
columns: [{
checked : false,
disabled : false,
value: '1',
text : "16:00-17:30 余1399",
}, {
checked : false,
disabled : true,
value: '2',
text : "18:00-19:30 余1399",
}]
}, {
title: '03月28日',
placeholder: '剩余余量 9878',
value: '',
disabled: false,
columns: [{
checked : false,
disabled : true,
value: '3',
text : "16:00-17:30 余1399",
}, {
checked : false,
disabled : false,
value: '4',
text : "16:00-17:30 余1399",
}]
}, {
title: '03月28日',
placeholder: '等待预约(提前一天)',
value: '',
disabled: true,
columns: [{
checked : false,
disabled : true,
value: '5',
text : "12:00-13:30 余1399",
}, {
checked : false,
disabled : false,
value: '6',
text : "14:00-15:30 余1399",
}]
}]
},
},
];
// 生成自定义组件
// createComponentType(mockData.value);
// TODO:待完善,集合组保存的字段和值怎么处理,都是单条数据都要合并到相应的 group_field_name 下面?
// page_form.unshift({
// data_type : "text",
// default : "",
// disabled : false,
// field_id : 1414832,
// field_name : "field_4",
// index : 41,
// interaction_type : "h5edit",
// label : "物品详情",
// name : "name_41",
// placeholder : "请输入",
// readonly : false,
// required : false,
// tag : "group",
// unique : false,
// field_groups: [{
// "tag": "input",
// "name": "input_21",
// "index": 2,
// "label": "物品描述",
// "unique": false,
// "default": "",
// "disabled": false,
// "field_id": 7985071,
// "readonly": false,
// "required": false,
// "data_type": "text",
// "field_name": "field_10",
// "placeholder": "请输入",
// "is_camera_scan": false,
// "camera_scan_type": "",
// "interaction_type": "h5edit",
// "is_edit_camera_scan_result": false,
// "group_field_name" : "field_4",
// },{
// "tag": "gender",
// "name": "gender_3",
// "note": "",
// "index": 3,
// "label": "性别",
// "options": [
// {
// "title": "男",
// "value": "男",
// "checked": false,
// "desc_url": "",
// "is_input": false,
// "desc_text": "",
// "desc_type": "",
// "desc_btn_name": "",
// "input_required": false,
// "input_placeholder": "请输入补充信息"
// },
// {
// "title": "女",
// "value": "女",
// "checked": false,
// "desc_url": "",
// "is_input": false,
// "desc_text": "",
// "desc_type": "",
// "desc_btn_name": "",
// "input_required": false,
// "input_placeholder": "请输入补充信息"
// }
// ],
// "disabled": false,
// "field_id": 799603,
// "required": false,
// "data_type": "text",
// "direction": "vertical",
// "field_name": "field_4",
// "option_map": {
// "女": {
// "title": "女",
// "value": "女",
// "checked": false,
// "desc_url": "",
// "is_input": false,
// "desc_text": "",
// "desc_type": "",
// "desc_btn_name": "",
// "input_required": false,
// "input_placeholder": "请输入补充信息"
// },
// "男": {
// "title": "男",
// "value": "男",
// "checked": false,
// "desc_url": "",
// "is_input": false,
// "desc_text": "",
// "desc_type": "",
// "desc_btn_name": "",
// "input_required": false,
// "input_placeholder": "请输入补充信息"
// }
// },
// "interaction_type": "h5edit"
// },]
// });
// TEST 新组件
// page_form.push({
// "tag": "table_editor",
// "name": "name_2",
// "index": 2,
// "label": "表格",
// "unique": false,
// "default": "<p>999</p>",
// "disabled": false,
// "field_id": 799599,
// "readonly": false,
// "required": false,
// "data_type": "text",
// "field_name": "field_2",
// "placeholder": "请输入",
// "interaction_type": "h5edit"
// })
// page_form.push({
// data_type: "text",
// default: "选项标题1",
// direction: "vertical",
// disabled: false,
// field_id: 800207,
// field_name: "field_62",
// index: 61,
// interaction_type: "h5edit",
// label: "义工组别",
// name: "radio_61",
// note: "",
// required: false,
// tag: "volunteer_group",
// options: [
// {
// checked: true,
// desc_btn_name: "",
// desc_text: "",
// desc_type: "",
// desc_url: "",
// input_placeholder: "请输入补充信息",
// input_required: false,
// is_input: false,
// title: "选项标题1",
// value: "选项标题1"
// },
// {
// checked: false,
// desc_btn_name: "",
// desc_text: "",
// desc_type: "",
// desc_url: "",
// input_placeholder: "请输入补充信息",
// input_required: false,
// is_input: false,
// title: "选项标题2",
// value: "选项标题2"
// }
// ]
// })
formData.value = formatData(page_form);
<!--
* @Date: 2022-07-18 10:22:22
* @LastEditors: hookehuyr hookehuyr@gmail.com
* @LastEditTime: 2024-08-12 11:15:45
* @LastEditTime: 2024-08-14 13:43:10
* @FilePath: /data-table/src/views/index.vue
* @Description: 首页
-->
......@@ -207,6 +207,7 @@ import LoginBox from '@/components/LoginBox/index.vue';
// 获取表单设置
const store = mainStore();
const { formSetting, formInfo, successInfo } = storeToRefs(store);
// web端判断封面图片高度
const is_pc = computed(() => wxInfo().isPC);
const PHeaderHeight = computed(() => {
......@@ -216,6 +217,7 @@ const PHeaderHeight = computed(() => {
return "20vh";
}
});
// TAG: 自定义主题颜色
const themeVars = {
buttonPrimaryBackground: styleColor.baseColor,
......@@ -460,169 +462,7 @@ onMounted(async () => {
visible: !page_commit.invisible,
};
}
// TODO:待完善,集合组保存的字段和值怎么处理,都是单条数据都要合并到相应的 group_field_name 下面?
// page_form.unshift({
// data_type : "text",
// default : "",
// disabled : false,
// field_id : 1414832,
// field_name : "field_4",
// index : 41,
// interaction_type : "h5edit",
// label : "物品详情",
// name : "name_41",
// placeholder : "请输入",
// readonly : false,
// required : false,
// tag : "group",
// unique : false,
// field_groups: [{
// "tag": "input",
// "name": "input_21",
// "index": 2,
// "label": "物品描述",
// "unique": false,
// "default": "",
// "disabled": false,
// "field_id": 7985071,
// "readonly": false,
// "required": false,
// "data_type": "text",
// "field_name": "field_10",
// "placeholder": "请输入",
// "is_camera_scan": false,
// "camera_scan_type": "",
// "interaction_type": "h5edit",
// "is_edit_camera_scan_result": false,
// "group_field_name" : "field_4",
// },{
// "tag": "gender",
// "name": "gender_3",
// "note": "",
// "index": 3,
// "label": "性别",
// "options": [
// {
// "title": "男",
// "value": "男",
// "checked": false,
// "desc_url": "",
// "is_input": false,
// "desc_text": "",
// "desc_type": "",
// "desc_btn_name": "",
// "input_required": false,
// "input_placeholder": "请输入补充信息"
// },
// {
// "title": "女",
// "value": "女",
// "checked": false,
// "desc_url": "",
// "is_input": false,
// "desc_text": "",
// "desc_type": "",
// "desc_btn_name": "",
// "input_required": false,
// "input_placeholder": "请输入补充信息"
// }
// ],
// "disabled": false,
// "field_id": 799603,
// "required": false,
// "data_type": "text",
// "direction": "vertical",
// "field_name": "field_4",
// "option_map": {
// "女": {
// "title": "女",
// "value": "女",
// "checked": false,
// "desc_url": "",
// "is_input": false,
// "desc_text": "",
// "desc_type": "",
// "desc_btn_name": "",
// "input_required": false,
// "input_placeholder": "请输入补充信息"
// },
// "男": {
// "title": "男",
// "value": "男",
// "checked": false,
// "desc_url": "",
// "is_input": false,
// "desc_text": "",
// "desc_type": "",
// "desc_btn_name": "",
// "input_required": false,
// "input_placeholder": "请输入补充信息"
// }
// },
// "interaction_type": "h5edit"
// },]
// });
// TEST 新组件
// page_form.push({
// "tag": "table_editor",
// "name": "name_2",
// "index": 2,
// "label": "表格",
// "unique": false,
// "default": "<p>999</p>",
// "disabled": false,
// "field_id": 799599,
// "readonly": false,
// "required": false,
// "data_type": "text",
// "field_name": "field_2",
// "placeholder": "请输入",
// "interaction_type": "h5edit"
// })
// page_form.push({
// data_type: "text",
// default: "选项标题1",
// direction: "vertical",
// disabled: false,
// field_id: 800207,
// field_name: "field_62",
// index: 61,
// interaction_type: "h5edit",
// label: "义工组别",
// name: "radio_61",
// note: "",
// required: false,
// tag: "volunteer_group",
// options: [
// {
// checked: true,
// desc_btn_name: "",
// desc_text: "",
// desc_type: "",
// desc_url: "",
// input_placeholder: "请输入补充信息",
// input_required: false,
// is_input: false,
// title: "选项标题1",
// value: "选项标题1"
// },
// {
// checked: false,
// desc_btn_name: "",
// desc_text: "",
// desc_type: "",
// desc_url: "",
// input_placeholder: "请输入补充信息",
// input_required: false,
// is_input: false,
// title: "选项标题2",
// value: "选项标题2"
// }
// ]
// })
formData.value = formatData(page_form);
// TAG:获取原来表单数据
......@@ -671,75 +511,6 @@ onMounted(async () => {
show_loading.value = false;
}
// TAG: mock数据
mockData.value = [
{
key: "field_1",
value: "",
component: "",
component_props: {
name: "appointment",
tag: "appointment",
label: "预约时间",
default: '',
required: true,
placeholder: '',
appointment_title: '选择入寺时间',
options: [{
title: '03月27日',
placeholder: '剩余余量 9878',
value: '',
disabled: false,
columns: [{
checked : false,
disabled : false,
value: '1',
text : "16:00-17:30 余1399",
}, {
checked : false,
disabled : true,
value: '2',
text : "18:00-19:30 余1399",
}]
}, {
title: '03月28日',
placeholder: '剩余余量 9878',
value: '',
disabled: false,
columns: [{
checked : false,
disabled : true,
value: '3',
text : "16:00-17:30 余1399",
}, {
checked : false,
disabled : false,
value: '4',
text : "16:00-17:30 余1399",
}]
}, {
title: '03月28日',
placeholder: '等待预约(提前一天)',
value: '',
disabled: true,
columns: [{
checked : false,
disabled : true,
value: '5',
text : "12:00-13:30 余1399",
}, {
checked : false,
disabled : false,
value: '6',
text : "14:00-15:30 余1399",
}]
}]
},
},
];
// 生成自定义组件
// createComponentType(mockData.value);
createComponentType(formData.value);
// TAG:不同类型提交表单处理
if (page_type === 'add') { // 表单为新增状态
......@@ -1128,7 +899,7 @@ const successHandle = () => { // 表单成功提交后续操作
}
}
const onSubmit = async (values) => {
const onSubmit = async (values) => { // 表单提交回调
// 表单数据处理
postData.value = preValidData(values);
// 合并扩展字段
......