diff --git a/package.json b/package.json index f0a69e9..5ba8cef 100644 --- a/package.json +++ b/package.json @@ -42,7 +42,7 @@ "dependencies": { "@crazydos/vue-markdown": "^1.1.4", "@dnd-kit/core": "^6.1.0", - "@element-plus/icons-vue": "^2.3.1", + "@element-plus/icons-vue": "^2.3.2", "@onlyoffice/document-editor-vue": "^1.5.0", "@sv-print/vue3": "^0.2.2", "@tinymce/tinymce-vue": "^5.1.1", diff --git a/src/api/DesignForm/type.ts b/src/api/DesignForm/type.ts index 6a18c2f..d1d3527 100644 --- a/src/api/DesignForm/type.ts +++ b/src/api/DesignForm/type.ts @@ -152,6 +152,8 @@ export interface hanziToPinyin{ //获取工作流步进节点 export interface nodeFlow extends enableVersionId{ conditionList?:conditionInfo[] + nodelPeople?:any[] + oldFlow?:any } export interface conditionInfo{ factorid:string; diff --git a/src/api/DesignForm/types.ts b/src/api/DesignForm/types.ts index 3081a6e..40bf9f7 100644 --- a/src/api/DesignForm/types.ts +++ b/src/api/DesignForm/types.ts @@ -36,6 +36,7 @@ export interface FormData { list: FormList[] form: any // form所有props config: { + groupKey: any style?: string // 表单css样式,相当于scope hideField?: string[] // 使用v-if隐藏的字段,用于交互 requestUrl?: string // 表单数据请求url @@ -160,7 +161,7 @@ export interface formStruct{ designType: any; // 当前页面设计类型,有效值search formDict: any; formOtherData:formOtherData; - echatsViews:echatsViews[]; + echatsViews:echatsViewStruct[]; } export interface DrawerStruct{ @@ -234,7 +235,7 @@ export interface appSetUpContent{ appdescribe?:string; } //图标结构 -export interface echatsViews { +export interface echatsViewStruct { widthBox: number styles: any uuid:string; diff --git a/src/api/hr/org/type.ts b/src/api/hr/org/type.ts index 01dec8a..b1b3a6c 100644 --- a/src/api/hr/org/type.ts +++ b/src/api/hr/org/type.ts @@ -162,6 +162,7 @@ export interface searchCriteriaForPeople extends PageQuery{ } export interface criteriaForPeopleList{ + noedit: any; id: number userkey: string number: string diff --git a/src/api/taskapi/types.ts b/src/api/taskapi/types.ts index af21294..423b331 100644 --- a/src/api/taskapi/types.ts +++ b/src/api/taskapi/types.ts @@ -45,6 +45,8 @@ export interface customerFormLogo{ } //自定义表单版本内容 export interface customerFormVersionCont{ + structure: any; + tableData: any; id:number; tablekey:string; version:number; @@ -62,7 +64,8 @@ export interface customerFormVersionCont{ //获取工作流步进节点 export interface nodeFlow extends customerFormLogo{ conditionList?:conditionInfo[]; - nodelPeople?:nodelPeoples[] + nodelPeople?:nodelPeoples[]; + oldFlow?:any } export interface nodelPeoples { factorid?:string; diff --git a/src/assets/icons/caogaoxiang.svg b/src/assets/icons/caogaoxiang.svg index 918d62a..d0ab871 100644 --- a/src/assets/icons/caogaoxiang.svg +++ b/src/assets/icons/caogaoxiang.svg @@ -1 +1 @@ - \ No newline at end of file + diff --git a/src/assets/icons/csr.svg b/src/assets/icons/csr.svg new file mode 100644 index 0000000..30e6bc0 --- /dev/null +++ b/src/assets/icons/csr.svg @@ -0,0 +1 @@ + diff --git a/src/assets/icons/faqiren.svg b/src/assets/icons/faqiren.svg new file mode 100644 index 0000000..63a18ea --- /dev/null +++ b/src/assets/icons/faqiren.svg @@ -0,0 +1 @@ + diff --git a/src/assets/icons/shenpi.svg b/src/assets/icons/shenpi.svg new file mode 100644 index 0000000..45bd97d --- /dev/null +++ b/src/assets/icons/shenpi.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/spr.svg b/src/assets/icons/spr.svg new file mode 100644 index 0000000..820f948 --- /dev/null +++ b/src/assets/icons/spr.svg @@ -0,0 +1 @@ + diff --git a/src/assets/icons/zxr.svg b/src/assets/icons/zxr.svg new file mode 100644 index 0000000..e880b0b --- /dev/null +++ b/src/assets/icons/zxr.svg @@ -0,0 +1 @@ + diff --git a/src/components/DesignForm/app/index.vue b/src/components/DesignForm/app/index.vue index e3f3e8c..3e12ce1 100644 --- a/src/components/DesignForm/app/index.vue +++ b/src/components/DesignForm/app/index.vue @@ -6,11 +6,9 @@ @@ -1936,7 +2113,6 @@ const isObject = (obj: any) => { v-model="item.value" type="datetime" :placeholder="'请选择' + item.label" - :shortcuts="shortcuts" /> { { header-align="center" align="center" > - - - - - - - - - + + + + + + + + + @@ -2379,32 +2555,33 @@ const isObject = (obj: any) => { {{ scope.column.label }} - - - {{ scope.row[scope.column.property] }} - - - {{ judjeCascader(scope.row[scope.column.property], item.options) }} - - - - {{ judjeRadio(scope.row[scope.column.property], item.options) }} - - - - - - - - - - + + + + {{ scope.row[scope.column.property] }} - - + + {{ judjeCascader(scope.row[scope.column.property], item.options) }} + + + + {{ judjeRadio(scope.row[scope.column.property], item.options) }} + + + + + + + + + + + + + { 启用 禁用 - - - {{ scope.row[scope.column.property] }} - - - - {{ scope.row[scope.column.property] }}== - + + + {{ scope.row[scope.column.property] }} + + + + {{ scope.row[scope.column.property] }}== + + @@ -2493,7 +2671,7 @@ const isObject = (obj: any) => { @@ -2543,15 +2721,27 @@ const isObject = (obj: any) => { - + + { :dprt="rangedDatePickerInTables1" @get-page-data="getPageData" /> - - + + --> + /> diff --git a/src/components/DesignForm/app/index_20260129.vue b/src/components/DesignForm/app/index_20260129.vue new file mode 100644 index 0000000..bce9adb --- /dev/null +++ b/src/components/DesignForm/app/index_20260129.vue @@ -0,0 +1,1387 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + 查询 + 重置 + + + + + + + 操作按钮区域 + + + {{ item.label }} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + {{ scope.column.label }} + + + + + + {{ writeListTitle(scope.row, viewPage.list) }} + + + + + + + {{ sunItem }} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/components/DesignForm/app/pageViews/tableList.vue b/src/components/DesignForm/app/pageViews/tableList.vue new file mode 100644 index 0000000..ee1cd71 --- /dev/null +++ b/src/components/DesignForm/app/pageViews/tableList.vue @@ -0,0 +1,38 @@ + + + + + + + + diff --git a/src/components/DesignForm/public/expand/lowcodeImage.vue b/src/components/DesignForm/public/expand/lowcodeImage.vue index 4470330..6428421 100644 --- a/src/components/DesignForm/public/expand/lowcodeImage.vue +++ b/src/components/DesignForm/public/expand/lowcodeImage.vue @@ -7,7 +7,7 @@ import { AnalysisCss, AnalysisInputCss, -} from "@/components/DesignForm/public/form/calculate/cssInfo.ts"; +} from "@/components/DesignForm/public/form/calculate/cssInfo"; import errimg from "@/assets/404_images/imgNotFound.png"; import { uploadUrl, getRequest } from "@/api/DesignForm"; import { ref,useAttrs } from 'vue' @@ -16,6 +16,8 @@ import { Plus } from '@element-plus/icons-vue' import type { UploadProps, UploadUserFile } from 'element-plus' import { useRoute } from 'vue-router'; +import NoImgPage from '@/assets/image/1.png' + import { getCurrentInstance } from 'vue'; const getAncestorComponentNames = () => { @@ -310,7 +312,7 @@ const fit = computed(()=>{ { :style="getFormItemInputStyle(configStyle, 2)" :fit="fit" /> + + + diff --git a/src/components/DesignForm/public/form/form.vue b/src/components/DesignForm/public/form/form.vue index c0ae24b..fbbdd74 100644 --- a/src/components/DesignForm/public/form/form.vue +++ b/src/components/DesignForm/public/form/form.vue @@ -613,7 +613,8 @@ provide(constControlChange, ({ key, value, data, tProp, type, attribute }: any) let formatRes: any = data.data; // 比较适用通用表单,保存在服务端 const afterResponse = props.formData.events?.afterResponse; - + // 构建结果树 - 修复重复问题 + let result = {}; if (typeof afterResponse === "string" && afterResponse) { formatRes = formatResult(result, afterResponse); } else if (typeof afterResponse === "function") { @@ -3143,7 +3144,7 @@ const submitEditButton = (params = {}) => { if (submitParams === false) { return; } - // console.log("提交修改数据",apiUrl,submitParams,formatParams) + console.log("提交修改数据",apiUrl,submitParams,formatParams) // 提交保存表单 currencyFormApiSubmit(apiUrl, submitParams ?? formatParams) .then((res: any) => { @@ -3247,6 +3248,7 @@ const webPage = computed({ class="pcBox" :class="{ boxAI: type != 5 && currentAgent.length > 0 }" > + { //按钮点击事件 const injectBtnEvent: any = inject(constFormBtnEvent); const clickBtn = (control: any) => { - // console.log(control) + console.log(type.value,"------->",control) // 0: '提交表单', // 1: '重置表单', // 2: '取消返回', @@ -798,6 +800,39 @@ const judgeIsShow = (key: string) => { } } +/** +@ 作者: 秦东 +@ 时间: 2026-01-29 11:31:35 +@ 功能: 输出按钮样式 +*/ +const judgaButClass = (btnClass:string):string => { + switch(btnClass){ + case "submit": + return "btn-primary" + break; + case "draftSubmit": + return "btn-primary" + break; + case "saveDraft": + return "btn-secondary" + break; + case "saveEditDraft": + return "btn-success" + break; + case "submitEdit": + return "btn-success" + break; + case "afreshSubmit": + return "btn-warning" + break; + case "dangerErr": + return "btn-danger" + break; + default: + return "btn-primary" + } + return "" +} { }" @add="draggableAdd" > + + + + + + + + + + + + + + + + {{ item.control?.label }} + + + + @@ -965,13 +1020,14 @@ const judgeIsShow = (key: string) => { {{ element.control?.label }} @@ -1045,4 +1101,60 @@ const judgeIsShow = (key: string) => { - + diff --git a/src/components/DesignForm/public/form/formItem.vue b/src/components/DesignForm/public/form/formItem.vue index 40fb82c..86229eb 100644 --- a/src/components/DesignForm/public/form/formItem.vue +++ b/src/components/DesignForm/public/form/formItem.vue @@ -1114,6 +1114,7 @@ const diGuiJilian = (val: any, options: any[]) => { + { {{ getLabel(data.item) }} - {{ editDisabled }} + { :form-table-set-up="props.alldata" v-model="value" /> + diff --git a/src/components/DesignForm/public/form/newForm.vue b/src/components/DesignForm/public/form/newForm.vue new file mode 100644 index 0000000..ee8badb --- /dev/null +++ b/src/components/DesignForm/public/form/newForm.vue @@ -0,0 +1,3466 @@ + + + + + + + + + + + + + + + {{ drawTitle }} + + + + + + + + 历史记录 + + + + + + {{ mastItem.label }} + + + + + + + {{ sonCentor }} + + + + + + + 修改说明: + {{ item.explicate }} + + + + + + + + + + + + + diff --git a/src/components/DesignForm/tableListPage/formPageCont.vue b/src/components/DesignForm/tableListPage/formPageCont.vue index 9ceeffa..ff5831f 100644 --- a/src/components/DesignForm/tableListPage/formPageCont.vue +++ b/src/components/DesignForm/tableListPage/formPageCont.vue @@ -74,7 +74,7 @@ const emits = defineEmits(["update:isShow", "getPageData", "optionsValue4Get4"]) const formLoading = ref(false); const flowAry = ref(); //流程列表 const currentProgress = ref(1); //当前步进值 -const runstep = ref(null); +const runstep = ref(); const nodeKey = ref(""); const currterNodePower = ref([]) @@ -148,9 +148,11 @@ watch( if (props.tablePageClass != 4) { judgeSubmitCancel({ name: stringObjMastesform }).then((data: any) => { + console.log("添加按钮处理--->",data,data.data.buttonIsTrue ) if (data.code == 0) { - if (data.data == 3 || data.data == 4) { + if (data.data.buttonIsTrue == 3 || data.data.buttonIsTrue == 4) { // formState.formData.list.push(submitButtonEs) + console.log("添加按钮处理--111111->",data,props.operState) if (props.operState == 2) { formState.formData.list.push(afreshSubmitButton); } else if (props.operState == 3) { @@ -158,10 +160,12 @@ watch( } else if (props.operState == 4) { formState.formData.list.push(draftSubmitButton); } else if (props.operState == 5) { + console.log("添加按钮处理--2222->",data,props.operState) formState.formData.list.push(submitButtonEs); } } } + console.log("添加按钮处理-wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww-->",formState.formData.list,submitButtonEs) }); } nextTick(() => { @@ -176,7 +180,7 @@ watch( }); formLoading.value = false; //alert(props.pageInfo.masters_key) - gainEditDataLog({ id: props.pageInfo.masters_key }).then(({ data }) => { + gainEditDataLog({ id: props.pageInfo.masters_key.toString() }).then(({ data }) => { //console.log(formState.formData.list) //console.log("获取修改记录-1111-->",data) diff --git a/src/components/DesignForm/tableListPage/formPageContApp.vue b/src/components/DesignForm/tableListPage/formPageContApp.vue index c68482c..9ac5ced 100644 --- a/src/components/DesignForm/tableListPage/formPageContApp.vue +++ b/src/components/DesignForm/tableListPage/formPageContApp.vue @@ -128,7 +128,7 @@ const getCustomrrFormInfo = () => { }) .finally(()=>{ formLoading.value = false; - gainEditDataLog({id:props.pageInfo.mastersKeyStr}) + gainEditDataLog({id:props.pageInfo.mastersKeyStr.toString()}) .then(({data})=>{ // console.log("获取修改记录-1111-->",data) pageLog.value = data diff --git a/src/components/DesignForm/tableListPage/newFormPageCont.vue b/src/components/DesignForm/tableListPage/newFormPageCont.vue new file mode 100644 index 0000000..a6f8d83 --- /dev/null +++ b/src/components/DesignForm/tableListPage/newFormPageCont.vue @@ -0,0 +1,634 @@ + + + + + + + + {{ drawTitle }} + + + + + + + + + + + + + diff --git a/src/main.ts b/src/main.ts index 82e463f..aceffd7 100644 --- a/src/main.ts +++ b/src/main.ts @@ -31,14 +31,14 @@ import * as pinia from './store/index' import SketchRule from 'vue3-sketch-ruler' import 'vue3-sketch-ruler/lib/style.css' import '@/styles/tree-select-global.css' - +import * as ElementPlusIconsVue from '@element-plus/icons-vue' const app = createApp(App); // 全局注册 自定义指令(directive) setupDirective(app); // 全局注册 状态管理(store) setupStore(app); -import * as ElementPlusIconsVue from '@element-plus/icons-vue' + for (const [key, component] of Object.entries(ElementPlusIconsVue)) { app.component(key, component) } diff --git a/src/utils/encryptionAndDecryption/sm4Utils.ts b/src/utils/encryptionAndDecryption/sm4Utils.ts index 4a764e6..6349f30 100644 --- a/src/utils/encryptionAndDecryption/sm4Utils.ts +++ b/src/utils/encryptionAndDecryption/sm4Utils.ts @@ -59,10 +59,10 @@ const sm4DecryptMethod = (data: string, customKey: string): string => { } } // console.log('SM4解密方法----解密结构---data--->', data) - console.log('SM4解密方法----解密结构----customKey-->', customKey) - console.log('SM4解密方法----解密结构--ivSetup---->', ivSetup) - console.log('SM4解密方法----解密结构---sm4TokenKey--->', sm4TokenKey) - console.log('SM4解密方法----解密结构---appSystemKey--->', appSystemKey) + // console.log('SM4解密方法----解密结构----customKey-->', customKey) + // console.log('SM4解密方法----解密结构--ivSetup---->', ivSetup) + // console.log('SM4解密方法----解密结构---sm4TokenKey--->', sm4TokenKey) + // console.log('SM4解密方法----解密结构---appSystemKey--->', appSystemKey) return sm4.decrypt(data, appSystemKey, { iv: ivSetup, mode: sm4.constants.CBC, diff --git a/src/utils/request.ts b/src/utils/request.ts index d86493d..ae4496c 100644 --- a/src/utils/request.ts +++ b/src/utils/request.ts @@ -43,7 +43,7 @@ service.interceptors.request.use( - //form 云盘请求不加密, 但是Auth-key还是要传输,接口返回的数据可能需要加密 :by han2015 + //form 云盘请求不加密, 但是Auth-key还是要传输,接口返回的数据可能需要加密 if (config.headers['Content-Type'] == 'application/x-www-form-urlencoded'||config.headers['Content-Type'] == 'multipart/form-data' ){ return config } @@ -58,10 +58,12 @@ service.interceptors.request.use( data: sm4EncryptMethod(JSON.stringify(data), randomString) } } - console.log('请求拦截---------->', randomString) - console.log('请求拦截----headers------>', headers) - console.log('请求拦截----data------>', config.data) - console.log('请求拦截----config------>', config) + // console.error('请求拦截---------->', randomString) + // console.error('请求拦截----headers------>', headers) + console.log('请求拦截----config---url--->', config.url) + console.log('请求拦截----data------>', data) + // console.error('请求拦截----config------>', config) + // console.log('请求拦截----content-type------>', config.headers['Content-Type']) // console.log('请求拦截----config------>', config.headers) return config @@ -80,7 +82,7 @@ service.interceptors.response.use( let { data, headers } = response let authKey = headers['auth-key'] - // console.log('行营结果----authKey------>', authKey) + // console.log('行营结果----data------>', data) // 解密响应数据 if (authKey) { let jsonData = sm4DecryptMethod(data.data, authKey) @@ -97,7 +99,7 @@ service.interceptors.response.use( type: "warning", }).then(() => { localStorage.clear(); - window.location.href = "/login"; + window.location.href = "#/login"; // routerPinia.push({path:"/login"}) }); return response.data; @@ -139,7 +141,7 @@ service.interceptors.response.use( type: 'warning' }).then(() => { localStorage.clear(); - window.location.href = '/login'; + window.location.href = '#/login'; // router.push({path:"/login"}) }); }else if(code === 7 || code === 300 || code === 301 || code === 302){ @@ -148,7 +150,7 @@ service.interceptors.response.use( type: "warning", }).then(() => { localStorage.clear(); - window.location.href = "/login"; + window.location.href = "#/login"; // routerPinia.push({path:"/login"}) }); }else if (code === 10001 || code === 10002 || code === 10003) { diff --git a/src/utils/workflow/const.ts b/src/utils/workflow/const.ts index 9f5d74e..1fff71b 100644 --- a/src/utils/workflow/const.ts +++ b/src/utils/workflow/const.ts @@ -94,7 +94,7 @@ export let timeEquation = [ //新增表单数据按钮 export let submitButton = { - type: "div", + type: "btndiv", control: {}, config: @@ -104,22 +104,6 @@ export let submitButton = { }, list: [ { - type: "grid", - iconFont: "fa-th-large", - columns: [ - { - attr:{ - span: 7 - }, - list: [], - type: "gridChild" - }, - { - attr:{ - span: 5 - }, - list: [ - { type: "button", iconFont: "fa-square-o", control:{ @@ -130,12 +114,7 @@ export let submitButton = { config:{ textAlign: "center" } - } - ], - type: "gridChild" - }, - { - list: [ + }, { type: "button", iconFont: "fa-square-o", @@ -148,28 +127,73 @@ export let submitButton = { textAlign: "center" } } - ], - attr:{ - span: 5 - }, - type: "gridChild" - }, - { - list: [], - attr:{ - span: 7 - }, - type: "gridChild" - } - ], - control:{}, - config:{} - } + // { + // type: "grid", + // iconFont: "fa-th-large", + // columns: [ + // { + // attr:{ + // span: 7 + // }, + // list: [], + // type: "gridChild" + // }, + // { + // attr:{ + // span: 5 + // }, + // list: [ + // { + // type: "button", + // iconFont: "fa-square-o", + // control:{ + // label: "确认提交", + // type: "primary", + // key: "submit" + // }, + // config:{ + // textAlign: "center" + // } + // } + // ], + // type: "gridChild" + // }, + // { + // list: [ + // { + // type: "button", + // iconFont: "fa-square-o", + // control:{ + // label: "保存草稿", + // type: "warning", + // key: "saveDraft" + // }, + // config:{ + // textAlign: "center" + // } + // } + // ], + // attr:{ + // span: 5 + // }, + // type: "gridChild" + // }, + // { + // list: [], + // attr:{ + // span: 7 + // }, + // type: "gridChild" + // } + // ], + // control:{}, + // config:{} + // } ] } //重新提交表单数据按钮 export let afreshSubmitButton = { - type: "div", + type: "btndiv", control: {}, config: @@ -179,67 +203,91 @@ export let afreshSubmitButton = { }, list: [ { - type: "grid", - iconFont: "fa-th-large", - columns: [ - { - attr:{ - span: 7 - }, - list: [], - type: "gridChild" - }, - { - attr:{ - span: 5 - }, - list: [ - { - type: "button", - iconFont: "fa-square-o", - control:{ - label: "确认提交", - type: "primary", - key: "afreshSubmit" - }, - config:{ - textAlign: "center" - } - } - ], - type: "gridChild" - }, - { - list: [ - { - type: "button", - iconFont: "fa-square-o", - control:{ - label: "保存草稿", - type: "warning", - key: "saveEditDraft" - }, - config:{ - textAlign: "center" - } - } - ], - attr:{ - span: 5 - }, - type: "gridChild" - }, - { - list: [], - attr:{ - span: 7 - }, - type: "gridChild" - } - ], - control:{}, - config:{} + type: "button", + iconFont: "fa-square-o", + control:{ + label: "确认提交", + type: "primary", + key: "afreshSubmit" + }, + config:{ + textAlign: "center" + } + }, + { + type: "button", + iconFont: "fa-square-o", + control:{ + label: "保存草稿", + type: "warning", + key: "saveEditDraft" + }, + config:{ + textAlign: "center" + } } + // { + // type: "grid", + // iconFont: "fa-th-large", + // columns: [ + // { + // attr:{ + // span: 7 + // }, + // list: [], + // type: "gridChild" + // }, + // { + // attr:{ + // span: 5 + // }, + // list: [ + // { + // type: "button", + // iconFont: "fa-square-o", + // control:{ + // label: "确认提交", + // type: "primary", + // key: "afreshSubmit" + // }, + // config:{ + // textAlign: "center" + // } + // } + // ], + // type: "gridChild" + // }, + // { + // list: [ + // { + // type: "button", + // iconFont: "fa-square-o", + // control:{ + // label: "保存草稿", + // type: "warning", + // key: "saveEditDraft" + // }, + // config:{ + // textAlign: "center" + // } + // } + // ], + // attr:{ + // span: 5 + // }, + // type: "gridChild" + // }, + // { + // list: [], + // attr:{ + // span: 7 + // }, + // type: "gridChild" + // } + // ], + // control:{}, + // config:{} + // } ] } diff --git a/src/views/public/orguser/orgalluser.vue b/src/views/public/orguser/orgalluser.vue index 298d502..66aea9c 100644 --- a/src/views/public/orguser/orgalluser.vue +++ b/src/views/public/orguser/orgalluser.vue @@ -34,7 +34,7 @@ const defaultProps ={ const orgLoading = ref(false) const userLoading = ref(false) // 侧栏处理 -const treeEl = ref(null) +const treeEl = ref() const treeData = ref([]) const department = ref() const userName = ref() @@ -101,31 +101,31 @@ onMounted(() => { }) }) //已选择内容 -const checkDataList = reactive([]); +const checkDataList = ref([]); const tableRowClick = (row: any) => { - if(checkDataList.length > 0){ + if(checkDataList.value.length > 0){ let isIn = true - checkDataList.forEach(item =>{ + checkDataList.value.forEach(item =>{ if(item.id == row.id){ isIn = false } }) if(isIn){ - checkDataList.push(row) + checkDataList.value.push(row) } }else{ - checkDataList.push(row) + checkDataList.value.push(row) } // console.log("checkDataList",checkDataList,row) } //删除单一选择 const delRowClick = (row: criteriaForPeopleList) => { // console.log("checkDataList",row) - if(checkDataList &&checkDataList.length > 0) { - checkDataList.forEach((item:criteriaForPeopleList,index:number) => { + if(checkDataList &&checkDataList.value.length > 0) { + checkDataList.value.forEach((item:criteriaForPeopleList,index:number) => { if(item.id == row.id){ if(!item.noedit){ - checkDataList.splice(index,1) + checkDataList.value.splice(index,1) } } }) @@ -134,11 +134,22 @@ const delRowClick = (row: criteriaForPeopleList) => { //清除所有的选择 const delAllClick = () => { // checkDataList.splice(0,checkDataList.length) - checkDataList.forEach((item:criteriaForPeopleList,index:number) => { - if(!item.noedit){ - checkDataList.splice(index,1) + console.log("清除所有的选择--1--->",checkDataList) + let delIndex: criteriaForPeopleList[] = [] + checkDataList.value.forEach((item:criteriaForPeopleList,index:number) => { + console.log("清除所有的选择",item) + if(item.noedit){ + // checkDataList.splice(index,1) + delIndex.push(item) } }) + // if(delIndex.length > 0){ + // delIndex.forEach((item:number) => { + // checkDataList.splice(item,1) + // }) + // } + checkDataList.value = delIndex + console.log("清除所有的选择---2-->",delIndex) } //关闭弹窗 @@ -154,9 +165,9 @@ const confirmChoices = () => { //回填已经选中得内容 const backfillData = () => { if(props.selectedPeople && props.selectedPeople.length > 0){ - checkDataList.splice(0,checkDataList.length) + checkDataList.value.splice(0,checkDataList.value.length) props.selectedPeople.forEach((item:any)=>{ - checkDataList.push(item) + checkDataList.value.push(item) }) } // console.log("props.selectedPeople",props.selectedPeople,checkDataList) @@ -168,11 +179,93 @@ const backfillData = () => { title="选择人员" :append-to-body="true" :props="defaultProps " - width="80%" + width="90%" top="2vh" draggable > - + + + 行政组织 + + + + + + 查询 + 重置 + + + + + + + + + + + + {{ scope.row.name }}({{ scope.row.number }}) + + + + + + {{ row.companyName }} / {{ row.departmentname }} / {{ row.postname }} + + + + + + + + + + + + + + + + + 已选择:{{ checkDataList.length }} + 全部移除 + + + + + + + + + + + {{ scope.row.name }}({{ scope.row.number }}) + + + + + 移除 + + + + + + 取消 @@ -271,6 +364,17 @@ const backfillData = () => { diff --git a/src/views/sysworkflow/lowcodepage/pageFlow/flowStep.vue b/src/views/sysworkflow/lowcodepage/pageFlow/flowStep.vue new file mode 100644 index 0000000..a5b38b8 --- /dev/null +++ b/src/views/sysworkflow/lowcodepage/pageFlow/flowStep.vue @@ -0,0 +1,427 @@ + + + + + + + + 审批流程 + + + + + + + + + + + + + + + {{item.nodeName}} + + + + + + + + + + {{ items.departmentname }} + - {{ items.postname }} + - {{ items.name }} + + + + {{logItem.cause}} + 已同意 + + + {{logItem.cause}} + 已驳回 + + + {{logItem.cause}} + 未操作 + + {{ logItem.time }} + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/views/sysworkflow/lowcodepage/pageFlow/newTableFlow.vue b/src/views/sysworkflow/lowcodepage/pageFlow/newTableFlow.vue index e0e167e..f0742bb 100644 --- a/src/views/sysworkflow/lowcodepage/pageFlow/newTableFlow.vue +++ b/src/views/sysworkflow/lowcodepage/pageFlow/newTableFlow.vue @@ -19,9 +19,12 @@ import { submitButton, afreshSubmitButton, } from "@/utils/workflow/const"; -import { nodePoweInfo } from "@/api/taskapi/types"; +import { nodelPeoples, nodePoweInfo } from "@/api/taskapi/types"; import request from "@/utils/request"; import SvgIcon from "@/components/SvgIcon/index.vue"; +import FlowStep from "@/views/sysworkflow/lowcodepage/pageFlow/flowStep.vue"; +import AiPage from "@/views/sysworkflow/lowcodepage/pageFlow/aiPage.vue"; +import { constAiEffect } from "@/api/DesignForm/utils"; const props = defineProps({ show:{ @@ -47,6 +50,7 @@ const props = defineProps({ }, }, }) +const formType = ref(1) const formBodyRef = ref() const drawBodyWidth = ref(props.drawerwith) const emits = defineEmits(["update:show", "searchquery"]); @@ -56,6 +60,8 @@ const flowMap = ref(); //工作流 const flowFactor = reactive([]); //表单组件 const pageType = ref(1) const aiConfigArea =ref(false) +const formLoading = ref(false); //loading +const flowLoading = ref(false); //loading const drawLoading = ref(false) const isFlowTable = ref(false); //判断是不是流程表单 const openOrClose = computed({ @@ -68,38 +74,13 @@ const openOrClose = computed({ drawBodyWidth.value = 0; }, }); - +const nextStep = ref(0); +const currentProgress = ref(1); const pageBody = ref("") const drawTitle = computed(() => props.versiontitle) -const drawbox = computed({ - get: () => { - let pageContWidth = props.drawerwith - let extraW=0; - if (aiConfigArea.value){ - extraW=300 //ai 问答区域的宽度 - } - if (isFlowTable.value) { - extraW = 300+extraW; - } - if (aiConfigArea.value && isFlowTable.value){ - pageType.value = 3 - pageBody.value = "treePage" - pageContWidth = pageContWidth - (extraW/2) - }else if ((!aiConfigArea.value && isFlowTable.value) || (aiConfigArea.value && !isFlowTable.value)){ - pageType.value = 2 - pageBody.value = "twoPage" - pageContWidth = pageContWidth - (extraW/2) - }else{ - pageType.value = 1 - pageBody.value = "" - } - console.error("1---------------->",pageContWidth) - return pageContWidth+extraW; - }, - set: (val: number) => { - return val; - }, -}); + + + let qrCodeImgInside = ""; const appInitData = ref(); const mastesformjson = ref(""); // @@ -108,10 +89,13 @@ const versionTitle = ref(""); //表单名称 const changeFlowPick = ref([]) const purviewAry = ref([]); const qrCodeInsideDialogFlag = ref(false); - +const nodelUserList = reactive([]); //获取工作流条件 const gainFlowChart = reactive({ id: "0", + conditionList: flowFactor, + nodelPeople: nodelUserList, + oldFlow: flowMap.value, }); const state = reactive({ @@ -162,12 +146,20 @@ const getTaskFormData = () => { let extraW=0; if (data.tableFormPage.flowIsOpen == 1 && data.tableFormPage.flowkeystr != "0") { isFlowTable.value = true; - extraW = 300 // drawbox.value = 800 + 350; + console.error("存在流程----》",extraW) } else { isFlowTable.value = false; // drawbox.value = 800; + console.error("不存在流程----》",extraW) + } + + if(isFlowTable.value){ + extraW = 320 } + + + if(data.tableFormPage.powerAry && Array.isArray(data.tableFormPage.powerAry) && data.tableFormPage.powerAry.length > 0){ currterNodePower.value = data.tableFormPage.powerAry } @@ -184,26 +176,47 @@ const getTaskFormData = () => { state.formData.powerstr = string2json(data.tableFormPage.powerstr); judgeSubmitCancel({ name: data.tableFormPage.mastesformjson }).then( (datajud: any) => { + console.error("不存在流程--1-datajud-》",datajud) if (datajud.code == 0) { - if (datajud.data == 3 || datajud.data == 4) { + if (datajud.data.buttonIsTrue == 3 || datajud.data.buttonIsTrue == 4) { state.formData.list.push(submitButton); } } } ); + console.log("表单数据--state.formData->1", state.formData); + console.error("不存在流程--1--》",state.formData.aiConfig) + if(state.formData.aiConfig.length>0){ aiConfigArea.value=true - extraW = extraW + 300 + state.formData.aiConfig?.forEach((item: { library: any; title: any; trigger: any; }) => { + currentAgent.value.push({ + name: "test", + model: false, + rowdex:0, + uuid: item.library, + fields: item.title, + trigger: item.trigger, + params: {}, + subparams:[] + }); + }); } + + + if(aiConfigArea.value){ + extraW = extraW + 320 + } + console.error("不存在流程--extraW--》",extraW) if (aiConfigArea.value && isFlowTable.value){ pageType.value = 3 pageBody.value = "treePage" - drawBodyWidth.value = drawBodyWidth.value + extraW - (extraW/2) + drawBodyWidth.value = drawBodyWidth.value + extraW - 160 }else if ((!aiConfigArea.value && isFlowTable.value) || (aiConfigArea.value && !isFlowTable.value)){ pageType.value = 2 pageBody.value = "twoPage" - drawBodyWidth.value = drawBodyWidth.value + extraW- (extraW/2) + drawBodyWidth.value = drawBodyWidth.value + extraW }else{ pageType.value = 1 pageBody.value = "" @@ -212,7 +225,7 @@ const getTaskFormData = () => { drawLoading.value = false - console.error("2---------------->",formBodyRef.value?.clientWidth) + // console.error("2---------------->",formBodyRef.value?.clientWidth) }) .finally(()=>{}) } @@ -303,16 +316,21 @@ const initLoadData = () => { stateForm.formData.powerstr = string2json( gainAppPageInfoData.data.appForm.powerstr ); - // console.log("data.data.mastesform", stateForm.formData) + console.log("data.data.mastesform", stateForm.formData) judgeSubmitCancel({ name: gainAppPageInfoData.data.appForm.mastesformjson, }).then((datajud: any) => { + + console.log("datajud---------------->", datajud,datajud.data.buttonIsTrue) + if (datajud.code == 0) { - if (datajud.data == 3 || datajud.data == 4) { + if (datajud.data.buttonIsTrue == 3 || datajud.data.buttonIsTrue == 4) { stateForm.formData.list.push(submitButton); } } + + console.log("datajud------stateForm.formData.list---------->", stateForm.formData.list) }); } }); @@ -331,7 +349,7 @@ const initLoadData = () => { watch(() => openOrClose,(val) => { if(val){ getTaskFormData() - initLoadData() + // initLoadData() }else{ initData() } @@ -347,70 +365,343 @@ const showFillFormQrCode = () => { //查看二维码展示弹窗图片,图片带有分组,app,表单名称,和二维码图片 //在此获取必要的参数并请求后台,获取二维码图片,当图片返回成功时,显示弹窗 //必要的参数为cfid - if ( - state.formData.form.qrCodeFlag == true && - state.formData.form.qrCodeInside == true - ) { - getQrCodeImgInside().then(({ data }) => { - qrCodeImgInside = data; - if (qrCodeInsideDialogFlag.value == false) { - //console.log(qrCodeImgInside) - qrCodeInsideDialogFlag.value = true; - } - }); - } else { - alert("请先开启表单二维码功能"); - } -} -const getQrCodeImgInside = () => { - return request({ - url: "/javasys/lowCode/QrCode/getQrCodeImgInside", - method: "post", - data: { - cfid: state.formId, - }, - }); + } +/** +@ 作者: 秦东 +@ 时间: 2024-04-09 16:49:09 +@ 功能: 表单前置数据 +*/ +const beforeSubmit = (params: any) => { + params.formId = props.versionid; + params.id = ""; + // emits("update:isopen", false); + return params; +}; +/** +@ 作者: 秦东 +@ 时间: 2024-04-09 16:41:20 +@ 功能: 提交成功回调 +*/ +const afterSubmit = (type: string, val?: any) => { + // console.log("表单提交成功------------------>",type,val) + // console.log("流程------------------>",flowMap) + if (type === "success") { + emits("searchquery"); + if (isFlowTable.value) { + if (val.code == 0) { + if (val.data) { + let sendInfo = { + id: val.data.uuid, + flowList: flowMap.value, + state: 3, + }; + startRunFlow(sendInfo).then((data: any) => { + console.log("流程提交成功--------1---------->",data) + }); + } + } + } + } + closeAppSubmit(); +}; +/** +@ 作者: 秦东 +@ 时间: 2024-04-09 16:50:37 +@ 功能: 保存草稿 +*/ +const saveDraftPage = (type: string, val?: any) => { + if (type === "success") { + emits("searchquery"); + if (isFlowTable.value) { + if (val.code == 0) { + let sendInfo = { + id: val.data.uuid, + flowList: flowMap.value, + state: 1, + }; + startRunFlow(sendInfo).then((data: any) => { + // console.log("流程提交成功--------1---------->",data) + }); + } + } + } + closeAppSubmit(); +}; /** @ 作者: 秦东 @ 时间: 2024-04-09 16:50:01 @ 功能: 关闭操作 */ const closeAppSubmit = () => { + emits("update:show", false); flowMap.value = []; emits("searchquery"); - emits("update:show", false); + }; -/** -@ 作者: 秦东 -@ 时间: 2026-01-19 16:36:28 -@ 功能: 判断怎么分屏 -*/ -// const pageBody = ():string => { -// let pageClass = "" -// switch(pageType.value){ -// case 2: -// pageClass = "twoPage"; -// break; -// case 3: -// pageClass = "treePage"; -// break; -// default: -// pageClass = "" -// break; -// } -// console.log("判断怎么分屏------------->",pageClass) -// console.log("判断怎么分屏------1------->",pageType.value) -// console.log("判断怎么分屏------2------->",pageType.value) -// return pageClass; -// } - -provide('flowNodePower', currterNodePower) -provide('currentNodeKey', nodeKey) +//组件解析 +const changeKeyVal = (key: any, val: any, type: any, attribute: any) => { + // console.log("改变表单值--key--->",key) + // console.log("改变表单值--val--->",val,Array.isArray(val)) + // console.log("改变表单值--type--->",type) + // console.log("改变表单值--attribute--->",attribute) + + let isUpdateFlowChart = false; + console.log("改变表单值--notAsA_BasisForJudgment--->",notAsA_BasisForJudgment.indexOf(type)) + if (notAsA_BasisForJudgment.indexOf(type) === -1) { + //不是判断字段,则更新流程图表 + let isWrite = true; + //遍历表单组件 + flowFactor.forEach((item: any) => { + if (item.factorid == key) { + isWrite = false; + + item.type = 3; + if (type == "checkbox") { + item.isCheckbox = true; + item.answers = val.map(String); + } else { + item.isCheckbox = false; + item.oneanswer = val.toString(); + } + if (notAsA_BasisForJudgment.indexOf(type) === -1) { + isUpdateFlowChart = true; + } + } + }); + if (isWrite) { + if (type == "checkbox") { + flowFactor.push({ + factorid: key, + type: 3, + isCheckbox: true, + answers: val.map(String), + }); + } else { + flowFactor.push({ + factorid: key, + type: 3, + isCheckbox: false, + oneanswer: val.toString(), + }); + } + isUpdateFlowChart = true; + } + } + //时间类空间附加判断条件 + if ( + timeControl.indexOf(type) > -1 || + fixedValueControl.indexOf(type) > -1 || + type == "input" + ) { + let addNewTime = true; //判断是否新增 + flowFactor.forEach((item: any) => { + if (item.type == 2) { + addNewTime = false; + if (item.customFields && item.customFields.length > 0) { + let sunNewAdd = true; + item.customFields.forEach((sunItem: any) => { + // console.log("改变表单值--flowFactor-4->",sunItem.wordfield , key,sunItem.wordfield == key) + if (sunItem.wordfield == key) { + sunNewAdd = false; + isUpdateFlowChart = true; + if (timeEquation.indexOf(attribute) === -1) { + //非区间性时间 + sunItem.leftval = val.toString(); + } else { + //区间性时间 + if (Array.isArray(val)) { + if (val.length >= 2) { + sunItem.leftval = val[0].toString(); + sunItem.rightval = val[val.length - 1].toString(); + } + } + } + } + }); + if (sunNewAdd) { + isUpdateFlowChart = true; + if (timeEquation.indexOf(attribute) === -1) { + //非区间性时间 + let customFieldInfo = { + wordfield: key, + optType: "1", + leftval: val.toString(), + }; + item.customFields.push(customFieldInfo); + } else { + //区间性时间 + if (Array.isArray(val)) { + if (val.length >= 2) { + let customFieldInfo = { + wordfield: key, + optType: "6", + leftval: val[0].toString(), + leftoptType: "3", + rightoptType: "3", + rightval: val[val.length - 1].toString(), + }; + item.customFields.push(customFieldInfo); + } + } + } + } + } + } + + }); + if (addNewTime) { + //新增自定义类数据判断 + isUpdateFlowChart = true; + if (timeEquation.indexOf(attribute) === -1) { + //非区间性时间 + let customFieldInfo = { + wordfield: key, + optType: "1", + leftval: val.toString(), + }; + let condInfo = { + factorid: "customFields", + type: 2, + isCheckbox: false, + customFields: [customFieldInfo], + }; + flowFactor.push(condInfo); + } else { + //区间性时间 + if (Array.isArray(val)) { + if (val.length >= 2) { + let customFieldInfo = { + wordfield: key, + optType: "6", + leftval: val[0].toString(), + leftoptType: "3", + rightoptType: "3", + rightval: val[val.length - 1].toString(), + }; + let condInfo = { + factorid: "customFields", + type: 2, + isCheckbox: false, + customFields: [customFieldInfo], + }; + flowFactor.push(condInfo); + } + } + } + } + } + //操作人 + if (asAnApprovalActionControl.indexOf(type) > -1) { + isUpdateFlowChart = true; + let isWriteUs = true; + nodelUserList.forEach((item: any) => { + if (item.factorid == key) { + isWriteUs = false; + item.userList = val; + } + }); + if (isWriteUs) { + nodelUserList.push({ + factorid: key, + userList: val, + }); + } + } + let isTrue = false + if(changeFlowPick.value && Array.isArray(changeFlowPick.value) && changeFlowPick.value.includes(key)){ + isTrue = true + } + //更新工作流图 + if (isUpdateFlowChart && isTrue) { + flowLoading.value = true; + //获取工作流不进图 + gainFlowChart.conditionList = flowFactor; + gainFlowChart.nodelPeople = nodelUserList; + gainFlowChart.oldFlow = flowMap; + // console.log("获取工作流不进图--gainFlowChart--->",gainFlowChart) + realTimeUpdateFlow(gainFlowChart).then((data: any) => { + // console.log("获取工作流不进图-new-->",data) + flowMap.value = data.data.flowList; + nextStep.value = data.data.nextStep; + currentProgress.value = data.data.Step; + nodeKey.value = data.data.nodeKey; + // // console.log("获取工作流不进图-1-->",flowMap.value) + flowLoading.value = false; + }); + } + +} + + +const appTableForm = ref({ + name:"" +}) + + +//-----------------------AI setting-------------------------- +//当前AI智能体,根据form表单的配置来初始化 +//params 主表字段参数 subparams子表字段参数,子表触发时需要清空 ; rowdex:表示子表的第几条数据,没有的话说明不是子表数据 +const currentAgent = ref< + { + model: boolean; + name: string; + rowdex:number, + uuid: string[]; + fields: string[]; + trigger: number; + params: { [key: string]: any }; + subparams:{[key: string]: any}[]; + }[] +>([]); +const aiassistRef = ref(); +//触发AI查询事件 +provide(constAiEffect, ({ key, value, field,rowdex}: any) => { + //新建ai_envents 是为了解决前端并发问题 + const ai_events: Array<{ uuids: string[]; params: { [key: string]: any } }> = []; + currentAgent.value.forEach(ag=>{ + if(ag.fields.includes(key)){ //trigger: 1:任一 2:半数 3:全部 + if (rowdex!=null){//子表操作 + ag.rowdex=rowdex //更新智能体的rowdex + if(rowdex>=ag.subparams.length){ + ag.subparams.push({[field]:value}) + }else{ + ag.subparams[rowdex][field]=value + } + }else{ //主表操作, 直接加入params种 + ag.params[field]=value; //这个地方把key换成fieldName + } + let mergedObj; + if(ag.subparams.length>0){ + mergedObj = Object.assign({}, ag.params, ag.subparams[ag.rowdex]); //合并子表和主表 + }else{ + mergedObj = ag.params + } + switch(ag.trigger){ + case 2: + if(Object.keys(mergedObj).length>=ag.fields.length/2){ + ai_events.push({uuids:ag.uuid,params:mergedObj }) + } + break; + case 3: + if(Object.keys(mergedObj).length==ag.fields.length){ + ai_events.push({uuids:ag.uuid,params:mergedObj}) + } + break; + default: + ai_events.push({uuids:ag.uuid,params:mergedObj}) + } + } + }) + if(ai_events.length>0){ + aiassistRef.value.onSendParamToAI(ai_events) + } +}) + - + @@ -426,67 +717,39 @@ provide('currentNodeKey', nodeKey) 扫码填单 - - - - - - AI智能问答助手 - - - - - - - AI助手:您好!我是您的智能助手。我可以帮您解答关于表单填写和流程审批的问题。请问有什么可以帮您的? - - - - 用户:如何填写项目申请表中的预算部分? - - + + - - - - - - - - - - - - - - - 项目申请表 - - - - {{ 'List item ' + o }} - - - - - - - 审批流程 - - - - {{ 'List item ' + o }} - - - - - - 通过审批 - 驳回申请 - - - - + + + @@ -520,7 +783,15 @@ provide('currentNodeKey', nodeKey) padding: 10px 10px; } } -.twoPage{ +.twoPageAi{ + display: grid; + grid-template-columns: minmax(150px, 250px) 1fr; /* 左右最小150px,最大250px,中间自适应 */ + grid-template-rows: auto; + gap: 10px; + max-width: 100%; + margin: 0 auto; +} +.twoPageFlow{ display: grid; grid-template-columns: 1fr minmax(150px, 250px); /* 左右最小150px,最大250px,中间自适应 */ grid-template-rows: auto; @@ -560,8 +831,8 @@ provide('currentNodeKey', nodeKey) height: calc(100vh - 200px); } .formBody{ - padding: 10px 15px; - height: calc(100vh - 145px); + width: 100%; + overflow-x: auto; } .flowBody{ padding: 10px 15px; diff --git a/src/views/sysworkflow/lowcodepage/pageFlow/tableFlow.vue b/src/views/sysworkflow/lowcodepage/pageFlow/tableFlow.vue index f74fa14..a6b4265 100644 --- a/src/views/sysworkflow/lowcodepage/pageFlow/tableFlow.vue +++ b/src/views/sysworkflow/lowcodepage/pageFlow/tableFlow.vue @@ -558,7 +558,7 @@ provide('currentNodeKey', nodeKey) {{ versiontitle }} 扫码填单123扫码填单 diff --git a/src/views/sysworkflow/lowcodepage/runApp/regularPage/completedMattersPage.vue b/src/views/sysworkflow/lowcodepage/runApp/regularPage/completedMattersPage.vue index 15271bb..dcd87d4 100644 --- a/src/views/sysworkflow/lowcodepage/runApp/regularPage/completedMattersPage.vue +++ b/src/views/sysworkflow/lowcodepage/runApp/regularPage/completedMattersPage.vue @@ -6,6 +6,7 @@ - + + + + + + diff --git a/src/views/sysworkflow/lowcodepage/runApp/regularPage/myCreate.vue b/src/views/sysworkflow/lowcodepage/runApp/regularPage/myCreate.vue index aeb0306..ede46c8 100644 --- a/src/views/sysworkflow/lowcodepage/runApp/regularPage/myCreate.vue +++ b/src/views/sysworkflow/lowcodepage/runApp/regularPage/myCreate.vue @@ -14,6 +14,7 @@ import { import { gainAppAllTaskList } from "@/api/DesignForm/requestapi"; //引入组件 +import NewFormPageCont from "@/components/DesignForm/tableListPage/newFormPageCont.vue"; import FormPageCont from "@/components/DesignForm/tableListPage/formPageContApp.vue"; import TableFlow from "@/views/sysworkflow/lowcodepage/pageFlow/appTableFlow.vue"; @@ -69,9 +70,9 @@ const getToDoList = () => { onMounted(() => { getToDoList(); }); - +const rangedDatePickerInTables1: any = [] const container = ref(); //实例化内容容器 -const drawerWith = ref(); //编辑表单时抽屉宽度 +const drawerWithing = ref(); //编辑表单时抽屉宽度 const openTaskDrawer = ref(false); //新增数据 /** @ 作者: 秦东 @@ -82,9 +83,22 @@ const tablePageClass = ref(1); const lookPageInfoIsShow = ref(false); const pageInfoCont = ref(); const lookPageInfo = (val: any) => { - tablePageClass.value = 4; + tablePageClass.value = 3; + if(val.mastersKeyStr && val.mastersKeyStr != ""){ + + val.masters_key = val.mastersKeyStr + + } + if(val.runFlowIdStr && val.runFlowIdStr != ""){ + + val.runFlowId = val.runFlowIdStr + + } + console.log("查看详细内容--------------------------->"); + console.log(val); + console.log("查看详细内容--------------------------->"); pageInfoCont.value = val; - drawerWith.value = container.value?.clientWidth; + drawerWithing.value = container.value?.clientWidth; lookPageInfoIsShow.value = true; }; /** @@ -97,8 +111,18 @@ const editInfo = (val: any) => { // console.log('修改数据!',val) operState.value = 5; tablePageClass.value = 2; + if(val.mastersKeyStr && val.mastersKeyStr != ""){ + + val.masters_key = val.mastersKeyStr + + } + if(val.runFlowIdStr && val.runFlowIdStr != ""){ + + val.runFlowId = val.runFlowIdStr + + } pageInfoCont.value = val; - drawerWith.value = container.value?.clientWidth; + drawerWithing.value = container.value?.clientWidth; lookPageInfoIsShow.value = true; }; /** @@ -109,8 +133,18 @@ const editInfo = (val: any) => { const submitApproval = (val: any) => { operState.value = 4; tablePageClass.value = 2; + if(val.mastersKeyStr && val.mastersKeyStr != ""){ + + val.masters_key = val.mastersKeyStr + + } + if(val.runFlowIdStr && val.runFlowIdStr != ""){ + + val.runFlowId = val.runFlowIdStr + + } pageInfoCont.value = val; - drawerWith.value = container.value?.clientWidth; + drawerWithing.value = container.value?.clientWidth; lookPageInfoIsShow.value = true; }; /** @@ -156,8 +190,18 @@ const recallSendMsg = (val: any) => { const afreshSendFlow = (val: any) => { operState.value = 2; tablePageClass.value = 2; + if(val.mastersKeyStr && val.mastersKeyStr != ""){ + + val.masters_key = val.mastersKeyStr + + } + if(val.runFlowIdStr && val.runFlowIdStr != ""){ + + val.runFlowId = val.runFlowIdStr + + } pageInfoCont.value = val; - drawerWith.value = container.value?.clientWidth; + drawerWithing.value = container.value?.clientWidth; lookPageInfoIsShow.value = true; }; /** @@ -168,8 +212,18 @@ const afreshSendFlow = (val: any) => { const editFormSendFlow = (val: any) => { operState.value = 3; tablePageClass.value = 2; + if(val.mastersKeyStr && val.mastersKeyStr != ""){ + + val.masters_key = val.mastersKeyStr + + } + if(val.runFlowIdStr && val.runFlowIdStr != ""){ + + val.runFlowId = val.runFlowIdStr + + } pageInfoCont.value = val; - drawerWith.value = container.value?.clientWidth; + drawerWithing.value = container.value?.clientWidth; lookPageInfoIsShow.value = true; }; const cancelEvent = (val: any) => { @@ -432,15 +486,28 @@ const searchQuery = () => {}; /> - + + + { taskFlowAryTd.value = data.data.list; }); }; +const drawerWithNew =ref(props.drawerWith) +const myappbox = ref() onMounted(() => { + drawerWithNew.value = myappbox.value?.clientWidth; getToDoList(); }); /** @@ -86,12 +90,19 @@ const searchQuery = () => {}; - --> + diff --git a/src/views/sysworkflow/lowcodepage/runApp/regularPage/sendCopy.vue b/src/views/sysworkflow/lowcodepage/runApp/regularPage/sendCopy.vue index f8a683e..954665c 100644 --- a/src/views/sysworkflow/lowcodepage/runApp/regularPage/sendCopy.vue +++ b/src/views/sysworkflow/lowcodepage/runApp/regularPage/sendCopy.vue @@ -6,6 +6,7 @@ - + + diff --git a/src/views/taskplatform/taskmanagement/flowStep.vue b/src/views/taskplatform/taskmanagement/flowStep.vue index 6dcac8a..6933946 100644 --- a/src/views/taskplatform/taskmanagement/flowStep.vue +++ b/src/views/taskplatform/taskmanagement/flowStep.vue @@ -157,6 +157,11 @@ const updateNode = (val:any) =>{ + + + 已同意 + · 2025/10/24 16:23:12 + {{logItem.cause}}已同意 diff --git a/src/views/taskplatform/taskmanagement/lookFlowInfoApp.vue b/src/views/taskplatform/taskmanagement/lookFlowInfoApp.vue index 7543c0f..d32c9ab 100644 --- a/src/views/taskplatform/taskmanagement/lookFlowInfoApp.vue +++ b/src/views/taskplatform/taskmanagement/lookFlowInfoApp.vue @@ -133,7 +133,7 @@ const gainFormData = () => { }) .finally(() => { formLoading.value = false; - gainEditDataLog({ id: props.flowLogInfo.mastersKeyStr }).then(({ data }) => { + gainEditDataLog({ id: props.flowLogInfo.mastersKeyStr.toString() }).then(({ data }) => { // console.log("获取修改记录-1111-->",data) pageLog.value = data; }); diff --git a/src/views/taskplatform/taskmanagement/lookFlowInfoNewApp.vue b/src/views/taskplatform/taskmanagement/lookFlowInfoNewApp.vue new file mode 100644 index 0000000..d4a397d --- /dev/null +++ b/src/views/taskplatform/taskmanagement/lookFlowInfoNewApp.vue @@ -0,0 +1,523 @@ + + + + + + + + {{ versiontitle }} + + + + + + + + + + + + + + diff --git a/src/views/taskplatform/taskmanagement/runNewFlowStep.vue b/src/views/taskplatform/taskmanagement/runNewFlowStep.vue new file mode 100644 index 0000000..7c1fa84 --- /dev/null +++ b/src/views/taskplatform/taskmanagement/runNewFlowStep.vue @@ -0,0 +1,465 @@ + + + + + + + + 审批流程 + + + + + + + + + + + + + + {{item.nodeName}} + + + + + + + + + + {{ items.departmentname }} + - {{ items.postname }} + - {{ items.name }} + + + + {{logItem.cause}} + 已同意 + + + {{logItem.cause}} + 已驳回 + + + {{logItem.cause}} + 未操作 + + {{ logItem.time }} + + + + + + + + + + + + + + + + + + + + 通过审批 + 驳回申请 + + + + + + + + + + diff --git a/yarn.lock b/yarn.lock index e53fcf6..7f59358 100644 --- a/yarn.lock +++ b/yarn.lock @@ -283,19 +283,19 @@ resolved "https://registry.npmmirror.com/@ctrl/tinycolor/-/tinycolor-3.6.1.tgz" integrity sha512-SITSV6aIXsuVNV3f3O0f2n/cgyEDWoSqtZMYiAmcsYHydcKrOz3gUxB/iXd/Qf08+IZX4KpgNbvUdMBmWz+kcA== -"@dnd-kit/accessibility@^3.1.1": - version "3.1.1" - resolved "https://registry.npmmirror.com/@dnd-kit/accessibility/-/accessibility-3.1.1.tgz" - integrity sha512-2P+YgaXF+gRsIihwwY1gCsQSYnu9Zyj2py8kY5fFvUM1qm2WA2u639R6YNVfU4GWr+ZM5mqEsfHZZLoRONbemw== +"@dnd-kit/accessibility@^3.1.0": + version "3.1.0" + resolved "https://registry.npmmirror.com/@dnd-kit/accessibility/-/accessibility-3.1.0.tgz" + integrity sha512-ea7IkhKvlJUv9iSHJOnxinBcoOI3ppGnnL+VDJ75O45Nss6HtZd8IdN8touXPDtASfeI2T2LImb8VOZcL47wjQ== dependencies: tslib "^2.0.0" "@dnd-kit/core@^6.1.0": - version "6.3.1" - resolved "https://registry.npmmirror.com/@dnd-kit/core/-/core-6.3.1.tgz" - integrity sha512-xkGBRQQab4RLwgXxoqETICr6S5JlogafbhNsidmrkVv2YRs5MLwpjoF2qpiGjQt8S9AoxtIV603s0GIUpY5eYQ== + version "6.1.0" + resolved "https://registry.npmmirror.com/@dnd-kit/core/-/core-6.1.0.tgz" + integrity sha512-J3cQBClB4TVxwGo3KEjssGEXNJqGVWx17aRTZ1ob0FliR5IjYgTxl5YJbKTzA6IzrtelotH19v6y7uoIRUZPSg== dependencies: - "@dnd-kit/accessibility" "^3.1.1" + "@dnd-kit/accessibility" "^3.1.0" "@dnd-kit/utilities" "^3.2.2" tslib "^2.0.0" @@ -306,10 +306,10 @@ dependencies: tslib "^2.0.0" -"@element-plus/icons-vue@^2.3.1": - version "2.3.1" - resolved "https://registry.npmmirror.com/@element-plus/icons-vue/-/icons-vue-2.3.1.tgz" - integrity sha512-XxVUZv48RZAd87ucGS48jPf6pKu0yV5UCg9f4FFwtrYxXOwWuVJo6wOvSLKEoMQKjv8GsX/mhP6UsC1lRwbUWg== +"@element-plus/icons-vue@^2.3.1", "@element-plus/icons-vue@^2.3.2": + version "2.3.2" + resolved "https://registry.npmmirror.com/@element-plus/icons-vue/-/icons-vue-2.3.2.tgz" + integrity sha512-OzIuTaIfC8QXEPmJvB4Y4kw34rSXdCJzxcD1kFStBvr8bK6X1zQAYDo0CNMjojnfTqRQCJ0I7prlErcoRiET2A== "@esbuild/win32-x64@0.18.20": version "0.18.20" @@ -2044,12 +2044,12 @@ available-typed-arrays@^1.0.7: possible-typed-array-names "^1.0.0" axios@^1.10.0: - version "1.11.0" - resolved "https://registry.npmmirror.com/axios/-/axios-1.11.0.tgz" - integrity sha512-1Lx3WLFQWm3ooKDYZD1eXmoGO9fxYQjrycfHFC8P0sCfQVXyROp0p9PFWBehewBOdCwHc+f/b8I0fMto5eSfwA== + version "1.10.0" + resolved "https://registry.npmmirror.com/axios/-/axios-1.10.0.tgz" + integrity sha512-/1xYAC4MP/HEG+3duIhFr4ZQXR4sQXOIe+o6sdqzeykGLx6Upp/1p8MHqhINOvGeP7xyNHe7tsiJByc4SSVUxw== dependencies: follow-redirects "^1.15.6" - form-data "^4.0.4" + form-data "^4.0.0" proxy-from-env "^1.1.0" babel-code-frame@^6.16.0, babel-code-frame@^6.22.0: @@ -2864,9 +2864,9 @@ buffer@^5.5.0, buffer@^5.7.0: ieee754 "^1.1.13" bufferutil@^4.0.1: - version "4.0.9" - resolved "https://registry.npmmirror.com/bufferutil/-/bufferutil-4.0.9.tgz" - integrity sha512-WDtdLmJvAuNNPzByAYpRo2rF1Mmradw6gvWsQKf63476DDXmomT9zUiGypLcG4ibIM67vhAj8jJRdbmEws2Aqw== + version "4.0.8" + resolved "https://registry.npmmirror.com/bufferutil/-/bufferutil-4.0.8.tgz" + integrity sha512-4T53u4PdgsXqKaIctwF8ifXlRTTmEPJ8iEPWFdGZvcf7sbwYo6FKFEX9eNNAnzFZ7EzJAQ3CJeOtCRA4rDp7Pw== dependencies: node-gyp-build "^4.3.0" @@ -2927,14 +2927,6 @@ cachedir@2.3.0: resolved "https://registry.npmmirror.com/cachedir/-/cachedir-2.3.0.tgz" integrity sha512-A+Fezp4zxnit6FanDmv9EqXNAi3vt9DWp51/71UEhXukb7QUuvtv9344h91dyAxuTLoSYJFU299qzR3tzwPAhw== -call-bind-apply-helpers@^1.0.1, call-bind-apply-helpers@^1.0.2: - version "1.0.2" - resolved "https://registry.npmmirror.com/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz" - integrity sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ== - dependencies: - es-errors "^1.3.0" - function-bind "^1.1.2" - call-bind@^1.0.2, call-bind@^1.0.5, call-bind@^1.0.6, call-bind@^1.0.7: version "1.0.7" resolved "https://registry.npmmirror.com/call-bind/-/call-bind-1.0.7.tgz" @@ -4202,15 +4194,6 @@ dot-prop@^5.1.0: dependencies: is-obj "^2.0.0" -dunder-proto@^1.0.1: - version "1.0.1" - resolved "https://registry.npmmirror.com/dunder-proto/-/dunder-proto-1.0.1.tgz" - integrity sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A== - dependencies: - call-bind-apply-helpers "^1.0.1" - es-errors "^1.3.0" - gopd "^1.2.0" - duplexer@^0.1.2: version "0.1.2" resolved "https://registry.npmmirror.com/duplexer/-/duplexer-0.1.2.tgz" @@ -4245,9 +4228,9 @@ electron-to-chromium@^1.2.7: integrity sha1-uM5ck7MI2w6S9tBDXEbd7I9jY6s= electron-to-chromium@^1.4.820: - version "1.4.832" - resolved "https://registry.npmmirror.com/electron-to-chromium/-/electron-to-chromium-1.4.832.tgz" - integrity sha512-cTen3SB0H2SGU7x467NRe1eVcQgcuS6jckKfWJHia2eo0cHIGOqHoAxevIYZD4eRHcWjkvFzo93bi3vJ9W+1lA== + version "1.4.830" + resolved "https://registry.npmmirror.com/electron-to-chromium/-/electron-to-chromium-1.4.830.tgz" + integrity sha512-TrPKKH20HeN0J1LHzsYLs2qwXrp8TF4nHdu4sq61ozGbzMpWhI7iIOPYPPkxeq1azMT9PZ8enPFcftbs/Npcjg== element-plus@^2.3.4: version "2.7.7" @@ -4468,32 +4451,33 @@ es-abstract@^1.7.0: is-callable "^1.1.3" is-regex "^1.0.3" -es-define-property@^1.0.0, es-define-property@^1.0.1: - version "1.0.1" - resolved "https://registry.npmmirror.com/es-define-property/-/es-define-property-1.0.1.tgz" - integrity sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g== +es-define-property@^1.0.0: + version "1.0.0" + resolved "https://registry.npmmirror.com/es-define-property/-/es-define-property-1.0.0.tgz" + integrity sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ== + dependencies: + get-intrinsic "^1.2.4" es-errors@^1.2.1, es-errors@^1.3.0: version "1.3.0" resolved "https://registry.npmmirror.com/es-errors/-/es-errors-1.3.0.tgz" integrity sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw== -es-object-atoms@^1.0.0, es-object-atoms@^1.1.1: - version "1.1.1" - resolved "https://registry.npmmirror.com/es-object-atoms/-/es-object-atoms-1.1.1.tgz" - integrity sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA== +es-object-atoms@^1.0.0: + version "1.0.0" + resolved "https://registry.npmmirror.com/es-object-atoms/-/es-object-atoms-1.0.0.tgz" + integrity sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw== dependencies: es-errors "^1.3.0" -es-set-tostringtag@^2.0.3, es-set-tostringtag@^2.1.0: - version "2.1.0" - resolved "https://registry.npmmirror.com/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz" - integrity sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA== +es-set-tostringtag@^2.0.3: + version "2.0.3" + resolved "https://registry.npmmirror.com/es-set-tostringtag/-/es-set-tostringtag-2.0.3.tgz" + integrity sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ== dependencies: - es-errors "^1.3.0" - get-intrinsic "^1.2.6" + get-intrinsic "^1.2.4" has-tostringtag "^1.0.2" - hasown "^2.0.2" + hasown "^2.0.1" es-to-primitive@^1.1.1: version "1.1.1" @@ -5445,15 +5429,13 @@ foreground-child@^3.1.0: cross-spawn "^7.0.0" signal-exit "^4.0.1" -form-data@^4.0.4: - version "4.0.4" - resolved "https://registry.npmmirror.com/form-data/-/form-data-4.0.4.tgz" - integrity sha512-KrGhL9Q4zjj0kiUt5OO4Mr/A/jlI2jDYs5eHBpYHPcBEVSiipAvn2Ko2HnPe20rmcuuvMHNdZFp+4IlGTMF0Ow== +form-data@^4.0.0: + version "4.0.0" + resolved "https://registry.npmmirror.com/form-data/-/form-data-4.0.0.tgz" + integrity sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww== dependencies: asynckit "^0.4.0" combined-stream "^1.0.8" - es-set-tostringtag "^2.1.0" - hasown "^2.0.2" mime-types "^2.1.12" fraction.js@^4.3.7: @@ -5560,29 +5542,16 @@ get-caller-file@^2.0.1, get-caller-file@^2.0.5: resolved "https://registry.npmmirror.com/get-caller-file/-/get-caller-file-2.0.5.tgz" integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== -get-intrinsic@^1.2.1, get-intrinsic@^1.2.3, get-intrinsic@^1.2.4, get-intrinsic@^1.2.6: - version "1.3.0" - resolved "https://registry.npmmirror.com/get-intrinsic/-/get-intrinsic-1.3.0.tgz" - integrity sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ== +get-intrinsic@^1.1.3, get-intrinsic@^1.2.1, get-intrinsic@^1.2.3, get-intrinsic@^1.2.4: + version "1.2.4" + resolved "https://registry.npmmirror.com/get-intrinsic/-/get-intrinsic-1.2.4.tgz" + integrity sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ== dependencies: - call-bind-apply-helpers "^1.0.2" - es-define-property "^1.0.1" es-errors "^1.3.0" - es-object-atoms "^1.1.1" function-bind "^1.1.2" - get-proto "^1.0.1" - gopd "^1.2.0" - has-symbols "^1.1.0" - hasown "^2.0.2" - math-intrinsics "^1.1.0" - -get-proto@^1.0.1: - version "1.0.1" - resolved "https://registry.npmmirror.com/get-proto/-/get-proto-1.0.1.tgz" - integrity sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g== - dependencies: - dunder-proto "^1.0.1" - es-object-atoms "^1.0.0" + has-proto "^1.0.1" + has-symbols "^1.0.3" + hasown "^2.0.0" get-stream@^6.0.0, get-stream@^6.0.1: version "6.0.1" @@ -5803,10 +5772,12 @@ good-listener@^1.2.2: dependencies: delegate "^3.1.2" -gopd@^1.0.1, gopd@^1.2.0: - version "1.2.0" - resolved "https://registry.npmmirror.com/gopd/-/gopd-1.2.0.tgz" - integrity sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg== +gopd@^1.0.1: + version "1.0.1" + resolved "https://registry.npmmirror.com/gopd/-/gopd-1.0.1.tgz" + integrity sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA== + dependencies: + get-intrinsic "^1.1.3" graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0: version "4.2.11" @@ -5879,15 +5850,15 @@ has-property-descriptors@^1.0.0, has-property-descriptors@^1.0.2: dependencies: es-define-property "^1.0.0" -has-proto@^1.0.3: +has-proto@^1.0.1, has-proto@^1.0.3: version "1.0.3" resolved "https://registry.npmmirror.com/has-proto/-/has-proto-1.0.3.tgz" integrity sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q== -has-symbols@^1.0.2, has-symbols@^1.0.3, has-symbols@^1.1.0: - version "1.1.0" - resolved "https://registry.npmmirror.com/has-symbols/-/has-symbols-1.1.0.tgz" - integrity sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ== +has-symbols@^1.0.2, has-symbols@^1.0.3: + version "1.0.3" + resolved "https://registry.npmmirror.com/has-symbols/-/has-symbols-1.0.3.tgz" + integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== has-tostringtag@^1.0.0, has-tostringtag@^1.0.2: version "1.0.2" @@ -5941,7 +5912,7 @@ hash.js@^1.0.0, hash.js@^1.0.3: dependencies: inherits "^2.0.1" -hasown@^2.0.0, hasown@^2.0.2: +hasown@^2.0.0, hasown@^2.0.1, hasown@^2.0.2: version "2.0.2" resolved "https://registry.npmmirror.com/hasown/-/hasown-2.0.2.tgz" integrity sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ== @@ -6953,16 +6924,16 @@ js-md5@^0.7.3: resolved "https://registry.npmmirror.com/js-md5/-/js-md5-0.7.3.tgz" integrity sha512-ZC41vPSTLKGwIRjqDh8DfXoCrdQIyBgspJVPXHBGu4nZlAEvG3nf+jO9avM9RmLiGakg7vz974ms99nEV0tmTQ== +"js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: + version "4.0.0" + resolved "https://registry.npmmirror.com/js-tokens/-/js-tokens-4.0.0.tgz" + integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== + js-tokens@^3.0.0: version "3.0.1" resolved "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.1.tgz" integrity sha1-COnxMkhKLEWjCQfp3E1VZ7fxFNc= -js-tokens@^4.0.0: - version "4.0.0" - resolved "https://registry.npmmirror.com/js-tokens/-/js-tokens-4.0.0.tgz" - integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== - js-tokens@^9.0.0: version "9.0.0" resolved "https://registry.npmmirror.com/js-tokens/-/js-tokens-9.0.0.tgz" @@ -7601,6 +7572,13 @@ loose-envify@^1.0.0: dependencies: js-tokens "^3.0.0" +loose-envify@^1.1.0: + version "1.4.0" + resolved "https://registry.npmmirror.com/loose-envify/-/loose-envify-1.4.0.tgz" + integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== + dependencies: + js-tokens "^3.0.0 || ^4.0.0" + lru-cache@^10.2.0: version "10.4.3" resolved "https://registry.npmmirror.com/lru-cache/-/lru-cache-10.4.3.tgz" @@ -7687,11 +7665,6 @@ markdown-table@^3.0.0: resolved "https://registry.npmmirror.com/markdown-table/-/markdown-table-3.0.4.tgz" integrity sha512-wiYz4+JrLyb/DqW2hkFJxP7Vd7JuTDm77fvbM8VfEQdmSMqcImWeeRbHwZjBjIFki/VaMK2BhFi7oUUZeM5bqw== -math-intrinsics@^1.1.0: - version "1.1.0" - resolved "https://registry.npmmirror.com/math-intrinsics/-/math-intrinsics-1.1.0.tgz" - integrity sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g== - mathml-tag-names@^2.1.3: version "2.1.3" resolved "https://registry.npmmirror.com/mathml-tag-names/-/mathml-tag-names-2.1.3.tgz" @@ -8585,9 +8558,9 @@ node-fetch-native@^1.6.3: integrity sha512-IhOigYzAKHd244OC0JIMIUrjzctirCmPkaIfhDeGcEETWof5zKYUW7e7MYvChGWh/4CJeXEgsRyGzuF334rOOQ== node-gyp-build@^4.3.0: - version "4.8.4" - resolved "https://registry.npmmirror.com/node-gyp-build/-/node-gyp-build-4.8.4.tgz" - integrity sha512-LA4ZjwlnUblHVgq0oBF3Jl/6h/Nvs5fzBLwdEF4nuxnFdsfajde4WfxtJr3CaiH+F6ewcIB/q4jQ4UzPyid+CQ== + version "4.8.1" + resolved "https://registry.npmmirror.com/node-gyp-build/-/node-gyp-build-4.8.1.tgz" + integrity sha512-OSs33Z9yWr148JZcbZd5WiAXhh/n9z8TxQcdMhIOlpN9AhWpLfvVFO73+m77bBABQMaY9XSvIa+qk0jlI7Gcaw== node-gyp@^12.1.0: version "12.1.0" @@ -9886,16 +9859,19 @@ react-dnd-html5-backend@^16.0.1: dnd-core "^16.0.1" react-dom@>=16.8.0: - version "19.0.0" - resolved "https://registry.npmmirror.com/react-dom/-/react-dom-19.0.0.tgz" - integrity sha512-4GV5sHFG0e/0AD4X+ySy6UJd3jVl1iNsNHdpad0qhABJ11twS3TTBnseqsKurKcsNqCEFeGL3uLpVChpIO3QfQ== + version "18.3.1" + resolved "https://registry.npmmirror.com/react-dom/-/react-dom-18.3.1.tgz" + integrity sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw== dependencies: - scheduler "^0.25.0" + loose-envify "^1.1.0" + scheduler "^0.23.2" -react@^19.0.0, react@>=16.8.0: - version "19.0.0" - resolved "https://registry.npmmirror.com/react/-/react-19.0.0.tgz" - integrity sha512-V8AVnmPIICiWpGfm6GLzCR/W5FXLchHop40W4nXBmdlEceh16rCN8O8LNWm5bh5XUX91fh7KpA+W0TgMKmgTpQ== +react@^18.3.1, react@>=16.8.0: + version "18.3.1" + resolved "https://registry.npmmirror.com/react/-/react-18.3.1.tgz" + integrity sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ== + dependencies: + loose-envify "^1.1.0" read-cmd-shim@^6.0.0: version "6.0.0" @@ -10481,10 +10457,12 @@ sax@^1.2.4: resolved "https://registry.npmmirror.com/sax/-/sax-1.4.1.tgz" integrity sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg== -scheduler@^0.25.0: - version "0.25.0" - resolved "https://registry.npmmirror.com/scheduler/-/scheduler-0.25.0.tgz" - integrity sha512-xFVuu11jh+xcO7JOAGJNOXld8/TcEHK/4CituBUeUb5hqxJLj9YuemAEuvm9gQ/+pgXYfbQuqAkiYu+u7YEsNA== +scheduler@^0.23.2: + version "0.23.2" + resolved "https://registry.npmmirror.com/scheduler/-/scheduler-0.23.2.tgz" + integrity sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ== + dependencies: + loose-envify "^1.1.0" screenfull@^6.0.0: version "6.0.2" @@ -11429,9 +11407,9 @@ tar@^7.4.3, tar@^7.5.1, tar@^7.5.2: yallist "^5.0.0" terser@^5.0.0, terser@^5.4.0: - version "5.44.1" - resolved "https://registry.npmmirror.com/terser/-/terser-5.44.1.tgz" - integrity sha512-t/R3R/n0MSwnnazuPpPNVO60LX0SKL45pyl9YlvxIdkH0Of7D5qM2EVe+yASRIlY5pZ73nclYJfNANGWPwFDZw== + version "5.44.0" + resolved "https://registry.npmmirror.com/terser/-/terser-5.44.0.tgz" + integrity sha512-nIVck8DK+GM/0Frwd+nIhZ84pR/BX7rmXMfYwyg+Sri5oGVE99/E3KvXqpC2xHFxyqXyGHTKBSioxxplrO4I4w== dependencies: "@jridgewell/source-map" "^0.3.3" acorn "^8.15.0"
{{ 'List item ' + o }}