hookehuyr

fix 权限控制, 页面参数判断页面功能

......@@ -2,7 +2,7 @@
* @Author: hookehuyr hookehuyr@gmail.com
* @Date: 2022-05-26 23:52:36
* @LastEditors: hookehuyr hookehuyr@gmail.com
* @LastEditTime: 2024-06-26 09:38:31
* @LastEditTime: 2024-06-28 17:08:06
* @FilePath: /data-table/src/App.vue
* @Description:
-->
......@@ -72,7 +72,7 @@ onMounted(async () => {
const code = getUrlParams(location.href) ? getUrlParams(location.href).code : '';
const model = getUrlParams(location.href) ? getUrlParams(location.href).model : '';
const data_id = getUrlParams(location.href) ? getUrlParams(location.href).data_id : '';
// 权限控制新增参数
// 权限控制, 页面参数判断页面功能
/**
* add 新增页
* info 详情页
......@@ -82,7 +82,7 @@ onMounted(async () => {
const page_type = getUrlParams(location.href) ? getUrlParams(location.href).page_type : '';
const raw_url = encodeURIComponent(location.pathname + location.hash);
// 数据收集设置
const { data } = await getFormSettingAPI({ form_code: code });
const { data } = await getFormSettingAPI({ form_code: code, page_type, data_id });
const form_setting = {};
if (data.length) {
Object.assign(form_setting, data[0]['property_list'], data[0]['extend']);
......
<!--
* @Date: 2022-07-18 10:22:22
* @LastEditors: hookehuyr hookehuyr@gmail.com
* @LastEditTime: 2024-06-28 14:22:00
* @LastEditTime: 2024-06-28 17:07:28
* @FilePath: /data-table/src/views/index.vue
* @Description: 首页
-->
......@@ -182,12 +182,22 @@ const postData = ref({});
// 编辑模式不能提交操作
const model = $route.query.model;
// 标记表单类型-只读标识
const form_type = $route.query.type;
// 权限控制, 页面参数判断页面功能
/**
* add 新增页
* info 详情页
* edit 编辑页
* flow 流程页
*/
const page_type = $route.query.page_type ? $route.query.page_type : null;
//
const data_id = $route.query.data_id ? $route.query.data_id : null;
// 模仿金数据的扩展参数
const x_field_1 = $route.query.x_field_1 ? $route.query.x_field_1 : null;
// 周期ID标识
const x_cycle = $route.query.x_cycle ? $route.query.x_cycle : null;
// iframe传值openid
const iframe_openid = getUrlParams(location.href) ? getUrlParams(location.href).openid : '';
// 格式化表单数据结构
const formatData = (data) => {
......@@ -309,7 +319,7 @@ onMounted(async () => {
document
.querySelector("body")
.setAttribute("style", `background-color: ${styleColor.backgroundColor}`);
const { data } = await queryFormAPI({ form_code: $route.query.code });
const { data } = await queryFormAPI({ form_code: $route.query.code, page_type, data_id });
const form_data = data;
// 缓存表单信息
store.changeFormInfo(data);
......@@ -523,9 +533,6 @@ onMounted(async () => {
formData.value = formatData(page_form);
// TAG:获取原来表单数据
// iframe传值openid
const iframe_openid = getUrlParams(location.href) ? getUrlParams(location.href).openid : '';
const data_id = $route.query.data_id;
if (data_id) { // 如果有data_id,则获取历史数据 否则获取表单默认值
const history_data = await queryFormDataAPI({ form_code: $route.query.code, data_id, openid: iframe_openid });
if (history_data.code) {
......@@ -536,7 +543,7 @@ onMounted(async () => {
if (item.key === key) {
item.component_props.default = element;
// 设置读写权限 read_only read_write
if (form_type === 'readonly') {
if (page_type === 'info') {
item.component_props.readonly = true;
PCommit.value.visible = false; // 只读模式下,提交按钮隐藏
}
......@@ -939,14 +946,11 @@ const onSubmit = async (values) => {
if (model === 'edit') {
console.warn(postData.value);
}
if (model === 'edit' || model === 'preview' || form_type === 'readonly') return false;
if (model === 'edit' || model === 'preview' || page_type === 'info') return false;
// 提交按钮禁用
submitStatus.value = true;
// iframe传值openid
const iframe_openid = getUrlParams(location.href) ? getUrlParams(location.href).openid : '';
//
const data_id = getUrlParams(location.href) ? getUrlParams(location.href).data_id : '';
if (!data_id) { // 正常表单提交
// TAG:不同类型提交表单处理
if (page_type === 'add' || page_type == null) { // 新增表单提交
// 通过验证
const result = await addFormDataAPI({
form_code: $route.query.code,
......@@ -983,7 +987,7 @@ const onSubmit = async (values) => {
// 提交按钮禁用状态
submitStatus.value = false;
}
} else {
} else if (page_type === 'edit') { // 编辑表单提交
// 编辑模式表单提交
const result = await modiFormDataAPI({
form_code: $route.query.code,
......@@ -991,7 +995,6 @@ const onSubmit = async (values) => {
openid: iframe_openid,
data_id
});
// TODO: 后续流程可能不一致,需要讨论
if (result.code) {
// 提交按钮禁用状态
submitStatus.value = false;
......@@ -1005,6 +1008,10 @@ const onSubmit = async (values) => {
// 提交按钮禁用状态
submitStatus.value = false;
}
} else if (page_type === 'flow') { // TODO: 流程表单提交
} else {
console.warn('缺参数');
}
} else {
// 提交按钮禁用状态
......