hookehuyr

✨ feat: 入口添加参数force_back, 强制按照后台用户模式检查权限

......@@ -2,7 +2,7 @@
* @Author: hookehuyr hookehuyr@gmail.com
* @Date: 2022-05-26 23:52:36
* @LastEditors: hookehuyr hookehuyr@gmail.com
* @LastEditTime: 2024-08-02 22:58:05
* @LastEditTime: 2024-08-12 11:12:35
* @FilePath: /data-table/src/App.vue
* @Description:
-->
......@@ -82,8 +82,9 @@ onMounted(async () => {
const page_type = getUrlParams(location.href) ? getUrlParams(location.href).page_type : '';
const raw_url = encodeURIComponent(location.pathname + location.hash);
const flow_node_code = getUrlParams(location.href) ? getUrlParams(location.href).flow_node_code : ''; // flow_node_code 表示随机选择的流程节点的ID
const force_back = getUrlParams(location.href) ? getUrlParams(location.href).force_back : ''; // force_back=1 时,强制按照后台用户模式检查权限
// 数据收集设置
const { data } = await getFormSettingAPI({ form_code: code, page_type, data_id, flow_node_code });
const { data } = await getFormSettingAPI({ form_code: code, page_type, data_id, flow_node_code, force_back });
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-08-09 19:22:14
* @LastEditTime: 2024-08-12 11:15:45
* @FilePath: /data-table/src/views/index.vue
* @Description: 首页
-->
......@@ -193,16 +193,7 @@
<script setup>
import "@vant/touch-emulator";
import { createComponentType } from "@/hooks/useComponentType";
import {
Cookies,
$,
_,
axios,
storeToRefs,
mainStore,
Toast,
useTitle,
} from "@/utils/generatePackage.js";
import { Cookies, $, _, axios, storeToRefs, mainStore, Toast, useTitle, } from "@/utils/generatePackage.js";
import { useRoute } from "vue-router";
import { queryFormAPI, postVerifyPasswordAPI } from "@/api/form.js";
import { addFormDataAPI, queryFormDataAPI, modiFormDataAPI, flowFormDataAPI } from "@/api/data.js";
......@@ -261,7 +252,8 @@ const x_field_1 = $route.query.x_field_1 ? $route.query.x_field_1 : null;
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 force_back = $route.query.force_back ? $route.query.force_back : '';
// 格式化表单数据结构
const formatData = (data) => {
const arr = [];
......@@ -347,23 +339,6 @@ const onApprovalSelect = (item) => {
}
myForm.value.submit();
}
// switch (item.id) {
// case 'commit':
// myForm.value.submit();
// break;
// case 'draft':
// myForm.value.submit();
// break;
// case 'withdraw':
// handleApproval('withdraw');
// break;
// case 'reject':
// handleApproval('reject');
// break;
// case 'terminate':
// handleApproval('terminate');
// break;
// }
};
const onApprovalCancel = () => {
console.warn('取消');
......@@ -426,7 +401,7 @@ onMounted(async () => {
document
.querySelector("body")
.setAttribute("style", `background-color: ${styleColor.backgroundColor}`);
const { data, flow_process_list, code } = await queryFormAPI({ form_code: $route.query.code, page_type, data_id, flow_node_code }); // flow_node_code 表示随机选择的流程节点的ID
const { data, flow_process_list, code } = await queryFormAPI({ form_code: $route.query.code, page_type, data_id, flow_node_code, force_back }); // flow_node_code 表示随机选择的流程节点的ID
const form_data = data;
// 处理审批意见显示
if (code) {
......@@ -652,7 +627,7 @@ onMounted(async () => {
// TAG:获取原来表单数据
if (data_id) { // 如果有data_id,则获取历史数据 否则获取表单默认值
const history_data = await queryFormDataAPI({ form_code: $route.query.code, data_id, openid: iframe_openid });
const history_data = await queryFormDataAPI({ form_code: $route.query.code, data_id, openid: iframe_openid, force_back });
if (history_data.code) {
// let object = history_data.data; // 表单数据
// formData.value.forEach((item) => { // 把对应数据赋值到表单
......@@ -671,7 +646,7 @@ onMounted(async () => {
// 结构优化一下
let object = history_data.data;
const isInfoPage = page_type === 'info';
const objectMap = new Map(Object.entries(object)); // 将 object 转换为 Map
const objectMap = new Map(Object.entries(object)); // 将 object 转换为 Map,Object.entries() 方法用于返回一个给定对象自身可枚举属性的键值对数组,数组中的每个元素是一个包含键值对的数组,[ ["name", "Alice"], ["age", 30], ["city", "New York"] ]
formData.value.forEach((item) => {
if (objectMap.has(item.key)) {
item.component_props.default = objectMap.get(item.key);
......@@ -1183,6 +1158,7 @@ const onSubmit = async (values) => {
openid: iframe_openid,
flow_id: formSetting.value.flow_id, // 流程相关保存接口, 把flow_id传到后台
flow_node_action_id: 'commit', // 流程节点的操作按钮的ID, 因为只有提交操作,ID写死
force_back
});
if (result.code) {
// 提交按钮禁用状态
......@@ -1227,7 +1203,8 @@ const onSubmit = async (values) => {
form_code: $route.query.code,
data: postData.value,
openid: iframe_openid,
data_id
data_id,
force_back
});
if (result.code) {
// 提交按钮禁用状态
......@@ -1257,6 +1234,7 @@ const onSubmit = async (values) => {
flow_node_action_id: flow_node_action_id.value,
flow_content: approval_note.value,
flow_reject_to_node_codes: checked_reject.value.length ? checked_reject.value.join(',') : '',
force_back
});
if (result.code) {
// 提交按钮禁用状态
......