Browse Source

修改显示方式

q_v1
herenshan112 1 month ago
parent
commit
ed080fcbb1
  1. 3
      src/api/lowCode/form/type.ts
  2. 16
      src/utils/pinia/stores/modules/userOrders.ts
  3. 12
      src/views/common/header/formTable/header.vue
  4. 9
      src/views/formTable/page/cardPage.vue
  5. 10
      src/views/formTable/page/cardPageNew.vue
  6. 297
      src/views/formTable/taskList.vue
  7. 8
      src/views/formTable/taskListPage.vue
  8. 19
      src/views/login/index.vue

3
src/api/lowCode/form/type.ts

@ -42,7 +42,8 @@ export interface tableFormStruct {
columns: any[];
config: Object;
controlBtn:any[];
operateBtn:any[]
operateBtn:any[];
columnsCheck?:any;
},
searchData: any[];
loading: boolean;

16
src/utils/pinia/stores/modules/userOrders.ts

@ -28,15 +28,23 @@ export const userStror = defineStore("user",() => {
loginApi(val)
.then((data:any) => {
console.log("登陆使用",data);
userKeying.value = data.data.key;
userToken.value = data.data.token;
tokenIng.value = data.data.key;
if(data.code != 0){
ElMessage.error(data.msg ||"登录失败");
reject(data);
return data
}else{
ElMessage.success(data.msg ||"登录成功");
userKeying.value = data.data.key;
userToken.value = data.data.token;
tokenIng.value = data.data.key;
}
console.log("登陆使用---userKeying----->",userKeying.value,"===>", data.data.key);
console.log("登陆使用---userToken----->",userToken.value,"===>", data.data.token);
console.log("登陆使用---tokenIng----->",tokenIng.value,"===>", data.data.key);
resolve();
resolve(data);
return data
})
.catch((error:any) => {

12
src/views/common/header/formTable/header.vue

@ -4,7 +4,7 @@
@ 备注: 自定义应用头部
-->
<script lang='ts' setup>
import { useRouter } from 'vue-router'
import { LocationQueryValueRaw, useRouter } from 'vue-router'
import { menuTree } from '@/api/lowCode/type'
const router = useRouter()
@ -33,8 +33,9 @@ const props = defineProps({
//
const emits = defineEmits(["routerPage"])
const activeIndex = ref(1)
const menuList = ref<menuTree[]>(props.menuTree)
const menuDrop = ref(null) //
// const menuList = ref<menuTree[]>(props.menuTree)
const menuListTree = computed(() => props.menuTree)
// const menuDrop = ref(null) //
/**
@ 作者: 秦东
@ 时间: 2024-10-30 15:09:45
@ -43,6 +44,9 @@ const menuDrop = ref(null) //下拉菜单属性
interface Tree {
type: number
isLock: number
isMain: LocationQueryValueRaw | LocationQueryValueRaw[]
label: string
children?: Tree[]
}
@ -50,7 +54,7 @@ interface Tree {
const handleNodeClick = (data: Tree) => {
console.log(data)
if(data.type!=1){
menuDrop.value.handleClose()
// menuDrop.value.handleClose()
if(data.isLock==1){
router.push({ path: "/form_table/taskList",query:{id: props.appKey,class:data.isMain}});
}

9
src/views/formTable/page/cardPage.vue

@ -74,7 +74,7 @@ const appContent = reactive<any>({
})
const lookInfo = ref<any>({})
const loadingList = ref(false) //
const taskScrollbar = ref(null) //
const taskScrollbar = ref() //
const loadText = ref("数据加载中,请稍后......")
const _scrollTop = ref<number>(0)
const emits = defineEmits(['update:pageIdAry'])
@ -82,7 +82,8 @@ const pageIdAry = ref<any[]>([])
const tableDataList = ref<any[]>([]); //
const state = reactive({
page:1,
pagesize: props.stateListInfo.config?.pageSize || 2
pagesize: props.stateListInfo.config?.pageSize || 2,
loading:false
})
const isOne = ref(props.stateListInfo.isOne)
const pageTotal = ref<number>(0) //
@ -275,7 +276,7 @@ const columns = computed({
get() {
return props.stateListInfo.tableData.columns
},
set(val: formStruct) {
set(val: any) {
// emits('update:state', val)
}
});
@ -724,7 +725,7 @@ const delTask = (val:any) => {
id: [val.masters_key],
isTrue: 2,
};
softDeletion(sendData).then((data) => {
softDeletion(sendData).then((data:any) => {
ElNotification({
title: "系统提示!",
message: data.mag ? data.mag : "删除成功",

10
src/views/formTable/page/cardPageNew.vue

@ -5,14 +5,11 @@
-->
<script lang='ts' setup>
import request from '@/utils/axios/index'
import { gainAppPageInfo,judgeSubmitCancel,gainFormPageListCont,recalSendMsg,tableCusterField } from '@/api/lowCode/form/index'
import{ json2string,string2json } from '@/utils/lowCode/form'
import { recalSendMsg,tableCusterField } from '@/api/lowCode/form/index'
import{ json2string } from '@/utils/lowCode/form'
import { softDeletion,retractRunWorkFlow } from '@/api/lowCode/taskapi/management'
import { Picture as IconPicture } from '@element-plus/icons-vue'
import SearchSelect from '@/components/lowCode/selectSearch.vue'
import AppPageInfo from '@/views/formTable/pageInfo.vue'
import { EpPropMergeType } from 'element-plus/es/utils/index.mjs'
const props = defineProps({
@ -476,10 +473,12 @@ const delTask = (val:any) => {
<el-card v-for="item in listPage" :key="item.id" class="taskCardBox" shadow="always">
<template #header>
<div class="card-header contentBetween">
<div>
<el-checkbox v-if="item.isMyMsg" label="" :value="item.masters_key" />
<span class="cardInfoTitle">{{ item.title }}</span>
</div>
<div v-if="item.flowIsOpens==1" class="carHeadStaus">
<el-tag v-if="item.taskStatus==1" type="warning">草稿</el-tag>
@ -487,6 +486,7 @@ const delTask = (val:any) => {
<el-tag v-if="item.taskStatus==3" type="primary">审批中</el-tag>
<el-tag v-if="item.taskStatus==4" type="info">归档</el-tag>
</div>
</div>
</template>

297
src/views/formTable/taskList.vue

@ -19,38 +19,45 @@ import Header from '@/views/common/header/formTable/header.vue'
import SearchSelect from '@/components/lowCode/selectSearch.vue'
import CardPage from '@/views/formTable/page/cardPage.vue'
import { getFieldRecord } from '@/api/lowCode'
import { tableButton } from '@/api/common/tableButton'
import { FormInstance } from 'element-plus'
const route = useRoute()
const router = useRouter()
const appKey = ref<number>(route.query.key)
const appId = ref<number>(route.query.id)
const taskTitle = ref<number>(route.query.title)
const taskId = ref<number>(route.query.formid)
const taskKey = ref<number>(route.query.formKey)
const appKey = ref<string>(String(route.query.key))
const appId = ref<string>(String(route.query.id))
const taskTitle = ref<string>(String(route.query.title))
const taskId = ref<string>(String(route.query.formid))
const taskKey = ref<string>(String(route.query.formKey))
const listLoading = ref(false)
const appInitData = ref<appPageDataInit>("")
const appInitData = ref<appPageDataInit>()
const mastesformjson = ref("") //
const activeName = ref('1')
const activeName = ref('1')
const taskScrollbar = ref() //
const loadingList = ref(false) //
const loadText = ref("数据加载中,请稍后......")
const _scrollTop = ref<number>(0)
//
const stateList = reactive<tableFormStruct>({
tableData: {
// tableProps: {}, //
columns: [],
config: {},
controlBtn:[],
operateBtn:[]
// tableProps: {}, //
columns: [],
config: {},
controlBtn: [],
operateBtn: []
},
searchData: [],
loading: false,
attrObj: {},
config: {
pageSize:10,
searchIsShow:true,
searchFormIsShow:true,
openPageMode:"drawer"
},
pageSize: 10,
searchIsShow: true,
searchFormIsShow: true,
openPageMode: "drawer"
},
tagList: {},
formId: taskId || '',
formList: [], //
@ -59,88 +66,88 @@ const stateList = reactive<tableFormStruct>({
previewVisible: false,
tabsName: 'second',
formFieldList: [], //
formApi:{
type:"1",
addApiUrl:"",
editApiUrl:"",
delApiUrl:"",
lookApiUrl:""
},
formApi: {
type: "1",
addApiUrl: "",
editApiUrl: "",
delApiUrl: "",
lookApiUrl: ""
},
dict: {},
refreshTable: true,
view:{
list:{
status:true,
isClick:false,
form:{
sortWord:"",
sortClass:1,
title:[]
}
},
date:{
status:false,
isClick:false,
form:{
startTime:"",
endTime:"",
dayType:1,
title:[]
}
}
,
time:{
status:false,
isClick:false,
form:{
sortWord:"",
sort:1,
title:[]
}
}
,
gantt:{
status:false,
isClick:false,
form:{
startTime:"",
endTime:"",
dayType:2,
sortWord:"",
sort:1,
title:[]
}
}
,
map:{
status:false,
isClick:false,
form:{
mapWord:"",
sortWord:"",
sort:1,
title:[]
}
},
card:{
status:false,
isClick:false,
form:{
sort:1,
sortWord:"",
imgWork:"",
imgWidth:50,
imgHeight:50,
imgBorderRadius:5,
imgPadding:2,
titleWork:"",
describe:"",
ranks:3,
title:[]
}
}
}
view: {
list: {
status: true,
isClick: false,
form: {
sortWord: "",
sortClass: 1,
title: []
}
},
date: {
status: false,
isClick: false,
form: {
startTime: "",
endTime: "",
dayType: 1,
title: []
}
},
time: {
status: false,
isClick: false,
form: {
sortWord: "",
sort: 1,
title: []
}
},
gantt: {
status: false,
isClick: false,
form: {
startTime: "",
endTime: "",
dayType: 2,
sortWord: "",
sort: 1,
title: []
}
},
map: {
status: false,
isClick: false,
form: {
mapWord: "",
sortWord: "",
sort: 1,
title: []
}
},
card: {
status: false,
isClick: false,
form: {
sort: 1,
sortWord: "",
imgWork: "",
imgWidth: 50,
imgHeight: 50,
imgBorderRadius: 5,
imgPadding: 2,
titleWork: "",
describe: "",
ranks: 3,
title: []
}
}
},
isOpen: false
})
/**
@ -317,8 +324,8 @@ const unitIsShow = (val:tableButton,unitName:string) => {
@ 时间: 2024-11-04 13:59:42
@ 功能: 功能按钮动作
*/
const setUpClick = (val:string,id:string) => {
console.log("功能按钮动作",val,"----id----->",id,"-----formId---->")
const setUpClick = (val:any) => {
console.log("功能按钮动作",val,"----id----->-----formId---->")
if(val.key == "newAdd"){
}else{
@ -332,7 +339,7 @@ const setUpClick = (val:string,id:string) => {
id: pageIdAry.value,
isTrue: 2,
};
softDeletion(sendData).then((data) => {
softDeletion(sendData).then((data: { mag: any }) => {
// console.log('cancel!',data)
ElNotification({
title: "温馨提示!",
@ -483,11 +490,76 @@ const getPageData = () => {
const openLook = (val:any) => {
console.log("查看表单详情--->",val)
}
const transformOption = (val:any,dataVal:any) => {}
/**
@ 作者: 秦东
@ 时间: 2025-12-22 11:10:54
@ 功能: 监听滚动条状态
*/
const onHandleAppTaskScroll = (event:any) => {
console.log("onHandleScroll",loadingList.value, event)
if (loadingList.value === true) {
return
}
let wrapRef = taskScrollbar.value.wrapRef
taskScrollbar.value.moveY = wrapRef.scrollTop * 100 / wrapRef.clientHeight
taskScrollbar.value.moveX = wrapRef.scrollLeft * 100 / wrapRef.clientWidth
let poor = wrapRef.scrollHeight - wrapRef.clientHeight
if (event.scrollTop + 2 >= poor) {
_scrollTop.value = event.scrollTop
loadingList.value=true
state.currentPage++
// console.log("searchInfo.page",searchInfo.page++)
getPageData()
}
}
const requeryList = () => {
console.log("重置查询列表:")
state.currentPage = 1
tableDataList.value = []
nextTick(() => {
getPageData()
})
}
/**
@ 作者: 秦东
@ 时间: 2024-11-06 14:23:25
@ 功能: 删除按钮
*/
const delTask = (val:any) => {
console.log("删除按钮", val,val.masters_key)
ElMessageBox.confirm(
'是否要删除此信息?已经删除将不可恢复!请慎重操作',
'删除提示',
{
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning',
}
)
.then(() => {
let sendData = {
id: [val.masters_key],
tableKey:val.tableKey,
isTrue: 2,
};
softDeletion(sendData).then((data: any) => {
ElNotification({
title: "系统提示!",
message: data.mag ? data.mag : "删除成功",
type: "success",
});
requeryList()
})
})
.catch(() => {})
}
</script>
<template>
<div>
<Header :header-title="taskTitle" :app-key="appKey" menu-tree="" :call-back-click="true" />
<Header :header-title="taskTitle" :app-key="appKey" :call-back-click="true" />
<div ref="container" class="table-list-comm">
<div class="contentBetween">
@ -502,7 +574,7 @@ const openLook = (val:any) => {
{{ item.label }}
</el-button>
</div>
<SvgIcon icon-class="search" :size="20" @click="openSearch" />
<SvgIcon icon-class="search" :size="'20px'" @click="openSearch" />
<el-drawer
v-model="drawerOpen"
@ -523,7 +595,7 @@ const openLook = (val:any) => {
v-model="item.value"
type="datetime"
:placeholder="'请选择'+item.label"
:shortcuts="shortcuts"
v-if="unitIsShow(item,'time')"
/>
<SearchSelect
@ -648,24 +720,9 @@ const openLook = (val:any) => {
</table>
</el-card>
<el-card class="taskCardBox" shadow="always">
<table>
<tbody @click="openLook(item)">
<tr>
<td class="cardInfoTitle">发起人</td>
<td class="cardInfoTitle"></td>
</tr>
</tbody>
</table>
<div class="cardFoot contentBetween">
<el-checkbox label="" value="Value B" />
<el-button-group>
<el-button type="warning" size="small">修改</el-button>
<el-button type="danger" size="small" @click="delTask(item)">删除</el-button>
</el-button-group>
</div>
</el-card>
</el-checkbox-group>
<div v-if="loadingList" class="loading">{{loadText}}</div>
</el-scrollbar>
</div>
</template>

8
src/views/formTable/taskListPage.vue

@ -6,14 +6,12 @@
<script lang='ts' setup>
import { useRoute,useRouter } from 'vue-router'
import request from '@/utils/axios/index'
import { appPageDataInit } from '@/api/common/type'
import { tableFormStruct } from '@/api/lowCode/form/type'
import { gainAppPageInfo,judgeSubmitCancel,gainFormPageListCont } from '@/api/lowCode/form/index'
import { gainAppPageInfo,judgeSubmitCancel } from '@/api/lowCode/form/index'
import { inputUnit,timeUnit,choiceUnit,switchUnit,orgUnit,checkboxUnit } from '@/api/lowCode/form/fieldUnit'
import { useDesignFormStore } from '@/utils/pinia/stores/lowCode/designForm'
import{ json2string,string2json,stringToObj } from '@/utils/lowCode/form'
import{ string2json,stringToObj } from '@/utils/lowCode/form'
import{ submitButton,submitFlowButton } from '@/utils/lowCode/const'
import { appWorkFlow,nodePoweInfo,powerAryInfo } from '@/api/workFlow/type'
import { appWorkFlow,nodePoweInfo } from '@/api/workFlow/type'
import { softDeletion } from '@/api/lowCode/taskapi/management'
import SvgIcon from '@/components/svgIcon/index.vue'

19
src/views/login/index.vue

@ -101,7 +101,8 @@ const submitLoginForm = () => {
loginForm.value.validate((valid: any) => {
if (valid) {
userPinia.login(loginInfo)
.then(()=>{
.then((data:any)=>{
console.log("登陆输出:",data);
const query: LocationQuery = route.query;
const redirect = (query.redirect as LocationQueryValue) ?? "/";
@ -141,14 +142,16 @@ const submitLoginForm = () => {
*/
const judgingEnvironment = () => {
let huanjing = window.navigator.userAgent.toLowerCase()
if( (huanjing.match(/MicroMessenger/i) == 'micromessenger') && (huanjing.match(/wxwork/i) == 'wxwork') ){
return 3;
}else if( huanjing.match(/MicroMessenger/i) == 'micromessenger' ){
return 2;
const isWechat = huanjing.match(/micromessenger/i) !== null
const isWxWork = huanjing.match(/wxwork/i) !== null
if( isWechat && isWxWork ){
return 3; //
}else if( isWechat ){
return 2; //
}else{
return 1;
return 1; //
}
return 3;
}
</script>
<template>
@ -171,7 +174,7 @@ const judgingEnvironment = () => {
<el-input v-model="loginInfo.username" clearable />
</el-form-item>
<el-form-item label="密码:" prop="password">
<el-input v-model="loginInfo.password" type="password" autocomplete="off" clearable />
<el-input v-model="loginInfo.password" type="password" autocomplete="off" clearable show-password />
</el-form-item>
<el-form-item label="验证码:" prop="captcha">
<el-row>

Loading…
Cancel
Save